The whole point of OpenClaw (Clawdbot) is that you talk to your AI assistant from your phone, not just a terminal window. Messaging channels are what make the difference between “I have an AI tool” and “I have an AI assistant I can reach from anywhere.”
I use Telegram as my primary channel with Jarvis and have tested all three platforms extensively. Here’s how to set up each one, which to pick, and the configuration details that trip people up.
If you haven’t installed OpenClaw yet, start with the complete setup guide before configuring channels. And if you’re running this on a dedicated Mac Mini, here’s how to set it up for 24/7 operation.
Which messaging channel should you pick?
Quick recommendation based on my experience with all three:
- Telegram: Best for personal use and power users. Easiest to set up (10 minutes). Best bot API of the three. Supports inline buttons, file sharing, voice messages. About 80% of OpenClaw users I’ve talked to use Telegram as their primary channel.
- Discord: Best for teams, communities, and developers. Medium setup difficulty. Great thread support for organizing long tasks. If you already live in Discord, this makes sense.
- WhatsApp: Best for people who live in WhatsApp (common outside the US). Hardest to set up. Most limitations. Only choose this if you specifically need WhatsApp.
My pick: Telegram. The desktop and mobile apps are both excellent, the bot API is the most capable of the three, and the setup is straightforward. I’ve been on Telegram daily for six months and haven’t felt the need to switch.
You can run multiple channels simultaneously. I started with Telegram only and added Discord later for specific use cases. There’s no penalty for starting with one and expanding.
Want this done for you?
Skip the setup headaches. Get a fully configured OpenClaw assistant with all your channels connected in one session.

Setting up Telegram (recommended, 10 minutes)
Step 1: Create a Telegram bot
- Open Telegram and search for @BotFather
- Send
/newbot - Choose a name for your bot (this is the display name, like “Jarvis”)
- Choose a username (must end in “bot”, like “jarvis_assistant_bot”)
- BotFather gives you an API token. Copy it and save it somewhere safe. You’ll need it in the next step.
Naming tip: Pick a username that’s short and easy to find. You’ll be searching for it in Telegram. I use something like “myname_ai_bot” rather than a random string.
Step 2: Get your user ID
Your bot needs to know who’s allowed to talk to it. Find your numeric Telegram user ID:
- Search for @userinfobot on Telegram
- Send it any message
- It replies with your user ID (a number like 1658804366)
Save this number. You need it for the security configuration.
Step 3: Configure OpenClaw
Add the Telegram channel to your gateway config:
channels:
telegram:
token: "YOUR_BOT_TOKEN_FROM_BOTFATHER"
allowedUsers:
- YOUR_USER_ID_NUMBER
The allowedUsers field is critical for security. Without it, anyone who discovers your bot’s username could message it, rack up your API costs, and potentially access data in your bot’s context. Always set this.
Step 4: Restart and test
clawdbot gateway restart
Open Telegram, find your bot by searching for the username you created, and send a message. If it responds, you’re connected.
If it doesn’t respond: Check these in order: (1) Is the gateway running? clawdbot gateway status (2) Did you paste the full bot token with no extra spaces? (3) Is your user ID correct? (4) Check clawdbot gateway logs for specific errors.
Telegram configuration tips
Set bot commands with BotFather. Send /setcommands to BotFather and add commands like /new (start a fresh session) and /status (check bot status). These show up as a convenient menu in the Telegram input field.
Enable inline buttons. OpenClaw supports Telegram inline buttons for interactive responses (like yes/no confirmations, action menus). This is configured automatically in newer versions. If you don’t see buttons, update OpenClaw to the latest version.
Use the Telegram desktop app too. For longer conversations or when you’re at your computer, the desktop app is faster than typing on your phone. Your bot works identically on both. I switch between phone and desktop constantly throughout the day.
Voice messages work. You can send voice messages to your bot and it will transcribe them. Great for when you’re driving, walking, or just don’t feel like typing. “Hey Jarvis, remind me to call the accountant at 3pm” takes 3 seconds to say vs. 15 seconds to type.
Pin your bot chat. If you use Telegram for other things, pin your bot’s chat so it stays at the top of your chat list. Quick access matters when you’re reaching for your assistant 20+ times a day.
Setting up Discord (medium difficulty)
Step 1: Create a Discord application
- Go to discord.com/developers/applications
- Click “New Application” and name it
- Go to the “Bot” section on the left sidebar
- Click “Add Bot”
- Under the bot’s token section, click “Reset Token” and copy the token
- Turn OFF “Public Bot” (you don’t want random people adding it to their servers)
- Turn ON “Message Content Intent” under Privileged Gateway Intents (required for reading messages)
Step 2: Invite the bot to your server
- Go to “OAuth2” then “URL Generator” in the left sidebar
- Select scopes:
bot,applications.commands - Select permissions: Send Messages, Read Message History, Embed Links, Attach Files
- Copy the generated URL and open it in your browser
- Select your server and authorize
Server tip: Create a private Discord server just for your bot if you don’t want to add it to an existing server. This gives you a clean, dedicated space.
Step 3: Configure OpenClaw
Add Discord to your gateway config:
channels:
discord:
token: "YOUR_DISCORD_BOT_TOKEN"
allowedUsers:
- "YOUR_DISCORD_USER_ID"
To find your Discord user ID: enable Developer Mode in Discord settings (User Settings > Advanced > Developer Mode), then right-click your username anywhere and select “Copy User ID.”
Step 4: Restart and test
clawdbot gateway restart
Message your bot in a DM or mention it in a channel. It should respond.
Discord-specific tips
Use DMs for private conversations. If your bot is in a shared server, DMs keep your interactions private. Channel messages are visible to everyone with access to that channel.
Thread support is great for long tasks. Discord threads let you have organized conversations about specific topics without cluttering a main channel. “Research this competitor” can live in its own thread with all the context contained.
Discord has rate limits. If your bot sends too many messages too fast, Discord will throttle it. This usually only matters for cron jobs that produce long outputs. If you hit rate limits, break long outputs into smaller chunks or reduce message frequency.
Slash commands. OpenClaw can register slash commands on Discord for common actions. This gives you autocomplete and a cleaner interface for frequent tasks.
Don’t want to do this yourself?
Skip the trial and error. Get all your channels configured and tested by someone who does this daily.
Setting up WhatsApp (complex)
WhatsApp is the most complex channel to configure because Meta’s API requirements are stricter than Telegram or Discord.
The two options
Option A: WhatsApp Business API (official)
- Requires a Meta Business account and business verification
- Requires a dedicated phone number (can’t use your personal number simultaneously)
- More reliable and won’t break with WhatsApp updates
- Free for first 1,000 conversations per month
- Takes 1-2 days for Meta to verify your business
Option B: Community bridges (Baileys, whatsapp-web.js)
- Uses your existing WhatsApp number via the web protocol
- Less official and may break when WhatsApp updates their web client
- Simpler for personal use but less stable long-term
- No business verification needed
I recommend Option A if you’re serious about WhatsApp as a daily channel. Option B works for testing but I’ve seen it break twice in three months when WhatsApp pushed updates.
Basic configuration
channels:
whatsapp:
# Configuration depends on which approach you use
# See OpenClaw docs for current WhatsApp setup guide
WhatsApp setup changes more frequently than Telegram or Discord as Meta updates their API. Check the current OpenClaw documentation for the latest instructions before starting.
WhatsApp limitations to know about
No inline buttons. WhatsApp has limited interactive message support compared to Telegram. Your bot can’t present clickable option menus the same way.
Media handling is different. File sharing works but with more restrictions on file types, sizes, and how files are presented in the chat.
Rate limits are stricter. Meta enforces conversation limits that can throttle heavy use. If you’re sending dozens of messages per hour, you’ll hit these.
Two-factor auth complications. If you use your primary phone number with the Business API, it can interfere with your regular WhatsApp usage. Use a separate number if possible.
Template messages required for proactive outreach. WhatsApp requires pre-approved message templates for bot-initiated conversations (like morning briefings). This adds an extra setup step compared to Telegram where your bot can message you freely.
Running multiple channels at once
You can run Telegram, Discord, and WhatsApp simultaneously. Each channel gets its own section in the config:
channels:
telegram:
token: "..."
allowedUsers: [...]
discord:
token: "..."
allowedUsers: [...]
All channels connect to the same bot with the same memory and personality. A conversation you started on Telegram can be referenced from Discord. Your bot doesn’t have split personalities – it’s one assistant reachable from multiple places.
My recommendation: Start with one channel. Get it working perfectly. Live with it for a week. Then add a second if you have a genuine use case for it. Running three channels from day one adds complexity you don’t need while you’re still learning how OpenClaw works.

Security configuration (don’t skip this)
This is the part most setup guides gloss over and it’s the most important section in this post.
Always set allowedUsers. Every channel should have a whitelist of who can talk to your bot. An open bot is both a security risk (someone could access your data and context) and a financial risk (they could rack up hundreds of dollars in API charges on your account).
Use DM policies. Configure your bot to only respond in DMs, not in public channels, unless you specifically want public interaction. A bot that responds to every message in a busy Discord server will burn through API credits fast.
Audit your config regularly. Check your allowed user lists every month or two, especially if you’ve been experimenting with settings or added temporary users for testing.
Don’t share your bot tokens. Treat them like passwords. If a token leaks, regenerate it immediately through BotFather (Telegram), the Discord developer portal, or Meta’s dashboard. A leaked token gives someone full control of your bot.
Separate bot from personal accounts. Your Telegram bot token is separate from your personal Telegram account. If you lose access to your Telegram account, you can still manage the bot token through BotFather from any Telegram account (as long as you remember the BotFather password). Same principle applies to Discord and WhatsApp.
Troubleshooting channel connection issues
“Bot created but doesn’t respond”: Most common cause is the gateway not running or not restarted after config changes. Run clawdbot gateway restart and check clawdbot gateway logs for errors. Look for “channel connected” messages in the logs.
“Bot responds to some people but not others”: Check your allowedUsers list. The user ID must match exactly. For Discord, user IDs are strings (wrap in quotes). For Telegram, they’re numbers (no quotes).
“Bot responds slowly on one channel but fast on another”: Each platform has different API latencies. Telegram is consistently the fastest in my experience. Discord can have delays during high-traffic periods. If one channel is significantly slower, check if there are rate limit errors in the gateway logs.
“Lost my bot token”: Telegram: message @BotFather, send /mybots, select your bot, go to API Token, and regenerate. Discord: go to the developer portal, find your application, and reset the token under the Bot section. You’ll need to update your gateway config with the new token and restart.
“Messages from my bot appear garbled or cut off”: Different platforms have different message length limits. Discord caps at 2000 characters per message. Telegram is more generous at 4096. If your bot’s responses are being truncated, it’s hitting a platform limit. OpenClaw should handle this automatically by splitting messages, but older versions might not.
Pro tips from daily multi-channel use
Telegram is the fastest for back-and-forth. I’ve timed it. Telegram consistently has the lowest latency between sending a message and getting a response. If speed matters to you, Telegram is the way to go.
Set up push notifications correctly. You want to be notified when your bot messages you proactively (like morning briefings), but you don’t want notification spam during active conversations. On Telegram, I have notifications enabled for the bot chat but I turn off sounds during work hours.
Test failover. Know what happens when your primary channel goes down. I’ve had Telegram API outages twice in six months. Having Discord as a backup channel meant I could still communicate with Jarvis during those outages. You don’t need both running all the time, just know how to switch.
Use different channels for different contexts. Some people use Telegram for personal interactions and Discord for team/business interactions with the same bot. The bot shares memory across channels, so context from one carries over to the other.
Consider email as a channel too. OpenClaw also supports email monitoring and auto-replies. It’s not a “messaging channel” in the traditional sense, but it extends your assistant’s reach into your inbox.
FAQ
Can I use Signal with OpenClaw?
Yes, Signal is supported as a channel. Setup requires the signal-cli tool and is similar in complexity to WhatsApp. Check the OpenClaw docs for current Signal configuration instructions.
Can multiple people talk to the same bot?
Yes. Add multiple user IDs to the allowedUsers list. Each person gets their own conversation context. This works well for families or small teams sharing one OpenClaw instance. Each person can have a separate ongoing conversation with the bot.
What happens if my messaging channel goes down?
OpenClaw keeps running. It just can’t send or receive messages on that channel until the platform comes back. Your cron jobs and background tasks continue regardless of channel status. Queued messages will be delivered when the connection restores.
Is my conversation data stored on Telegram’s servers?
Your messages pass through Telegram’s infrastructure (or Discord’s, or WhatsApp’s), so they’re subject to that platform’s data handling policies. OpenClaw also stores conversation history locally in your workspace for memory continuity. If privacy is a top concern, review each platform’s data retention policies before choosing.
Can I switch channels later without losing anything?
Yes. Your bot’s memory, personality, and context live in the workspace on your machine, not on the messaging platform. Switching from Telegram to Discord (or adding Discord alongside Telegram) doesn’t affect your bot’s knowledge or configuration. You’re just changing which “phone” your assistant picks up.
Do I need a paid Telegram/Discord account?
No. Free accounts on both platforms work perfectly for running an OpenClaw bot. Telegram Premium and Discord Nitro add features for your personal use of those platforms, but they don’t affect bot functionality.
Need help setting this up?
Custom personality, skills, automations, and messaging channels – all configured and tested in one session.
