Skip to main content
The Inbox keeps one conversation per person, across every channel. Through the API your systems see the same threads and can act on them — a CRM showing the latest messages, a help desk replying, a rule assigning urgent threads. A conversation is named by its person’s contact id.

Reading

  • GET /v1/conversations — the most recently active first. state is open (the default), snoozed or closed; also channel, unassigned=true, unread=true, and q for a name, a number or words from a message.
  • GET /v1/conversations/{contact_id} — the thread, which channels can take a typed reply right now (and when WhatsApp’s window closes), and where a reply goes by default.
  • GET /v1/conversations/{contact_id}/messages — its messages on every channel, newest first, each as the channel_message webhooks show it.

Replying

The reply goes on the channel you name, or by default on the one the person last wrote on. It is checked as a reply typed in the Inbox would be: It appears in the Inbox as written by API · your key’s name. If an AI agent was answering the thread, it steps back, as it does when a person replies.

Organising

PATCH /v1/conversations/{contact_id}:
  • assignee is a team member’s email, or null for nobody. Assigning to a person makes an AI agent on the thread step back.
  • labels are names of labels your team already has; an unknown name is refused.
  • Each change is in the thread’s history, as done by your key.
POST /v1/conversations/{contact_id}/read clears the unread count and sends read receipts where the channel has them (WhatsApp’s blue ticks).