CyberFreezeDev Loading
  1. Home
  2. Integrations
  3. WhatsApp Business API

WhatsApp Business API integration with your CRM, store and billing

Incoming WhatsApp chats written to the right customer record, and business events sent out as approved templates.

3D render of a phone sending chat bubbles into a three lane CRM pipeline board

At a glance

WhatsApp Business API integration
API
WhatsApp Cloud API, hosted by Meta
Inbound
messages webhook: incoming messages and sent, delivered, read statuses
Verification
hub.verify_token on subscribe, X-Hub-Signature-256 on every POST
Outbound
POST /<PHONE_NUMBER_ID>/messages with text, media, interactive or template
Identity
contacts.wa_id matched to the phone number on your customer record
Connects to
WhatsApp CRM, Desk, Shopify, Razorpay, TallyPrime, Google Sheets, n8n

What a WhatsApp API integration does for the business

Setting up the number is a separate job. This page is about connecting it to everything else.

Incoming messages match a contact and create a lead if needed; invoices, payments and orders elsewhere trigger WhatsApp messages without anyone opening a phone.

Read more about What a WhatsApp API integration does for the business

A WhatsApp API integration with your CRM means nobody copies chats by hand. When a customer writes in, the message is matched to a contact by phone number, a lead or ticket is created if none exists, and the conversation is visible to whoever owns that customer. When something happens in another system, such as an invoice raised in Tally, a Razorpay payment received or a Shopify order shipped, the customer gets a WhatsApp message about it without anyone opening a phone.

The number, verification, display name and first templates are covered by our WhatsApp Business API setup service. Lead qualification and routing logic is covered by WhatsApp automation. The integration is the layer underneath both: webhooks in, API calls out, and a record of every message tied to the right customer.

Typical flows we build

Each one is a small, testable piece. Most projects start with one or two.

Incoming chat to CRM record

Each incoming message is matched by phone number and saved against a lead.

Read more about Incoming chat to CRM record

Meta posts each incoming message to your webhook under the messages field. We read contacts.wa_id, messages.from, messages.id and the message body, match the sender to a contact, and write the message against a lead in Desk or your CRM. See Meta's messages webhook reference.

Delivery and read statuses

Sent, delivered and read statuses stored, so failed sends are retried or flagged.

Read more about Delivery and read statuses

The same webhook reports sent, delivered and read statuses for messages you send, with statuses.recipient_id, errors and a pricing.category. We store them so staff can see whether a payment reminder was read, and so failed sends are retried or flagged instead of lost.

Business events out as templates

Invoices, payment links, dispatches and bookings trigger approved utility templates.

Read more about Business events out as templates

An invoice created, a payment link issued, an order dispatched or an appointment booked triggers a call to POST /<PHONE_NUMBER_ID>/messages with an approved utility template and its variables (name, invoice number, amount, date). See send messages.

Buttons that write back

Taps on Confirm, Change address or Cancel update the source system.

Read more about Buttons that write back

Interactive reply buttons such as Confirm, Change address or Cancel come back as webhook events. We turn each tap into an update in the source system, for example holding a cash on delivery order in Shopify until the customer confirms.

Shared team inbox

Several staff on one number, each chat with an owner and searchable history.

Read more about Shared team inbox

Several staff on one number, each chat assigned to an owner, with the history searchable later. This is what our WhatsApp CRM product does; we connect it to the systems you already use.

How an inbound message is handled

  1. 01 Verify the endpoint

    The endpoint echoes Meta's challenge only when your verify token matches.

    Read more about Verify the endpoint

    On subscription Meta sends hub.mode=subscribe, a hub.challenge and your hub.verify_token. The endpoint returns the challenge only if the token matches. See create a webhook endpoint.

  2. 02 Check the signature

    Every POST's HMAC signature is checked against your app secret.

    Read more about Check the signature

    Every POST carries X-Hub-Signature-256, an HMAC SHA256 of the body keyed with your app secret. A payload that does not match is rejected.

  3. 03 Acknowledge, then work

    Answer 200 at once, queue the payload, and process each message id once.

    Read more about Acknowledge, then work

    The endpoint answers 200 at once and queues the payload. Meta retries failed deliveries for up to 7 days, which can produce duplicates, so each messages.id is processed once.

  4. 04 Write and route

    The message is stored, matched to a contact and handed on by your rules.

    Read more about Write and route

    The message is stored, matched to a contact and handed to the CRM, an AI reply step or a person, depending on your rules.

Vendor rules every build respects

The 24-hour window

Free-form replies only inside the 24-hour window; templates outside it.

Read more about The 24-hour window

When a customer messages you, a 24-hour customer service window opens. Inside it you can send free-form replies; outside it only pre-approved templates. Integrations check the window before choosing what to send.

Templates and opt-in

Business-initiated messages need an approved template and the person's agreement. No bought lists.

Read more about Templates and opt-in

A business-initiated message must use an approved template, and the person must have agreed to hear from you on WhatsApp. We do not build sends to bought lists.

Batches and limits

One webhook POST can carry many updates, so handlers process every item.

Read more about Batches and limits

Webhook POSTs can carry many updates at once and payloads can be up to 3 MB, so handlers process every item, not just the first.

No partner status

We work in your Meta account, not as a Meta partner, and Meta bills you directly.

Read more about No partner status

We are developers working in your Meta account. We are not a Meta partner or Business Solution Provider, and Meta bills messages to your own WhatsApp Business Account.

What we need from you

Admin access to your Meta business portfolio, the account and number, API keys for each system and a template approver. Tokens stay in your secrets store.

Read more about What we need from you

Admin access to your Meta business portfolio, or someone on your side who can grant it; the WhatsApp Business Account and phone number (we can set these up first through the setup service); a list of the systems to connect and an API key or login for each, issued in your company's name; and a person who will approve template wording. Access tokens live in a secrets store on your server or n8n instance, never pasted inside a workflow, and you can revoke our access at any time.

If you are still choosing between the free app and the API, read WhatsApp Business API vs the Business app first.

Questions

How is this different from your WhatsApp Business API setup service?

Setup gets the account, number, display name and first templates approved. Integration connects that number to your CRM, store, payment gateway or accounting software so messages and records move without copying. Many clients need both, in that order.

Can WhatsApp chats go into Zoho, HubSpot or our own CRM instead of Desk?

Yes, if the CRM has an API. Desk is our own CRM and the simplest fit, but it is not required.

Can we send invoices from Tally on WhatsApp?

Yes. We read new sales vouchers from TallyPrime and send a utility template with the invoice details. See Tally integration.

What happens if our server is down when a message arrives?

Meta retries delivery with decreasing frequency for up to 7 days. Because retries can repeat a message, our handlers ignore any message id they have already stored.

Do you charge per message?

No. Message charges are billed by Meta to your WhatsApp Business Account. We charge for the integration work.

Last updated