Chatwoot
Connect a number to Chatwoot and your agents answer its WhatsApp chats from a Chatwoot inbox. Each number gets an API inbox, and messages go both ways: what the number receives shows up in Chatwoot, and what an agent writes there goes out on WhatsApp. Media, delivery and read statuses, and messages sent from the phone are synced too. wuapi hosts the bridge, so there is nothing to install in Chatwoot.
Requirements
- A paid wuapi plan, and the owner or admin role in the organization.
- A Chatwoot user who is an administrator of the Chatwoot account: creating an inbox needs it.
- A Chatwoot that wuapi can reach from the internet over https: Chatwoot Cloud or self-hosted on a public address. A localhost or private network address will not work.
Connect
Open Integrations > Chatwoot in the dashboard and click Connect a number. Nothing is created in Chatwoot until the last step.
- Paste the address of any page of your Chatwoot, as your browser shows it. wuapi checks it is a Chatwoot and shows its version. An address inside your account (it has
/app/accounts/...) lets the next step open your profile directly. - Click Open my Chatwoot profile. In Chatwoot, that is your avatar at the bottom left, then Profile settings.
- Scroll down to Access Token, click Copy and paste the token in the wizard. Chatwoot has no sign-in for apps, so the token is how wuapi acts in it. wuapi stores it encrypted.
- When the token administers several Chatwoot accounts, pick one. The one in the address you pasted is preselected.
- Pick one or more linked numbers. Each gets its own API inbox, named
WhatsApp +<number>, whose webhook points back to wuapi. The last step links to each inbox.
What syncs
- Messages the number receives land in the contact's conversation as incoming messages, with images, audio, video and documents attached. The contact is created on the first message, keyed by the contact id (
+584241112233orlid:...), and joined to an existing Chatwoot contact with the same number. - Messages sent from the phone, and sends through the API, show as outgoing messages in the same conversation.
- A reply an agent writes in the inbox goes out on WhatsApp through the same queue as
POST /v1/messages: pacing applies, and a reply sent while the number reconnects waits for it. Attachments go as media. Private notes stay in Chatwoot. - Each reply shows sent, delivered and read in Chatwoot as WhatsApp reports them. It shows failed only when the send failed for good, with the reason; a reconnect never marks it failed.
Options
Each connected number has its own options on its Chatwoot page in the dashboard.
| Option | Default | What it does |
|---|---|---|
| Sign replies with the agent's name | off | Replies start with the agent's name in bold, so the customer knows who answered. |
| Reopen resolved conversations | on | A new message reopens the contact's last conversation. Off: it starts a new one. |
| Leave group chats out | on | Only direct chats reach Chatwoot. |
Limits
- Group chats are left out by default. Turn off Leave group chats out to bring them in.
- History imported when the number was linked is not copied to Chatwoot: the inbox starts with the next message.
- Media over 25 MB arrives in Chatwoot as a link to the file, not as an attachment.
While Chatwoot is unreachable, wuapi keeps the updates in order and retries for about two hours; the number's page shows the last error. Disconnecting leaves the inbox and its conversations in Chatwoot.
Troubleshooting
| What you see | Why | What to do |
|---|---|---|
| Chatwoot did not accept this access token | The token was copied incomplete, or it was reset in Chatwoot. | Copy it again from Profile settings > Access Token and paste it. |
| Your user must be an administrator | The token belongs to an agent, and creating an inbox needs an administrator. | Use an administrator's token, or ask one to make you an administrator. |
| Replies show failed in Chatwoot | The connection is paused in wuapi, or the organization is no longer on a paid plan. wuapi refuses the reply and Chatwoot marks it failed. | Resume the connection on the number's Chatwoot page, or upgrade in Billing. Send the reply again. |
| wuapi could not reach this address | The Chatwoot is on localhost, a private network or plain http. | Use the public https address of your Chatwoot. |