WhatsApp CRM Integration Guide visual guide

Short answer: WhatsApp CRM integration means every WhatsApp message to your business number creates or updates a CRM contact (matched on the phone number in +91 format), is logged against that lead, and can trigger or stop CRM workflows. There are three ways to build it: a CRM's native WhatsApp connector (Zoho CRM, HubSpot, LeadSquared, Salesforce), a WhatsApp Business API provider's inbox that syncs to your CRM, or your own Cloud API webhook that writes to the CRM's API. All three need a WhatsApp Business Platform account; the free WhatsApp Business app has no API.

On this pageThree ways to integrateWhat you need first8-step setupField mappingSample webhook payloadFirst workflowsTesting and error codesWhat it costsSources

What are the three ways to integrate WhatsApp with a CRM?

The integration does one job: it moves events between WhatsApp (the conversation) and the CRM (the record of who the lead is, who owns them and what happens next). Inbound messages, delivery statuses and button replies flow into the CRM; template sends and stage-based triggers flow out. Where the webhook lives decides which of the three models you are using.

1. Native CRM connector2. BSP inbox + CRM sync3. Custom Cloud API webhook
Who receives Meta's webhooksThe CRM vendorThe WhatsApp provider (Gallabox, WATI, AiSensy and others)Your server or middleware
Where agents chatInside the CRMProvider's shared inbox; CRM gets contacts and activityWherever you build it, usually the CRM
Typical setup timeHours to a few daysA few days2 to 6 weeks of development
FlexibilityLimited to the vendor's featuresGood for inbox, broadcasts, chatbots; CRM sync depth varies by planAnything the API allows
Best fitSales team already lives in that CRMHigh chat volume, chatbots, campaignsCustom CRM, unusual routing, in-house developers

What the native connectors actually include, from each vendor's own documentation (checked 11 October 2026):

  • Zoho CRM: Zoho's help article says the WhatsApp integration "is supported in the trial and all paid editions". Utility and marketing templates are created in Zoho and sent to Meta for approval, and approved templates can be used in Workflow Rules, Blueprint, Journey Builder and Wizards. Only unused phone numbers can be connected.
  • HubSpot: WhatsApp connects to the conversations inbox on Marketing Hub or Service Hub Professional or Enterprise. HubSpot's knowledge base notes a shared cap of 1,000 template messages per month across connected WhatsApp accounts, which matters if you plan lead nurturing from HubSpot.
  • LeadSquared: its Cloud API connector can create a lead automatically when an unknown number messages you, posts an activity for every message sent or received, and syncs templates using your WhatsApp Business Account ID. It is switched on by LeadSquared support.
  • Salesforce: the enhanced WhatsApp channel needs Salesforce's Messaging product, routes chats through Omni-Channel and can send approved templates from Flows (Salesforce Trailhead).

If you are still deciding between the free app, the API and a CRM, start with WhatsApp Business App vs API vs CRM; for choosing a provider for model 2, see how to choose a WhatsApp Business API provider in India.

What do you need before you connect WhatsApp to a CRM?

  • A Meta business portfolio, ideally verified. New portfolios can message 250 unique users outside the customer service window in a rolling 24 hours. Business verification is one of the paths to the 2,000 tier, per Meta's messaging limits documentation. The limit is shared by every number in the portfolio.
  • A WhatsApp Business Account (WABA) and a phone number that can receive an OTP by SMS or voice call. A number already active on WhatsApp must be disconnected first for most connectors (HubSpot and Zoho both say so).
  • Or coexistence. Meta now lets a business onboard a number that stays active in the WhatsApp Business app. According to Meta's coexistence documentation, the last six months of one-to-one chats and contacts can sync, but group chats do not sync and the number is limited to 20 messages per second. Ask your CRM or provider whether they support it before you delete anything.
  • A system user access token with the whatsapp_business_messaging and whatsapp_business_management permissions if you are connecting a CRM directly to the Cloud API (LeadSquared's setup asks for exactly this).
  • A CRM data model: stages, owners and the required fields listed in the mapping section below.
  • Four or five approved templates for the first workflows. Meta says review "can take up to 24 hours" (template overview).

How do you set up a WhatsApp CRM integration, step by step?

  1. List every entry point. Website buttons, click-to-WhatsApp ads, Meta lead forms, portal leads (99acres, MagicBricks, Justdial, IndiaMART), QR codes on print, inbound calls. For each, note whether the person messages you first (a free-form reply is allowed) or you message them first (a template is required).
  2. Fix the lifecycle stages. New, Contacted, Qualified, Appointment booked, Proposal sent, Won, Lost, Nurture. Write a one-line definition for each so two salespeople would mark the same lead the same way.
  3. Choose the model from the table above, and confirm in writing that the WABA and phone number sit in your business portfolio, not the vendor's.
  4. Create the CRM fields before connecting anything (see the mapping table). Make phone a unique field stored in E.164 format, for example +919810012345.
  5. Set matching and deduplication rules. Match on the normalised phone number. If the contact exists, attach the conversation and, if they are asking about something new, open a new deal rather than a duplicate contact. Strip spaces, leading zeros and the + inconsistently added by forms before comparing.
  6. Connect the number through the CRM's connector, the provider's embedded signup, or your Meta app's webhook configuration (subscribe to the messages field).
  7. Build three workflows first: instant acknowledgement and owner assignment, a no-reply follow-up that stops on reply, and appointment reminders.
  8. Test with 20 scripted leads using the test table further down, then switch on one live source at a time.

Which WhatsApp fields should map to which CRM fields?

Field names below are from Meta's webhook payloads. The CRM side is a suggested name; use your CRM's equivalents.

WhatsApp webhook fieldCRM fieldWhy it matters
contacts[0].wa_id / messages[0].fromMobile (E.164, unique)Match key for dedupe; add the + before saving
contacts[0].profile.nameWhatsApp profile nameKeep separate from First/Last Name; profile names are often nicknames
metadata.phone_number_idBusiness number / teamRoutes a sales number and a support number to different queues
messages[0].id (wamid)Message ID on the activityIdempotency: ignore a message ID you have already stored
messages[0].timestampFirst message at / last inbound atResponse-time SLA and the 24-hour window clock
text.body or interactive.button_reply.idFirst message / qualification answersButton IDs such as budget_50_80l map cleanly to picklists
referral.source_id, referral.ctwa_clidMeta ad ID, click IDAttribution for click-to-WhatsApp ads
statuses[].statusDelivery status on the sent-message activitySent, delivered, read or failed
statuses[].pricing.categoryMessage cost categoryShows whether Meta billed it as marketing, utility or service
statuses[].errors[].codeFailure reasonLets you suppress opted-out numbers automatically
(your form or chat flow)WhatsApp opt-in: status, wording, timestamp, sourceProof of consent; blocks templates to people who never opted in

For joining website clicks to chats with a reference code, and for sending qualified outcomes back to GA4, Google Ads and Meta, follow our WhatsApp lead tracking with GA4 and CRM guide rather than duplicating that logic here.

What does a WhatsApp Cloud API webhook payload look like?

This is a trimmed inbound text message as Meta posts it to your endpoint, with placeholder IDs. The structure (entry → changes → value) follows Meta's webhooks overview.

{ "object": "whatsapp_business_account",

  "entry": [{ "id": "<WABA_ID>", "changes": [{ "field": "messages",

    "value": { "messaging_product": "whatsapp",

      "metadata": { "display_phone_number": "911204000000", "phone_number_id": "<PHONE_NUMBER_ID>" },

      "contacts": [{ "profile": { "name": "Ankit" }, "wa_id": "919810012345" }],

      "messages": [{ "from": "919810012345", "id": "wamid.HBgM...", "timestamp": "1760160000",

        "type": "text", "text": { "body": "Is the 3 BHK in Sector 150 still available?" } }]

}}]}]}

Delivery updates arrive on the same messages field as a statuses array. Each status carries the message ID, status (sent, delivered, read, failed), and a pricing object with pricing_model: "PMP" and a category such as marketing or utility (status webhook reference).

What your endpoint must do

  1. Verify the subscription. Meta sends a GET request with hub.mode=subscribe, hub.verify_token and hub.challenge; if the token matches yours, return HTTP 200 with the challenge value (create a webhook endpoint).
  2. Check the signature on every POST. Compute an HMAC-SHA256 of the raw body using your app secret and compare it with the value after sha256= in the X-Hub-Signature-256 header. Reject mismatches.
  3. Return 200 immediately, then process from a queue. Meta retries failed deliveries "with decreasing frequency until the request succeeds, for up to 7 days", and warns that retries can produce duplicate notifications. That is why the message ID dedupe above is mandatory.
  4. Use a valid TLS certificate. Self-signed certificates are not supported, and payloads can be up to 3 MB.

The CRM logic, in plain steps

  1. If messages[0].id already exists in the CRM, stop.
  2. Normalise from to +91… and search contacts by mobile.
  3. Not found: create a contact and a lead with source = WhatsApp, entry type (click-to-WhatsApp if a referral object exists, otherwise website or direct), and the first message. Found: log the message as an activity and update "last inbound at".
  4. No owner yet: assign by rule (project, city, language) with a round-robin fallback, and create a "reply within 5 minutes" task.
  5. If the text is an opt-out keyword, set WhatsApp marketing opt-in to "withdrawn" and remove the contact from every active sequence.

To send a template from the CRM, your code calls POST https://graph.facebook.com/v25.0/<PHONE_NUMBER_ID>/messages with "type": "template", the template name, language and parameters. The response returns a message ID that later appears in status webhooks, so store it on the activity (send messages guide).

Which WhatsApp CRM workflows should you build first?

WorkflowTriggerMessageStops when
Acknowledge and assignLead createdSession reply if they messaged first; utility template if they came from a formDelivered; owner assigned
Owner SLA escalationNo outbound activity 15 minutes after assignment (working hours)Internal alert to team lead, reassign at 60 minutesOwner replies or calls
No-reply follow-upStage = Contacted and no inbound for 24 hoursMarketing template with one useful assetAny reply, opt-out, stage change
Appointment remindersAppointment date field setUtility template at T-24h and T-2h with reschedule buttonsAttended, rescheduled, cancelled

The full cadence, routing rules and dashboard are in WhatsApp lead management automation, and ready-to-submit wording is in our 25 WhatsApp follow-up templates.

How do you test a WhatsApp CRM integration?

TestExpected result
New number sends "Hi"One contact, one lead, owner assigned, acknowledgement logged
Same number messages again in 10 minutesNo new contact; message logged on the existing lead
Form lead with phone typed as 09810012345Matches the WhatsApp contact stored as +919810012345
Chat started from a click-to-WhatsApp adMeta ad ID and click ID populated on the lead
Agent sends free-form text 25 hours after the last inbound messageBlocked with error 131047 ("More than 24 hours have passed…"); CRM prompts for a template
Template sent with one parameter missingError 132000; failure shown on the activity, not silently dropped
Contact replies STOPOpt-in set to withdrawn, sequences stopped, future marketing sends suppressed
Webhook endpoint down for 30 minutesMessages arrive later via Meta's retries without duplicates

Error codes and their meanings are listed in Meta's error code reference. Two worth wiring into the CRM: 131050 ("This recipient has chosen to stop receiving marketing messages on WhatsApp from your business") should mark the contact as marketing-suppressed, and 131049 (blocked to "maintain healthy ecosystem engagement") should wait at least 24 hours before any retry.

How much does a WhatsApp CRM integration cost?

There are three layers: Meta's per-message fees (₹0.8631 per marketing and ₹0.115 per utility message in India as of October 2026, plus GST; full rate table in our WhatsApp Business API cost guide), the software that holds the connection, and setup effort.

  • CRM tier: Zoho includes WhatsApp in all paid editions; HubSpot needs a Professional or Enterprise Marketing or Service Hub. Prices are compared in best CRM for WhatsApp lead management in India.
  • Provider plan: CRM sync is often a higher-tier feature. On Gallabox's pricing page, Zoho, LeadSquared and HubSpot integrations start at the Essential plan (₹6,999 a month billed quarterly), not Basic. WATI lists HubSpot from its Pro plan and Salesforce on Business.
  • Custom build (worked example): a webhook service on a small cloud server, CRM upsert, dedupe, routing and four templates at roughly 40 developer hours × ₹1,500 an hour = ₹60,000 one-time, plus hosting and maintenance. Your figure depends on the CRM's API and how many sources you connect.

If you would rather have the integration designed, built and monitored for you, that is the scope of our WhatsApp CRM automation service.

Sources

FAQ

Common questions

How do I integrate WhatsApp with my CRM?

Get a WhatsApp Business Platform account (a WABA and a number in your Meta business portfolio), then connect it through your CRM's native WhatsApp connector, a WhatsApp API provider that syncs to your CRM, or your own Cloud API webhook. Match contacts on the phone number in +91 format, log every message as an activity, and test duplicates, opt-outs and the 24-hour window before going live.

Can I integrate the free WhatsApp Business app with a CRM?

Not directly, because the WhatsApp Business app has no API or webhooks. Browser extensions that read WhatsApp Web are not official integrations. Meta's coexistence option lets you keep using the app on a number that is also connected to the Cloud API, syncing up to six months of one-to-one chats, but group chats do not sync and throughput is capped at 20 messages per second.

Which CRMs have native WhatsApp integration?

Zoho CRM supports WhatsApp in its trial and all paid editions, HubSpot connects WhatsApp to the conversations inbox on Marketing Hub or Service Hub Professional and Enterprise, LeadSquared offers a WhatsApp Cloud API connector, and Salesforce offers an enhanced WhatsApp channel that requires its Messaging product. Each needs your own WhatsApp Business Account and approved templates for business-initiated messages.

What is a WhatsApp webhook and why does a CRM need it?

A webhook is an HTTPS endpoint that Meta calls whenever something happens on your WhatsApp number: a customer message, a button reply or a delivery status. The CRM, or your middleware, uses these calls to create leads, log messages and record failures. Your endpoint must verify Meta's signature, return HTTP 200 quickly and ignore duplicates, because Meta retries failed deliveries for up to 7 days.

How long does a WhatsApp CRM integration take?

A native connector or provider inbox can be live in a few days once business verification, the phone number and templates are ready; template review takes up to 24 hours. A custom Cloud API webhook integration usually takes two to six weeks, depending on how many lead sources, routing rules and CRM objects are involved and how thoroughly duplicates and opt-outs are tested.

Want a WhatsApp-to-revenue system built for your business?

Book a free audit. We’ll map lead capture, CRM ownership, follow-up leakage and the first automation to implement.

Book a Free Audit
RS
Founder & Performance Marketing Lead, GrowthSparx

Rinku builds connected lead-generation, CRM and follow-up systems for Indian and global businesses. He writes practical playbooks focused on qualified enquiries, sales accountability and revenue.

Have a question? Message us directly on WhatsApp—usually a reply within a few hours.

Chat on WhatsApp