MakeHybrid
Book a call
English

Answer ChatWoot from your own code

Read the open conversations in your own ChatWoot, answer one as your team, leave a private note and resolve it — with the same key as the LinkedIn API.

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.

Turn this into something that runs itself

Say what your business does and it becomes your own service and product in one: the work runs on its own, under your name, on your accounts and your AI key. The first 30 days are free, and nothing here needs an engineer.

Start the trial