Skip to content

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

ChannelTypeDescription
Browser InternalBrowserIn-app chat for logged-in admin and staff users
Staff AccessBrowserStaff-specific chat experience
SlackMessagingDirect messages via a Slack bot
TelegramMessagingChat via a Telegram bot
PostmarkEmailSend and receive email via Postmark
WebRTCVoiceVoice conversations via OpenAI Realtime API
Web TriggerAPIHTTP trigger for external services (Zapier, Make, n8n)

The Embeddable Widget is a browser-based channel for external websites and has its own dedicated section.

Additional channel plugins may be available depending on your installation. Check the channels tab on your assistant for the full list.

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.

Want to add your own communication channel? See Channel Plugins for a guide to building custom channel plugins.