Channels overview
The channel model, which channels answer with AI by default, the health chip, and outbound delivery status.
A channel connects one chatbot to one place your customers already are: WhatsApp, Messenger, Instagram, Slack, SMS, email, or a phone line.
Channels belong to a chatbot
Channels are managed per chatbot, on that bot's Channels tab — owners and admins only. There is no workspace-wide channels page.
Two consequences:
- Connecting a channel means picking the chatbot up front.
- Deleting a chatbot deletes its channels with it.
An agent's reply always goes out through the conversation's own chatbot, so a reply can never be delivered from another bot's number.
Which channels answer with AI
| Channel | Default behaviour |
|---|---|
| Website widget | AI answers |
| WhatsApp, Messenger, Instagram, Slack, SMS | AI answers — an AI replies toggle, on by default, can make the channel human-first |
| Human-first always — no AI toggle | |
| Voice | AI answers, through its own pipeline; not governed by the AI-replies toggle |
Email is human-first because a misfired automatic reply in an async medium costs more than a slow one. See Email and Voice.
With AI replies on
An inbound message runs the same retrieval pipeline as the widget — grounded answer, cache, deterministic fallback, and pending-action confirmation — subject to your message quota, credit balance, and spend cap. Replies are normalised to plain text per provider, so no stray Markdown reaches a surface that cannot render it.
A visitor who asks for a person is escalated: the conversation flips to needs_human, enters the Inbox wait queue, fires handoff alerts, and the visitor gets a fixed acknowledgement:
Got it — connecting you with a member of our team. Someone will reply here
shortly.If an AI turn cannot complete — out of credits, over quota, a provider or tool failure — the thread degrades to that same wait queue with that same acknowledgement. A failed turn is never left as silence.
The AI stays quiet on a thread a human has already claimed, and on a closed one.
With AI replies off
A new inbound thread lands in the inbox already flagged needs_human, with its true arrival time, and alerts fire for opted-in agents.
Inbound attachments
A message carrying only an attachment is ingested as a placeholder plus the provider's media link:
[Customer sent an attachment]Those links belong to the provider — they may need the channel's credentials and can expire. Download anything you need to keep.
Channel health
Each connected channel shows a health chip:
| Chip | Means |
|---|---|
| Last message Xm ago | Inbound is working. |
| No messages yet | Connected, but the provider is not calling the webhook yet. |
| Signature rejected | Inbound arrived and failed verification — the credentials do not match. |
That chip is the first thing to read when a channel seems broken: it separates "the provider is not calling us" from "the provider is calling us and the secret is wrong".
Outbound delivery
A reply that fails at the provider is marked Not delivered in the console, with the reason stored on the message and a one-click Retry. Delivery status ends at the provider's send acknowledgement — there are no read receipts.
Where to go next
Last updated