How to Send WhatsApp Messages From Your CRM (The Actual Mechanics)
A thing changes in your CRM. Five seconds later, the customer's phone buzzes with a WhatsApp.
How to Send WhatsApp Messages From Your CRM (The Actual Mechanics)
A thing changes in your CRM. Deal closes. Stage moves. Form fills. Status updates. Five seconds later, the customer’s phone buzzes with a WhatsApp.
Here’s exactly what happens between those two moments - the 5-step loop that every working CRM-to-WhatsApp integration runs on. Not the marketing version. The actual mechanics.
If you understand this loop once, you understand every WhatsApp send from every CRM you’ll ever use. The shape is universal. What changes is which button you click in which platform.
Step 1 - The trigger
Every CRM has triggers. They’re the “when” of an automation.
- Pipedrive - Updated Deal, New Person, Activity Created, Activity Marked Done
- HubSpot - Property changed, Workflow enrolled, Form submitted, Lifecycle stage advanced
- monday.com - Status changed, Item created, Date arrived, Person assigned
- Zoho CRM - Workflow Rule on module entry, Field update, Module-level event
- Salesforce - Record-Triggered Flow, Process Builder action, Apex trigger
- Custom backend - webhook on whatever event your application code emits
This is where you decide what makes a WhatsApp send. Stage moves to Quote Sent → send. Form gets submitted → send. Booking status changes to Confirmed → send.
Most teams over-think this step. Pick the single event that means “the customer should hear from us right now” and start with one trigger. Add more later.
Step 2 - The payload
When the trigger fires, your CRM hands off three pieces of data to the next step in the loop:
phone - the recipient’s WhatsApp number, in E.164 format with country code (e.g. +447700900000). This is the single biggest data-quality gotcha. Standardise on +CountryCode in your CRM’s phone field, or the Cloud API will silently skip malformed numbers and your fire rate will cap at around 70%.
template_name - which pre-approved WhatsApp template to send. Templates have to be submitted to Meta and approved before they’re sendable. Submit them at the start of your project, not the end. Meta review takes 24-48 hours and the “my Zap is firing but nothing arrives” problem is almost always a pending template.
variables - the placeholders that get filled at send time. A template body like “Hi {{1}}, your quote for {{2}} is ready” gets {{1}} = customer first name, {{2}} = deal title pulled from the CRM record at the moment of send.
This payload is the contract between your CRM and the WhatsApp API. Get the three fields right and the rest of the loop just runs.
Step 3 - The API call
Your CRM (or Zapier action, or Make scenario, or your own backend code) makes an HTTP POST to the WhatsApp Cloud API endpoint. The auth header carries your business number’s API token. The JSON body carries the payload from step 2.
Meta validates several things server-side:
- Is the template approved and active?
- Is the recipient opted in to receive messages from your business?
- Is the phone number format valid?
- Is your number’s quality rating high enough to send?
- Is your daily messaging tier high enough for the recipient’s region?
Pass → the message is queued at Meta’s infrastructure and delivered to the recipient’s WhatsApp within seconds.
Fail → the API returns a structured error code so your automation can self-correct. The most common one is 470 - “message failed to send because of an unknown error” - which in practice almost always means you tried to send a free-text message outside the 24-hour conversation window without using an approved template.
The error vocabulary is small and well-documented. Once your automation knows the patterns, it can self-correct (or alert you) instead of failing silently.
Step 4 - The delivery webhook
WhatsApp fires a webhook back to confirm delivery. The webhook payload tells you:
sent- Meta accepted the messagedelivered- recipient’s phone has itread- recipient opened it (only if their privacy settings allow read receipts)failed- the message bounced (and why)
Your CRM (or middleware) catches this webhook and logs the result on the contact record. Now the WhatsApp timeline entry shows “Delivered ✓” next to “Email opened” and “Call logged”. The CRM finally tells the truth about every channel the customer touched.
This is the step that makes the integration two-way. Without it, your CRM thinks every WhatsApp succeeded - which makes follow-up logic impossible.
Step 5 - The reply webhook
Customer reads the WhatsApp. Customer taps reply. Customer types something.
Meta fires another webhook at your number. Your CRM catches it → logs the reply as an activity on the same contact → opens the 24-hour free-text window so your team can respond without needing an approved template.
This is the step most “WhatsApp integrations” silently skip. The customer’s reply lives on a rep’s personal phone, never makes it into the CRM, the team has no context for the next interaction. The thread goes dark.
If your integration does steps 1-4 but not 5, you have one-directional broadcast. Real two-way customer relationships need step 5 wired.
The thing no setup works without
Between step 2 and step 3 sits the part nobody mentions in the marketing copy: a Meta Tech Provider (or Business Solution Provider) connecting your CRM to Meta’s Cloud API.
Without one, before you can fire your first message, you’d have to:
- Apply for Meta business verification (1-14 days)
- Register your phone number on the Cloud API
- Get your display name approved
- Generate System User access tokens
- Set up the template submission workflow
- Build webhook retry infrastructure for steps 4 and 5
- Stand up a quality rating monitoring dashboard
A week of Meta paperwork before any of the 5 steps fire. With a Meta Tech Provider, this collapses into a guided 5-minute flow inside their console. They’ve already done the Meta integration once; you inherit the result.
The shape, end to end
CRM trigger fires
│
▼
[ phone, template_name, variables ]
│
▼
POST → Meta Tech Provider → WhatsApp Cloud API
│
▼
Message delivered to customer's WhatsApp
│
├── Webhook ← (delivered / read / failed)
│ │
│ ▼
│ Logged on CRM contact timeline
│
└── Customer replies
│
▼
Webhook ← (reply text + customer phone)
│
▼
Logged on CRM activity + opens 24h window
Five steps. One loop. Universal across every CRM that can fire a webhook or trigger a workflow.
What you actually build
Once you understand the loop, the practical build collapses to three things:
- Pick your trigger. Single event that means “send this now.” Add others later.
- Approve your template in the provider’s dashboard. Meta review, then it’s callable by name.
- Wire the trigger to the send. Native app, Zapier, Make, or direct API call from your backend.
That’s the surface area. Everything else - the Meta paperwork, the API auth, the webhook retries, the quality rating, the template approval workflow - is what the Meta Tech Provider handles for you.
Where WhatsAble fits
WhatsAble is an official Meta Tech Provider. Notifyer, our flagship platform, does steps 3, 4, and 5 of the loop for you. You write the trigger. We handle the API call, the delivery webhook, and the reply webhook.
Notifyer plugs into Pipedrive, HubSpot, monday, Zoho, and Salesforce through native apps, Zapier, Make, or direct REST. Any other CRM connects via the same REST API.
You connect your number once. We handle Meta business verification, template approvals, token rotation, quality rating dashboard, webhook infrastructure. You write your automations, your messages, your campaigns.
Free tier - connect your number and send a real WhatsApp through the loop today, no credit card.
The point
Every CRM-to-WhatsApp send goes through the same 5-step loop. Trigger, payload, API call, delivery webhook, reply webhook.
Understand the loop once and you can build the integration on any CRM, on any backend, in any language. The platform claims about “easy WhatsApp integration” are usually marketing for one well-wrapped version of step 3. The reason your integration feels broken is almost always that step 5 wasn’t wired.
Wire all five. Replies in the timeline. Real two-way.
Try Notifyer free at whatsable.app - no credit card required.