I wanted my agent to live in Telegram. Not a web UI, not a terminal — Telegram, where I already spend half my day.
It took four lines of config.
OpenClaw supports over 20 messaging platforms. Most of them are straightforward to connect. Some have quirks. This guide covers the four most popular ones in detail, plus voice mode and multi-platform routing.
How Platform Connections Work
Every messaging integration in OpenClaw follows the same pattern:
- You create a bot or app on the platform (get a token or credentials)
- You add the credentials to your agent’s
config.yaml - OpenClaw handles everything else — authentication, message routing, response delivery
Your agent doesn’t see any platform-specific code. It just receives a message and sends a response. The platform layer is abstracted away entirely.
Telegram (Easiest — Start Here)
Telegram is the most popular OpenClaw integration and the easiest to set up. If you’re new to OpenClaw, start here.
1. Create a Bot via BotFather
- Open Telegram, search for @BotFather
- Send:
/newbot - Enter a display name for your bot (e.g.,
My OpenClaw Agent) - Enter a username ending in
bot(e.g.,myopenclaw_bot) - BotFather sends you a token:
7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2. Get Your Telegram User ID
You need your numeric Telegram ID for the allowedUsers field (not your username).
Search for @userinfobot in Telegram and send /start. It will reply with your ID.
3. Add to Config
messaging:
- platform: telegram
botToken: "7123456789:AAHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowedUsers:
- "123456789" # your numeric Telegram ID
parseMode: markdown
4. Start a Conversation
Send /start to your bot in Telegram. This is required — Telegram bots can’t initiate the first message. After that, send any message and your agent will respond.
WhatsApp integration uses Baileys, an open-source WhatsApp Web API library. Unlike Telegram, there’s no “bot token” — you connect by scanning a QR code with your phone.
1. Add WhatsApp to Config
messaging:
- platform: whatsapp
sessionDir: ./whatsapp-session
allowedContacts:
- "+1234567890" # your phone number in international format
2. Authenticate with QR Code
Start your agent:
openclaw start --agent myagent
The TUI will display a QR code. Open WhatsApp on your phone → Settings → Linked Devices → Link a Device. Scan the code.
Once linked, OpenClaw acts as a WhatsApp Web session. Messages to yourself (the “Saved Messages” chat in WhatsApp) route to your agent.
Important Notes
- WhatsApp doesn’t officially support bots or third-party API access on personal accounts. Baileys works in practice but is technically against WhatsApp’s ToS. Use with awareness.
- The session persists in
./whatsapp-session/— back this up or you’ll need to re-scan. - If WhatsApp logs out your session (happens occasionally), just re-scan.
Slack
Slack integration requires creating a Slack App and installing it to your workspace.
1. Create a Slack App
- Go to api.slack.com/apps → Create New App → From scratch
- Give it a name and choose your workspace
- Under OAuth & Permissions, add these Bot Token Scopes:
chat:writeim:historyim:readim:write
- Install the app to your workspace
- Copy the Bot User OAuth Token (starts with
xoxb-)
2. Enable Socket Mode
- Under Socket Mode, enable it
- Create an App-Level Token with
connections:writescope - Copy the App-Level Token (starts with
xapp-)
3. Add to Config
messaging:
- platform: slack
botToken: "xoxb-your-bot-token"
appToken: "xapp-your-app-token"
allowedUsers:
- "U01234ABCDE" # your Slack member ID (visible in your Slack profile)
4. Message Your Bot
In Slack, find your app under Apps in the sidebar and send it a direct message.
Discord
Discord integration uses a Discord bot application.
1. Create a Discord Bot
- Go to discord.com/developers/applications → New Application
- Under Bot, click Add Bot
- Enable Message Content Intent under Privileged Gateway Intents
- Copy the Token
- Under OAuth2 → URL Generator, select
botscope +Send Messagespermission - Open the generated URL to invite the bot to your server
2. Add to Config
messaging:
- platform: discord
botToken: "your-discord-bot-token"
allowedUsers:
- "your-discord-username"
allowedChannels:
- "agent-channel" # optional: restrict to specific channels
3. Talk to Your Bot
In Discord, mention your bot or send it a DM.
Voice Mode
OpenClaw supports voice input and output on macOS, iOS, and Android.
Enabling Voice on macOS
talk:
enabled: true
silenceTimeoutMs: 1500 # new in v2026.3.8 — ms of silence before auto-sending
voice: "Samantha" # macOS system voice
inputDevice: default
The silenceTimeoutMs setting (added in v2026.3.8) is particularly useful for natural speech — you can pause mid-sentence without the agent cutting you off. 1500ms (1.5 seconds) is a good default. Increase to 2000ms if you tend to pause longer.
iOS and Android
Voice on mobile works through the OpenClaw companion app. Install the app, connect it to your self-hosted instance using the Remote Gateway Token from your config, and you can speak to your agent through the app — audio is processed locally.
Multi-Platform: One Agent, Multiple Inboxes
You can connect multiple platforms simultaneously:
messaging:
- platform: telegram
botToken: "..."
allowedUsers:
- "123456789"
- platform: slack
botToken: "xoxb-..."
appToken: "xapp-..."
allowedUsers:
- "U01234ABCDE"
- platform: discord
botToken: "..."
allowedUsers:
- "yourname"
The agent treats all platforms as a single conversation thread. A message from Telegram and a message from Slack both go to the same agent, and the agent can respond to both.
One practical pattern: use Telegram for personal queries, Slack for work-related agent tasks, and Discord for less frequent developer tooling requests. Same agent brain, different communication channels.
Privacy: What Does Each Platform See?
This is worth understanding before you connect sensitive platforms.
| Platform | What it sees | What OpenClaw sends |
|---|---|---|
| Telegram | Message content, your Telegram ID | Text responses |
| Message content (E2E encrypted in transit) | Text responses | |
| Slack | Message content, workspace metadata | Text responses |
| Discord | Message content, server/channel info | Text responses |
The key point: the platform receives your message text as part of routing it to your bot. This is unavoidable — the platform has to read the message to route it.
What the platform does not receive: your LLM responses happen on your machine. The response goes from your machine → platform, not platform → LLM → platform. Your API keys, your memory files, and your LLM conversations don’t pass through the messaging platform.
This is meaningfully different from cloud-based AI bots where the platform, the bot service, and the LLM are all different third parties handling your data.
What’s Next
Understand how memory and data privacy work end to end: How OpenClaw Memory Works (And Why Your Data Never Leaves Your Machine)
Install OpenClaw first: How to Install OpenClaw on Ubuntu, macOS, and Windows