Running OpenClaw on WhatsApp, Telegram, AND Discord Simultaneously
How to run your OpenClaw AI assistant across multiple messaging channels at once. Covers config, session isolation, group chat behavior, and which channel works best for what.
Running OpenClaw on WhatsApp, Telegram, AND Discord Simultaneously
TL;DR: OpenClaw can run on multiple channels at once — same AI, different messaging apps. Each channel gets its own session, so conversations don't bleed across. Configure all your channels in one config file, start the gateway, and your assistant is everywhere.
Estimated time: 30-45 minutes (assuming channels aren't set up yet)
Difficulty: Intermediate
Why Multi-Channel?
Different apps serve different purposes in your life. You probably already use them that way:
- WhatsApp — Personal conversations, family, close friends
- Telegram — Tech-savvy contacts, bot-friendly, power features
- Discord — Communities, gaming, work servers
Having your AI assistant available in all of them means you use whatever app you're already in. No switching to a separate "AI app" — your assistant is just there, in every channel.
Real-World Multi-Channel Setups
Work + Personal separation:
- Discord for work tasks and team collaboration
- WhatsApp for personal use and family questions
Privacy layers:
- Telegram for sensitive conversations (secret chats, self-destructing messages)
- WhatsApp for everyday stuff
- Discord for group projects
Context switching:
- Ask a quick question on WhatsApp while on your phone
- Continue a deep technical discussion on Discord at your desk
- Forward something interesting to Telegram for later
The Config: All Channels in One File
Here's a complete multi-channel configuration:
config.json
{
"channels": {
"telegram": {
"enabled": true,
"token": "7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"whatsapp": {
"enabled": true,
"phoneNumber": "+1234567890"
},
"discord": {
"enabled": true,
"token": "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.xxxxxx.xxxxxxxxxxxxxxxxxxxxxxx",
"applicationId": "1234567890123456789"
}
},
"providers": {
"anthropic": {
"type": "anthropic",
"apiKey": "${ANTHROPIC_API_KEY}"
}
},
"defaultModel": "anthropic/claude-sonnet-4-20250514"
}
config.yaml
channels:
telegram:
enabled: true
token: "7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
whatsapp:
enabled: true
phoneNumber: "+1234567890"
discord:
enabled: true
token: "MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.xxxxxx.xxxxxxxxxxxxxxxxxxxxxxx"
applicationId: "1234567890123456789"
providers:
anthropic:
type: anthropic
apiKey: "${ANTHROPIC_API_KEY}"
defaultModel: "anthropic/claude-sonnet-4-20250514"
Setting Up Each Channel
Each channel has its own setup process:
- Telegram: Create a bot via @BotFather, get a token. See our full Telegram guide
- WhatsApp: Pair via QR code. Requires a phone number and an active WhatsApp session. See our WhatsApp disconnected fix if it drops
- Discord: Create a bot application at discord.com/developers, get a bot token and application ID. See our Discord application ID fix if you hit issues
Session Isolation: How It Works
This is the important part: each channel gets its own session by default.
When you message your AI on Telegram, that conversation is separate from your WhatsApp conversation with the same AI. They don't see each other's history.
Why This Matters
- Your work discussion on Discord doesn't leak into your WhatsApp family chat
- Context stays relevant per channel
- You can have completely different conversations simultaneously
- Group chats get their own sessions too
How Sessions Are Separated
OpenClaw creates session keys based on:
channel + chatId + (optional: topicId)
So these are all separate sessions:
| Channel | Chat | Session |
|---|---|---|
| Telegram | DM with you | telegram:dm:123456 |
| Telegram | Group "Work" | telegram:group:789012 |
| Telegram | Group "Work", topic "Backend" | telegram:group:789012:topic:42 |
| DM with you | whatsapp:dm:1234567890 |
|
| Group "Family" | whatsapp:group:abcdef |
|
| Discord | DM with you | discord:dm:123456789 |
| Discord | Server "Dev Team", channel #general | discord:guild:111:channel:222 |
Each session has its own conversation history, context, and memory state.
Shared Memory, Separate Conversations
While sessions are isolated, your AI's memory files (SOUL.md, MEMORY.md, etc.) are shared across all channels. This means:
- Your AI knows who you are regardless of which channel you message from
- Long-term memories persist everywhere
- But the conversation ("what did I just ask?") is per-session
Think of it like talking to a friend — they remember who you are no matter where you bump into them, but each conversation starts fresh.
Group Chat Behavior Per Channel
Each platform handles group chats differently, and your AI needs to adapt.
Telegram Groups
- Mention-based: In groups, the bot typically responds when @mentioned or when replying to one of its messages
- Privacy mode: You may need to disable group privacy in BotFather (
/setprivacy → Disable) for the bot to see all messages - Topics: Telegram supergroups with topics enabled give each topic its own session — great for organizing
WhatsApp Groups
- All messages visible: The bot sees every message in groups it's part of
- No @mention system: The AI needs to be smart about when to respond vs. stay quiet (OpenClaw handles this with participation logic)
- Phone number visible: Other group members can see the phone number associated with your WhatsApp bot
Discord Servers
- Rich features: Channels, threads, roles, reactions — Discord gives the most structure
- Slash commands: You can set up Discord slash commands for your bot
- Thread support: Each Discord thread can be its own session
- Multiple servers: One bot can be in many servers, each getting isolated sessions
Behavior Comparison
| Feature | Telegram | Discord | |
|---|---|---|---|
| Group privacy control | ✅ Granular | ❌ All-or-nothing | ✅ Per-channel |
| Mention support | ✅ @bot | ⚠️ Limited | ✅ @bot |
| Thread/topic isolation | ✅ Topics | ❌ None | ✅ Threads |
| Reactions | ✅ | ✅ | ✅ |
| File sharing | ✅ | ✅ | ✅ |
| Voice messages | ✅ | ✅ | ✅ |
| Message editing | ✅ | ❌ | ✅ |
| Bot discoverability | ⭐⭐⭐ | ⭐ | ⭐⭐⭐ |
Which Channel for What?
Here's our opinionated recommendation:
Telegram → Primary AI Assistant Channel
Why: Best bot support of any messaging platform. Clean API, fast message delivery, topics for organization, works on every device, no phone number required for bots.
Best for: Your main AI interaction, organized by topics. Work in one topic, personal in another, projects in dedicated threads.
WhatsApp → Personal and Family
Why: Everyone's already on WhatsApp. Lowest friction for sharing with family members. They don't need to install anything new.
Best for: Family group chats where everyone can talk to the AI, quick voice messages on the go.
Watch out for: WhatsApp connections can drop and need re-pairing. WhatsApp also has the strictest rate limiting.
Discord → Work and Communities
Why: Best structure for team use. Channels for different topics, role-based permissions, threads for focused discussions.
Best for: Team workspaces, development projects, communities. Each channel can have its own AI context.
Watch out for: Requires everyone to have Discord. Overkill for just personal use.
Running All Three at Once
Resource Usage
Running multiple channels adds minimal overhead — each channel is just a connection to a messaging API. The real cost is in AI model API calls, which are the same regardless of which channel the message comes from.
| Component | Impact |
|---|---|
| CPU | Negligible — message handling is lightweight |
| RAM | ~50-100 MB per additional channel |
| Network | Minimal — text messages are tiny |
| API cost | Same per message regardless of channel |
Monitoring
Check that all channels are connected:
clawdbot gateway status
You should see all enabled channels listed as "connected."
Per-Channel Logs
When debugging, the gateway logs show which channel each message came from:
clawdbot gateway logs
Look for [telegram], [whatsapp], or [discord] prefixes.
Disabling a Channel Without Removing Config
If you want to temporarily disable a channel without deleting its configuration:
{
"channels": {
"telegram": {
"enabled": true,
"token": "..."
},
"whatsapp": {
"enabled": false,
"phoneNumber": "..."
},
"discord": {
"enabled": true,
"token": "...",
"applicationId": "..."
}
}
}
Set enabled: false and restart. The channel config stays intact for when you want to re-enable it.
Common Issues
WhatsApp keeps disconnecting
WhatsApp Web connections are inherently less stable than Telegram or Discord bots. Common causes:
- Phone went offline or lost internet
- WhatsApp updated and invalidated the session
- Another device opened WhatsApp Web, disconnecting yours
See our WhatsApp disconnected guide for fixes.
Messages from one channel showing up in another's context
This shouldn't happen — sessions are isolated by channel and chat. If it does:
- Check your session config — make sure you haven't accidentally shared session IDs
- Memory files are shared by design (that's not a bug)
- Reset sessions:
clawdbot session reset
Bot responds in groups when it shouldn't
Configure participation settings per channel:
{
"channels": {
"telegram": {
"enabled": true,
"token": "...",
"groups": {
"respondTo": "mentions"
}
}
}
}
Options: "all" (respond to everything), "mentions" (only when @mentioned), "never" (silent lurker).
Discord bot offline despite correct token
- Check the bot is invited to your server with correct permissions
- Verify the application ID matches the bot — see our Discord application ID guide
- Make sure you haven't hit Discord's rate limits
The Easy Way
Multi-channel setup is one of the more complex configurations in OpenClaw — each channel has its own setup process, its own quirks, and its own failure modes. Getting all three running smoothly takes some patience.
Don't want to manage server infrastructure? lobsterfarm provides managed OpenClaw hosting — deployment, updates, and support handled for you.
Skip the setup. Start using your AI assistant today.
lobsterfarm gives you a fully managed OpenClaw instance — one click, your own server, running 24/7.