How to Integrate WhatsApp Business API into Your System
What to automate on WhatsApp, the technical requirements Meta enforces, and the mistakes that break integrations when you connect WhatsApp to your CRM.
Leer en español →
Every few months a client asks us how to integrar WhatsApp Business API a mi sistema without turning the support inbox into forwarded screenshots. The question arrives as a technical one, but the connection is rarely the hard part. What takes time is deciding which conversations software should own and which ones a person must answer.
Most companies already have a WhatsApp habit: reps use their own phones, orders arrive as voice notes, and nobody can say afterwards what was promised. That works until volume grows or the person holding the chat leaves.
This article covers the messages worth automating, the requirements Meta enforces, and the mistakes that break integrations after launch.
Separate the three layers first
A WhatsApp integration is three moving parts, and naming them makes any vendor conversation easier.
The channel. Most new projects connect through the Cloud API hosted by Meta, so you do not run messaging containers yourself. That documentation is the source of truth for endpoints, payloads and limits.
Your system. The CRM, helpdesk or order tool that stores the customer and the history. If a phone number does not resolve to one customer record, fix that first; every flow depends on it.
The flows. Templates for conversations you start, free-form replies inside the service window that opens when the customer writes, and the routing rules that decide who answers.
What you can automate, and what should stay human
Automations that hold up in production
- Confirmations and reminders triggered by events in your database, not by someone remembering.
- Inbound triage: detect intent, tag the conversation, route it to the right queue.
- Answers to the questions that are always identical, with a link to the full record.
- Delivery status written back to the ticket, so an agent sees what the customer sees.
- Follow-ups only for contacts with a stored opt-in and a frequency cap you define.
Conversations that need a person
Complaints, refunds, price negotiation, safety incidents, and any message that shows frustration. A polite bot reply to an angry customer costs more than the agent who would have solved it in two minutes. Route those to a human immediately, with the history attached.
Keep the mechanics straight too: anything you start needs an approved template, while free-form replies only work inside the service window that opens when the customer writes.
Technical requirements before you write code
Accounts, numbers and verification
A verified Meta Business account, a WhatsApp Business Account, and a phone number that is not active on the consumer app. If the number is in use, it has to be deleted from the app before registration. The display name goes through review, so follow Meta's naming rules. Use a system user with a permanent token instead of a personal login that expires when roles change.
The plumbing teams underestimate
- A webhook over HTTPS with payload signature verification.
- Idempotency: the same event can arrive twice, so store message IDs and skip duplicates.
- Retries with backoff when your CRM is unavailable, plus a failure queue so nothing disappears silently.
- Media handling: inbound images and documents arrive as identifiers you download in a second call.
- Template names and variables kept in configuration, not in the code.
Consent and records
Store the opt-in with its timestamp and source, and honour opt-outs at number level. Meta's Business Messaging Policy sets the baseline, and your privacy notice has to describe what you actually do with conversation data. Automating a channel does not reduce those obligations.
The mistakes we see most often
Using an unofficial client as a shortcut
Libraries that drive a WhatsApp Web session look fast and break quietly. They put the number at risk and leave you without templates, delivery status or a support path.
Skipping the opt-in record
Consent collected in a chat and never stored cannot be proven later. When a template reaches someone who never agreed, there is nothing to show.
Building the webhook last
Ingestion decides whether the integration survives. Validate signatures, dedupe, log raw payloads for a few weeks, and watch failures from the first day.
No human handoff
Agents need the WhatsApp thread in the same inbox as email and chat. If they have to switch apps, they reply from a personal phone and the CRM goes blind again.
How to scope the first release
Ship in four steps: log inbound messages into the CRM, add one outbound template with real variables, then routing rules and canned answers, and only then AI replies or a second template family. When the tool you connect has no usable API, the work sits in a middleware layer that maps events to records and owns the retries. That layer is small but not optional, and it is often where custom software beats forcing a plugin to behave. It is the kind of build we handle as an API integration project.
FAQ
Do I need a new phone number?
Not necessarily. A number already on the consumer app can be registered, but it must be deleted from the app first. Many teams start with a dedicated business number.
Can I connect a CRM that was not built for messaging?
Usually. If the CRM exposes an API or accepts webhooks, the connection is direct. If not, a middleware layer receives events, maps them to records and handles retries.
Does Meta charge for the API?
Meta bills conversations by category and country on its own rate card, and rates change. Check the official pricing page rather than an old blog post. Hosting and maintenance on your side are separate.
Let's talk about what your project needs
Tell us which systems hold your customer data and which message flows you want to automate, and we will propose a scope for a first release. Start at https://devonauts.com/contact. If you want more context first, see our work on API integration services and custom software development.


