Channels
Channels are messaging platform integrations that connect OpenClaw to WhatsApp, Telegram, Discord, Slack, Signal, iMessage, and other platforms. Each channel handles platform-specific authentication, message normalization, and delivery.What is a Channel?
A channel is a messaging platform adapter that:- Authenticates with the messaging platform
- Receives inbound messages and normalizes them
- Delivers outbound messages from agents
- Manages platform-specific features (media, reactions, threads)
- Enforces access control via allowlists and pairing
Supported Channels
OpenClaw supports multiple messaging platforms out of the box:Web-based via Baileys library
Telegram
Bot API via grammY
Discord
Bot via discord.js
Slack
App via Bolt SDK
Signal
CLI-based via signal-cli
iMessage
macOS only, AppleScript bridge
- Microsoft Teams
- Google Chat
- Matrix
- Zalo
- Voice Call
Channel Configuration
Basic Setup
Channels are configured underchannels.<channel-id> in your OpenClaw config:
Channel-Specific Settings
Each channel has unique configuration options: WhatsApp:Channel Types
Chat Types
Channels support different chat types:- direct: Direct messages (DMs) with individual users
- group: Group chats with multiple participants
- channel: Broadcast channels (Telegram, Slack)
- thread: Threaded conversations
Account Support
Some channels support multiple accounts:Message Routing
Allowlists (Access Control)
Channels use allowlists to control who can message the agent:*: Allow everyone (wildcard)123456789: User IDuser:alice: Username@alice: Username with @ prefix+15551234567: Phone number (E.164 format)
For production, use explicit allowlists instead of
* to prevent unauthorized access.Group Policies
Control how the agent responds in group chats:open: Allow all group messages (mention gating applies)allowlist: Only allow messages from users in allowlistdisabled: Ignore all group messages
Mention Patterns
In group chats, the agent responds when mentioned:- Discord:
@bot-name - Telegram:
@bot_username - Slack:
@bot-name - WhatsApp: Quote replies
DM vs Group Routing
Direct messages and group chats can route to different agents:Pairing Flow
DM Pairing (Security)
By default, unknown DM senders must pair before accessing the agent:-
User sends first message:
-
Bot sends pairing code:
-
Admin approves pairing:
-
User can now chat:
~/.openclaw/allowlists/{channel}.json
Location: src/channels/plugins/pairing.ts:1, src/pairing/
Pairing Commands
Channel Status
Monitoring Channels
Check channel connection status:Channel Lifecycle
Location: src/channels/plugins/status.ts:1Channel Configuration Examples
Multi-Account Setup
DM-Only Mode
Open Groups, Restricted DMs
Channel-Specific Media Settings
Advanced Features
Message Actions
Channels support platform-specific actions:- Reactions: React to messages with emoji
- Edits: Edit sent messages
- Deletions: Delete messages
- Typing Indicators: Show “typing…” status
- Read Receipts: Mark messages as read
Media Handling
Channels automatically download and process media:- Images: JPG, PNG, GIF, WebP
- Videos: MP4, MOV, WebM
- Audio: MP3, OGG, M4A
- Documents: PDF, TXT, DOCX
- Voice Messages: Platform-specific formats
Thread Support
Channels that support threads (Discord, Slack) create sub-sessions:Troubleshooting
Channel Won’t Connect
-
Check credentials:
-
Verify channel status:
-
Check logs:
Messages Not Delivered
-
Verify allowlist:
-
Check pairing status:
-
Test routing:
Channel Authentication Failed
Telegram:Next Steps
Session Management
Learn how sessions track conversation context
Message Routing
Configure multi-agent routing rules
Channel Setup Guides
Platform-specific setup instructions
Access Control
Advanced security and allowlist configuration

