Channels
The Channels page (/channels) lets you connect external messaging platforms so the AI agent can receive and respond to messages outside the web UI.
Channel Grid
Three channels are displayed as cards in a responsive grid:
- Telegram -- connect a Telegram bot.
- WhatsApp -- connect via WhatsApp Web QR code authentication.
- Discord -- connect a Discord bot.
Each card shows the channel logo, name, description, and a status badge:
- Running (green) -- the channel is active and processing messages.
- Stopped -- the channel is configured but not running.
- Not configured (yellow) -- credentials have not been provided.
Running channels display a green glow effect at the bottom of their card.
Channel Detail Dialog
Clicking a channel card opens a modal with configuration options specific to that channel.
Telegram
- Bot Token -- enter the bot token obtained from BotFather. A green dot indicates the token is already stored; a yellow dot means it is missing.
- Save credentials -- stores the token in the encrypted credential store.
- Start/Stop -- toggle the bot on or off. The Start button is disabled until the token is configured.
- Status badge -- shows Running or Stopped.
Discord
- Bot Token -- enter the Discord bot token from the Developer Portal. Same credential indicator and save flow as Telegram.
- Start/Stop -- same toggle behavior.
WhatsApp uses QR code authentication instead of an API token:
- Click Generate QR Code to request a QR image from the server.
- A QR code image appears in the dialog. Scan it with the WhatsApp app on your phone.
- A pulsing yellow "Waiting for scan..." indicator shows while the system waits.
- Once the phone confirms the link, the status automatically updates to "Connected" via WebSocket.
- A Logout button appears when authenticated (and the channel is stopped).
Trusted Contacts
Below the QR section, a Trusted Contacts panel controls who can interact with the WhatsApp bot:
- Empty list -- all contacts are allowed.
- Add a contact -- enter a phone number (e.g.,
491234567890), an optional name, and a permission level:- Read -- can receive messages but cannot trigger actions.
- Write -- can send messages and trigger agent actions.
- Admin -- full access.
- Remove -- click the X button next to a contact.
- Change permission -- use the dropdown on each contact row.
Real-Time Status
Channel status updates are pushed over WebSocket. When a channel starts, stops, or authenticates, the UI updates immediately without requiring a page refresh.