Channels
Deploy your agents across 20+ messaging platforms.
Channels
OpenAgent's multi-channel gateway lets you deploy a single agent to multiple messaging platforms simultaneously. Configure once — reach users on Telegram, Discord, Slack, WhatsApp, and more.
Supported Channels
Messaging Platforms
| Channel | Status | Features |
|---|---|---|
| Telegram | ✓ Stable | Text, images, voice, inline buttons |
| Discord | ✓ Stable | Text, embeds, slash commands |
| Slack | ✓ Stable | Text, blocks, slash commands |
| ✓ Stable | Text, images, voice messages | |
| Signal | ✓ Stable | Text, attachments |
| Microsoft Teams | ✓ Stable | Text, adaptive cards |
| Matrix | ✓ Stable | Text, files, encryption |
| LINE | ✓ Stable | Text, rich messages |
| Feishu (Lark) | ✓ Stable | Text, cards |
| Beta | Text | |
| Mattermost | ✓ Stable | Text, files |
| IRC | ✓ Stable | Text |
| Nostr | Beta | Text |
Built-in Channels
| Channel | Description |
|---|---|
| Web Chat Widget | Embeddable widget for any website |
| REST API | Direct HTTP API for custom integrations |
How the Gateway Works
Telegram ──┐
Discord ──┤
Slack ──┤──► Gateway ──► Agent ──► Response
WhatsApp ──┤ (routing logic)
Web Chat ──┘Each incoming message passes through the gateway, which:
- Authenticates the incoming webhook or connection
- Normalizes the message format (each platform has a different format)
- Routes the message to the configured agent
- Formats the agent's response for the target platform's capabilities
- Sends the formatted response back
Because the gateway normalizes messages, your agent logic is identical regardless of which channel the user is on.
Connecting a Channel
Create a bot — message @BotFather on Telegram:
/newbot
My Agent Bot
myagentbotBotFather returns a token like 7123456789:AAEabc...
Configure in OpenAgent — go to Channels → Add Channel → Telegram, enter the token.
Set webhook — OpenAgent automatically sets the webhook URL on your bot. If you're running locally, use a tool like ngrok to expose your instance:
ngrok http 14000Then update the webhook URL in the channel settings.
Test — message your bot on Telegram.
Create a Discord application at discord.com/developers/applications.
Add a Bot — in your application, go to Bot → Add Bot. Enable:
- Message Content Intent (required to read messages)
- Server Members Intent (optional, for member info)
Copy the bot token.
Configure in OpenAgent — go to Channels → Add Channel → Discord, paste the token.
Invite the bot — use the OAuth2 URL Generator with scopes bot and applications.commands. Invite the bot to your server.
Create a Slack App at api.slack.com/apps. Choose From scratch.
Configure Bot Token Scopes under OAuth & Permissions:
chat:writeim:readim:historyapp_mentions:read
Install to workspace and copy the Bot User OAuth Token (xoxb-...).
Enable Event Subscriptions and set the Request URL to:
https://your-openagent-instance.com/api/channel/slack/eventsConfigure in OpenAgent — paste the Bot Token and Signing Secret.
WhatsApp integration uses the WhatsApp Business API via Meta.
Create a Meta for Developers account and set up a WhatsApp Business app.
Generate a Permanent Access Token and note your Phone Number ID.
Configure the webhook URL in Meta:
https://your-openagent-instance.com/api/channel/whatsapp/webhookConfigure in OpenAgent — enter the Access Token, Phone Number ID, and Webhook Verify Token.
WhatsApp Business API requires Meta approval for production use. Test numbers are available immediately in Meta's developer console.
The web chat widget requires no external platform setup.
Go to Channels → Add Channel → Web Chat.
Configure appearance settings (theme color, welcome message, placeholder text).
Copy the embed code and add it to your website's HTML:
<script
src="https://your-openagent-instance.com/widget.js"
data-agent-id="agent_xxxx"
defer
></script>The chat widget appears in the bottom-right corner of your page.
Agent-to-Channel Routing
One agent can serve multiple channels. One channel can only be connected to one agent. Use the Agent field when creating a channel to specify which agent handles messages from that channel.
Agent A ─────── Telegram Bot (Customer Support)
└───── Slack App (Customer Support)
Agent B ─────── Discord Bot (Community Q&A)
└───── Web Chat (Homepage Widget)Channel-Specific Features
Some channels support rich formatting that the agent can use:
| Feature | Telegram | Discord | Slack |
|---|---|---|---|
| Markdown | ✓ | ✓ | Partial |
| Code blocks | ✓ | ✓ | ✓ |
| Images | ✓ | ✓ | ✓ |
| Inline buttons | ✓ | — | ✓ |
| File attachments | ✓ | ✓ | ✓ |
| Voice messages | Input only | — | — |
OpenAgent automatically adapts the agent's response format to the channel's capabilities. Markdown is stripped for channels that don't support it.