Integration

WhatsApp to CRM integration: every chat becomes a tracked lead

A WhatsApp to CRM integration receives every inbound WhatsApp message through Meta's Cloud API webhook, matches the sender to an existing contact or creates a lead, records the message and the ad it came from, assigns an owner, and lets that person reply from the CRM. It has to respect the 24-hour customer service window, verify Meta's signature and ignore the duplicate deliveries Meta's retries can cause.

Discuss an integration Last updated 2 October 2026

What this integration connects

In many Indian businesses, WhatsApp is where enquiries actually arrive, and the CRM is where the owner expects to see them. Between the two, leads are lost: a salesperson's phone holds the conversation, nobody logs the source, and a follow-up depends on memory.

The integration closes that gap. Each inbound WhatsApp message reaches your server through Meta's Cloud API, is matched to a contact or turned into a new lead, and appears in the CRM with the full thread, the owner assigned and the source recorded. Replies sent from the CRM go back out through the same API. The general API rules (templates, opt-in, messaging limits, pricing) are on WhatsApp Business API integration; this page is about the join to the CRM.

Data flow: inbound message to CRM record

Customer sends WhatsApp message (or taps a click-to-WhatsApp ad)
        │
        ▼
Meta Cloud API ── POST webhook (X-Hub-Signature-256: sha256=…) ──▶ Your server
                                                                    │ 1. verify signature with app secret
                                                                    │ 2. reply 200 at once; queue the job
                                                                    │ 3. skip if messages[].id already seen
                                                                    ▼
                                                    look up contact by phone (wa_id)
                                                    ├── found ──▶ add message to its timeline
                                                    └── new ────▶ upsert lead: name, phone,
                                                                  source "WhatsApp", ad referral
                                                                  ──▶ assignment rule picks owner
                                                                    │
                                                                    ▼
                                                    CRM shows thread + "reply window open until 14:32"
                                                                    │
Salesperson replies in CRM ──▶ your server ──▶ Cloud API send ──▶ customer
   (free-form inside 24 h; approved template after)

Field mapping

WhatsApp webhook field CRM field Notes
contacts[].wa_id Phone / mobile The match key; store in one normalised format so existing contacts are found
contacts[].profile.name Name (provisional) It is the name the customer set in WhatsApp; mark it unverified
messages[].id Message ID on the activity De-duplication key
messages[].timestamp Activity time Unix time; convert to IST for staff
messages[].text.body Activity or note text Other message types have their own shapes
metadata.phone_number_id Which business number received it Routes to the right team when there are several numbers
referral (click-to-WhatsApp ads): source details and ctwa_clid Lead source, campaign, click ID What makes WhatsApp ad spend measurable in the CRM
Time of last customer message Reply-window expiry Drives the "window open" indicator and template choice

For Zoho CRM, the lead is written with the upsert API so a repeat sender updates the existing lead; see Zoho CRM integration. For HubSpot, contacts upsert on email, which WhatsApp does not provide, so the integration searches a normalised phone property instead; see HubSpot integration.

Limits and gotchas

Issue What Meta documents What the integration does
Duplicate deliveries If your endpoint returns anything other than 200, Meta retries with decreasing frequency for up to 7 days, and retries can produce duplicates Reply 200 first; de-duplicate on message ID
Forged requests Payloads are signed with SHA256 in X-Hub-Signature-256 using your app secret Verify every request before acting
Endpoint verification Meta sends hub.mode, hub.challenge and hub.verify_token when the webhook is set up Echo the challenge only if the token matches
Payload size Webhook payloads can be up to 3 MB Size the endpoint's body limit accordingly
Reply window A customer message opens a 24-hour customer service window Free-form replies inside it; a template after
Message charges Charged when a template message is delivered; utility templates inside an open window are free; replying within 24 hours to a click-to-WhatsApp ad lead opens a 72-hour free entry point window Show staff when a reply will be charged

Other common faults:

  • Phone formats that never match. The CRM holds "98000 00000", WhatsApp sends country code plus number. Without normalisation every repeat customer becomes a new lead.
  • One lead per message. Without a "find first" step, a ten-message conversation creates ten leads.
  • Slow handlers. Writing to the CRM before replying to Meta risks timeouts and retries. Queue, then write.
  • The thread lives only in the CRM's notes. Searchable history needs each message stored as its own activity, not appended to one long note.

What WavX builds

WavX builds the receiver (signature check, de-duplication, queue), contact matching on normalised phone numbers, lead creation with source and ad referral, assignment rules, a reply box inside the CRM that knows whether the window is open and offers the right templates, and a daily report of WhatsApp leads by source and owner. Where an AI assistant should answer first and hand over to a person, that is a WhatsApp AI chatbot feeding the same CRM.

For a team whose sales process does not fit Zoho or HubSpot, custom CRM development builds WhatsApp into the lead screen itself; that page also carries WavX's planning ranges for a CRM build.

Effort band

Quoted after scoping. For planning, the software cost estimator carries third-party integrations as a ₹60,000 line item inside a larger build. Meta's message charges, any WhatsApp provider's fees and CRM licences are paid to those vendors.

When not to build one

If one or two people answer every chat and leads are few, the WhatsApp Business app on a phone, plus a shared sheet for leads, may be enough. If your CRM vendor or WhatsApp provider already offers a maintained connector that matches contacts properly and records the source, try it first. Build custom when several people share one number, when you need to know which ads produce which sales, or when the CRM is your own.

Frequently asked questions

Can this work with the WhatsApp Business app on a phone?

Not for an automatic integration. The WhatsApp Business app is for people chatting on a phone or desktop; software reads and sends messages through Meta's WhatsApp Business Platform (Cloud API). Moving a sales number to the API is the first decision in this project, so it is made with the sales team, not around them.

Which CRMs can it connect to?

Any CRM with an API. Zoho CRM and HubSpot are the common ones, and a custom CRM is the most flexible, because the WhatsApp thread can be a native part of the lead screen rather than a note attached to it.

Can we reply to WhatsApp leads from inside the CRM?

Yes, within Meta's rules. A free-form reply is allowed while the 24-hour customer service window is open, which starts when the customer messages you. After it closes, the first message must be an approved template. The integration shows the salesperson whether the window is open.

Can we tell which ad a WhatsApp lead came from?

For click-to-WhatsApp ads, Meta's messages webhook includes a referral object with the ad's source details and, since September 2023, a click ID (ctwa_clid). We store those on the lead, so ad spend can be compared with leads and sales in the CRM.

Sources

  1. Meta for Developers: Set up WhatsApp webhooks · read 2 October 2026
  2. Meta for Developers: WhatsApp webhooks overview · read 2 October 2026
  3. Meta for Developers: Webhook payload examples · read 2 October 2026
  4. Meta for Developers: Graph API webhooks, getting started · read 2 October 2026
  5. Meta for Developers: WhatsApp Business Platform pricing · read 2 October 2026
  6. Meta for Developers: WhatsApp changelog · read 2 October 2026
  7. Zoho CRM API v8: Upsert records · read 2 October 2026
  8. HubSpot developer docs: Contacts API guide · read 2 October 2026

Related

Build your own software — your way, your pricing.

WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.