Your team already answers customers in ChatWoot. This reaches the same ChatWoot from your own code — its inboxes, what is open, what was said and the answer you send — without a second inbox and without moving anything.
Connect it once
On the rooms page, signed in: the address of your ChatWoot dashboard and an administrator's access token. Connecting adds one webhook so the team's answers come back; letting the connection go removes it. The API never takes either: POST /chatwoot/v1/connections/link answers 403 with the page they go in on.
What is open
curl "https://makehybrid.com/chatwoot/v1/connections" \ -H "X-API-KEY: $MAKEHYBRID_KEY" curl "https://makehybrid.com/chatwoot/v1/connections/$CONNECTION_ID/conversations?status=open" \ -H "X-API-KEY: $MAKEHYBRID_KEY"
Each conversation carries the contact it is with, the agent it is assigned to, its inbox and when it last moved. Its messages come oldest first, each saying which way it went: incoming is the customer's, outgoing the team's.
Answer, note, resolve
curl -X POST https://makehybrid.com/chatwoot/v1/connections/$CONNECTION_ID/conversations/$CONVERSATION_ID/messages \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "Content-Type: application/json" \
-d '{"content":"It went out this morning — here is the tracking link."}'
curl -X PATCH https://makehybrid.com/chatwoot/v1/connections/$CONNECTION_ID/conversations/$CONVERSATION_ID \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "Content-Type: application/json" \
-d '{"status":"resolved"}'
Send private true and it is a note the customer never sees. Anything else is written as the connected user and the customer sees it, so an agent writing on your behalf is writing in front of your customer.
Be told instead of asking
Register a webhook endpoint and every message in any conversation of that ChatWoot is posted to it: the customer's as chatwoot.message_received, the team's as chatwoot.message_sent. Same endpoints, same signature as the LinkedIn API's.
curl -X POST https://makehybrid.com/chatwoot/v1/webhooks/endpoints \
-H "X-API-KEY: $MAKEHYBRID_KEY" -H "Content-Type: application/json" \
-d '{"url":"https://acme.com/hooks/chatwoot","events":["chatwoot.message_received"]}'
Questions people ask
Will my customers see anything of yours?
No. It is your ChatWoot at your address, and everything is written as the user whose token it is. Nothing is rebranded and nothing of ours is installed in it.
What happens when ChatWoot is down?
502 errors/chatwoot_unavailable, and nothing is queued or retried behind your back. A rejected token is 409 errors/chatwoot_disconnected, which means a member has to connect it again.
Can an AI agent answer customers there?
It can, through https://makehybrid.com/chatwoot/mcp/<your API key> or in a room. Give it instructions that say when to answer and when to leave a private note instead — the customer sees everything that is not private.