Omnichannel support
Integrate WhatsApp with Chatwoot
Chatwoot is an open source, omnichannel customer support platform. It gathers conversations from several channels (website, email, social networks and WhatsApp) into a single shared inbox, where several agents work as a team, with queues, teams, tags, canned replies and reports. It is the most popular self-hosted alternative to tools like Zendesk and Intercom, and because it is open it lets you connect your own channels through the "API" inbox type.
Why connect
On its own, Chatwoot does not speak WhatsApp for a regular number: either you use the Official API (expensive and bureaucratic) or you have no channel. By connecting ZapZap API, you use a normal WhatsApp number through a managed instance and bring all conversations into the Chatwoot inbox. A concrete scenario: a support team of 5 agents serves hundreds of customers on a single number. The customer messages on WhatsApp, ZapZap fires a webhook, your intermediate layer creates the conversation in Chatwoot and the agent replies from the Chatwoot screen. The reply goes out through Chatwoot's webhook and ZapZap sends it back on WhatsApp. You get conversation distribution, centralized history and support metrics, keeping community warm-up, anti-ban features that lower the account's risk and the option of AI per instance, all for R$15 per active number/month, prepaid and with a welcome credit when you create the account, subject to the current campaign.
Step by step
- 1
Create an API-type inbox in Chatwoot
In Chatwoot, go to Settings > Inboxes > Add Inbox and choose the API channel. Give it a name (e.g. WhatsApp ZapZap) and provide a Webhook URL pointing to your intermediate layer. When finished, Chatwoot generates the inbox_identifier and an api_access_token that you will use in the calls.
- 2
Configure Chatwoot's event webhook
In Settings > Integrations > Webhooks (or in the API inbox's Agent Bot), check the message_created and conversation_created events. That way, whenever an agent replies on the Chatwoot screen, it fires the payload to your layer, which will do the real sending through WhatsApp via ZapZap API.
- 3
Point the ZapZap instance's webhook to your layer
In the ZapZap API dashboard, set the instance's per-event webhook (incoming message) to your middleware's URL. When a customer writes on WhatsApp, ZapZap sends you the payload with the number and message content to process.
- 4
Forward the incoming message into Chatwoot
In your middleware, when you receive ZapZap's webhook, use Chatwoot's public API to create/find the contact and the conversation and post the message: POST /public/api/v1/inboxes/{inbox_identifier}/contacts/{contact_identifier}/conversations and then /messages. The conversation shows up in the team inbox as a new WhatsApp entry.
- 5
Send the agent's reply back through WhatsApp
When the agent replies in Chatwoot, the message_created webhook reaches your middleware. Filter by message_type outgoing and call ZapZap API's sending endpoint (with x-api-key and x-api-secret headers) to deliver the reply to the customer's WhatsApp. Check the exact route and field names in the docs at https://api.zapzapapi.com/llms.txt.
Example
// ILLUSTRATIVE example: when a message arrives in Chatwoot (agent webhook),
// your layer sends it through WhatsApp via ZapZap API.
// Exact route and field names are in the docs: https://api.zapzapapi.com/llms.txt
POST https://api.zapzapapi.com/v1/messages/send
Headers:
x-api-key: YOUR_API_KEY
x-api-secret: YOUR_API_SECRET
Content-Type: application/json
{
"number": "5511999999999",
"text": "Hello! We received your message and will be with you shortly."
}Illustrative. The exact fields and endpoints are in the documentation.
Frequently asked questions
Do I need the Official WhatsApp API to use it with Chatwoot?
No. ZapZap API works with regular WhatsApp numbers through managed instances, so you connect to Chatwoot through the API channel without going through the Official API or Meta's red tape. You keep Chatwoot's team inbox and pay R$15 per active number/month, prepaid, with a welcome credit when you create the account, subject to the current campaign.
Do I need an intermediate layer between ZapZap and Chatwoot?
Yes. Chatwoot's API channel and ZapZap API do not talk to each other directly: you need a small service (webhook) that receives the event on one side and calls the other. It can be a serverless function, an endpoint in your backend or a flow in n8n. It translates the webhooks in both directions.
Can several agents serve the same number?
Yes, that is the strong point. Chatwoot distributes the conversations of a single WhatsApp inbox among agents and teams, with automatic assignment, tags and canned replies. All messages go in and out through one managed number on ZapZap API.
Does this protect my WhatsApp account against bans?
ZapZap API offers community warm-up and anti-ban features that lower the account's risk, plus AI per instance. No solution guarantees zero bans, but centralizing support with faster, more human replies helps keep a healthy usage pattern.
Where can I see the exact endpoint and field names of ZapZap API?
The official reference is at https://api.zapzapapi.com/llms.txt, with the sending routes, the webhook events and the accepted fields. The examples on this page are illustrative: confirm the exact names in the docs before going to production.
Start now
Create your account, connect a number in minutes and test the API with warm-up and anti-ban. R$15 per active number/month, prepaid, no lock-in.
