Deploy Your Agent to Your Channels
Agents are most useful where your users already are. Deploying an agent to a channel takes two halves: paste the platform’s credentials into almyty, then point the platform at almyty’s webhook URL — and for a growing set of platforms that second half is registered automatically. This page walks through both halves for every supported channel.

How a deployment works
- Open the agent’s Interfaces tab, click Deploy Channel, and pick a platform.
- Paste the platform credentials from the table below. They are encrypted at rest like every other credential.
- After deploying, the Setup panel shows your channel’s inbound webhook URL —
https://<api-host>/<org>/<channel>— with a copy button and a platform-specific checklist. Paste the URL into the platform’s console where a manual step is needed; for Telegram and Twilio-backed channels the webhook is registered automatically where the platform supports it. - Click Test connection in the setup panel. It performs a real authentication probe against the platform, so a bad token surfaces immediately instead of on the first missed message.
Messages then round-trip: platform → adapter (verify, normalize) → agent run → adapter (format for the platform) → reply.

Supported channels
| Channel | Inbound | Outbound | You need |
|---|---|---|---|
| Slack | Events API webhook, request-signature verified | chat.postMessage | Bot token, signing secret |
| Telegram | Bot webhook (registered automatically) | Bot API sendMessage | Bot token |
| Discord | Gateway events | Channel messages | Bot token |
| WhatsApp (Twilio) | Twilio webhook (registered automatically), X-Twilio-Signature verified | Twilio Messages API | Account SID, auth token, WhatsApp sender |
| WhatsApp Cloud (Meta) — rolling out | Meta callback webhook, app-secret verified | WhatsApp Cloud API | Access token, phone number ID, verify token, app secret |
| SMS (Twilio) — rolling out | Twilio webhook (registered automatically), X-Twilio-Signature verified | Twilio Messages API | Account SID, auth token, phone number |
| Microsoft Teams | Bot Framework activities, JWT verified | Bot Framework replies | Bot ID + password (Azure bot registration) |
| Google Chat | Space webhook, verification token | Incoming webhook | Webhook URL, verification token |
| Signal | signal-cli REST bridge webhook | Bridge send API | Self-hosted signal-cli bridge URL, phone number |
| Matrix | Homeserver sync | Room send | Homeserver URL, access token, room ID |
| IRC | IRC↔HTTP bridge webhook | Bridge send | Bridge webhook URL |
| Inbound MIME parsing | Resend API | Resend API key | |
| Webhook | Any HTTP POST, optional HMAC verification | POST to your callback URL | Callback URL, optional shared secret |
| Chat Widget | Widget POST | SSE / polling delivery | Nothing — embed the snippet |
Every inbound request is authenticated against the platform’s mechanism before it reaches an agent: Slack and Webhook use HMAC signatures, WhatsApp validates the Twilio signature, Teams verifies the Bot Framework JWT, Google Chat checks its verification token. Requests that fail verification are rejected, never queued.
Per-platform quick guides
The setup panel in the app shows the same checklist for the channel you deployed; this section is the reference copy.
Slack
- Create an app at api.slack.com/apps (from scratch).
- Under OAuth & Permissions, add the bot scopes
chat:write,app_mentions:read, andim:history, then install the app to your workspace. - Paste the Bot Token (
xoxb-...) and Signing Secret into the channel’s configuration in almyty. - Under Event Subscriptions, enable events and paste your almyty webhook URL as the Request URL.
- Subscribe to the bot events
message.imandapp_mention, then save.
Telegram
- Message @BotFather , run
/newbot, and copy the bot token into the channel’s configuration. - Done — the webhook is registered automatically on deploy.
WhatsApp and SMS (Twilio)
- Copy the Account SID and Auth Token from the Twilio Console .
- Enter the sender number (your WhatsApp sender or SMS phone number).
- The number’s inbound webhook is registered automatically where the platform supports it. SMS is rolling out.
WhatsApp Cloud (Meta) — rolling out
- Create a Meta app with the WhatsApp product at developers.facebook.com .
- Paste the access token, phone number ID, verify token, and app secret into the channel’s configuration.
- In the app’s WhatsApp → Configuration page, paste your almyty webhook URL as the callback URL, using the same verify token.
- Subscribe the app to the
messageswebhook field.
Discord
- Create an application and bot at discord.com/developers/applications .
- Enable the MESSAGE CONTENT intent under Bot settings.
- Invite the bot to your server via an OAuth2 URL with the
botscope. - No webhook needed — almyty connects out to the Discord gateway.
Google Chat
- Create a Chat app in the Google Cloud console and set your almyty webhook URL as its HTTP endpoint.
- Paste the space’s incoming webhook URL and the verification token into the channel’s configuration.
Microsoft Teams
- Register a bot in Azure (Bot Framework) and copy the bot ID, password, and tenant ID into the channel’s configuration.
- Set the bot’s messaging endpoint to your almyty webhook URL.
Signal
- Run a signal-cli-rest-api bridge and enter its URL and your phone number.
- Point the bridge’s receive webhook at your almyty webhook URL.
Matrix
- Enter the homeserver URL, an access token for the bot account, and the room ID.
- No webhook needed — almyty syncs from the homeserver.
IRC
- Run an IRC↔HTTP bridge and enter the server, port, channel, and nick.
- Point the bridge’s outbound webhook at your almyty webhook URL.
- Paste a Resend API key and set the reply-from and receive addresses.
- Configure your inbound email route to forward to your almyty webhook URL.
Webhook
- POST messages to your almyty webhook URL; optionally sign requests with the shared secret (HMAC).
- Replies are POSTed to the callback URL you configure on the channel.
Chat Widget
Copy the embed snippet from the setup panel into your site’s HTML, just before the closing body tag:
<script src="https://<api-host>/gateways/<gateway-id>/widget.js" async></script>No webhook needed — the widget talks to almyty directly.
Customizing the chat widget
Chat-widget gateways get a widget builder on their gateway page: title, color, position, launcher icon, theme, and greeting — with a live preview that runs the exact widget.js the gateway serves, and the one-line embed snippet.

AI disclosure (EU AI Act Art. 50)
Every channel has an AI disclosure setting — in the deploy dialog it is the “Disclose AI identity on first message” checkbox. When enabled, the first outbound message of each conversation is preceded by a disclosure line — by default:
You are chatting with an AI assistant.
The text is overridable per channel. If you deploy agents to the public in the EU, turn this on; Article 50 of the AI Act requires that people be informed they are interacting with an AI system. See Compliance for the full mapping.
Operational notes
- Signal and IRC need a small self-hosted bridge (signal-cli-rest-api, an IRC↔HTTP bridge); the adapter documents the exact contract it expects.
- Rate limits are the platform’s own; the adapter surfaces platform errors on the run rather than retrying blindly.
- Adapter health and per-channel traffic appear in Analytics; failed deliveries are recorded on the run.