Channels
Channels are communication plugins that connect assistants to different platforms. Each channel handles inbound messages from a platform, routes them to the appropriate assistant, and delivers responses back.
Available Channels
| Channel | Type | Description |
|---|---|---|
| Browser Internal | Browser | In-app chat for logged-in admin and staff users |
| Staff Access | Browser | Staff-specific chat experience |
| Slack | Messaging | Direct messages via a Slack bot |
| Telegram | Messaging | Chat via a Telegram bot |
| Postmark | Send and receive email via Postmark | |
| WebRTC | Voice | Voice conversations via OpenAI Realtime API |
| Web Trigger | API | HTTP trigger for external services (Zapier, Make, n8n) |
The Embeddable Widget is a browser-based channel for external websites and has its own dedicated section.
How Channels Work
All inbound messages from channels flow through a generic webhook endpoint that routes by plugin name and assistant ID (e.g., /webhooks/channels/slack/42/inbound). New channel plugins get webhook routing automatically without changes to the routing layer.
Request Verification
Each channel plugin implements its own request verification. Slack uses HMAC signature verification (comparing a computed hash of the request body against the X-Slack-Signature header). Telegram uses a secret token comparison via X-Telegram-Bot-Api-Secret-Token. Unverified requests are rejected before any processing occurs.
Message Routing
The system uses two routing strategies depending on the channel type. Email-style channels embed a reply_token in reply-to addresses to match replies to existing conversations. Chat-style channels (like Telegram) use a channel_address (the sender’s chat ID) combined with the assistant ID to find or create conversations. Both strategies include deduplication by message ID to prevent double-processing from webhook retries.
Async Processing
After parsing and validation, the webhook handler dispatches message processing as an asynchronous background task and returns an immediate 200 response to the channel provider. This prevents timeout errors from providers that expect fast responses while the agent loop runs in the background.
Configuring Channels on Assistants
Channels are enabled and configured per assistant. See Assistant Channel Configuration for details on enabling channels, setting access control, and managing feedback settings.