How to Connect OpenClaw to Telegram, Discord, WhatsApp & Slack (2026 Complete Setup)
🩺 Summary
Want to run OpenClaw on Telegram, Discord, WhatsApp and Slack? This complete step-by-step guide covers bot creation, YAML config, permissions, and fixing 401/rate-limit errors.
📝 Details
OpenClaw supports 20+ chat platforms, but the official docs spread config details across multiple pages.
This guide consolidates everything into one workflow: create bots → configure YAML → set permissions → deploy.
Covers Telegram (BotFather), Discord (Developer Portal), WhatsApp (Cloud API), and Slack (App Manifest).
# How to Connect OpenClaw to Telegram, Discord, WhatsApp & Slack (2026 Complete Setup)
> One AI assistant. Four chat platforms. Zero cloud lock-in.
> This guide takes you from zero to a fully deployed OpenClaw gateway on Telegram, Discord, WhatsApp, and Slack.
---
## Before You Start
### What You Need
| Requirement | Details |
|:------------|:--------|
| OpenClaw running | Follow the [quick start](/post/openclaw-anzhuang-jiaocheng-windows-wechat-52e3b9) first |
| Node.js 22.19+ | `node --version` to check |
| API key | Anthropic, OpenAI, or any supported provider |
| 10 minutes per channel | Bot creation takes 2-3 min each |
### Quick Architecture
```
Telegram Bot ─┐
Discord Bot ──┤
WhatsApp ─────┼──▶ OpenClaw Gateway ──▶ AI Model (Claude/GPT/etc)
Slack Bot ────┘
```
Each platform sends messages to the same OpenClaw gateway. The assistant responds in the channel you messaged from.
---
## 1. Telegram Setup
### Step 1: Create a Bot via BotFather
1. Open Telegram and search for [@BotFather](https://t.me/botfather)
2. Send `/newbot` and follow the prompts
3. Save the **token** — it looks like `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`
### Step 2: Configure OpenClaw
```bash
openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.token "YOUR_BOT_TOKEN_HERE"
openclaw config set channels.telegram.name "My AI Assistant"
```
### Step 3: Set Bot Commands (Optional but Recommended)
Send these to BotFather:
```
/help — Show available commands
/chat — Start a conversation
/reset — Clear conversation history
```
### Step 4: Restart & Test
```bash
openclaw gateway restart
```
Open your bot in Telegram and send `/start`. If OpenClaw replies, you're set.
### Troubleshooting: No Reply
| Problem | Fix |
|:--------|:----|
| Bot doesn't reply | Check `openclaw gateway status` — is it running? |
| 401 Unauthorized | Did you copy the full token? It's `bot_token` in config |
| Rate limited | Telegram limits 30 messages/sec — set `channels.telegram.rate_limit: 20` |
---
## 2. Discord Setup
### Step 1: Create a Discord Application
1. Go to [Discord Developer Portal](https://discord.com/developers/applications)
2. Click **New Application** — name it whatever you like
3. Go to **Bot** → **Add Bot**
4. Copy the **Token** (click Reset if needed)
### Step 2: Enable Privileged Gateway Intents
Under the Bot settings, enable:
- ✅ **MESSAGE CONTENT INTENT** — this is **required** or your bot cannot read messages
- ✅ SERVER MEMBERS INTENT (optional)
- ✅ PRESENCE INTENT (optional)
### Step 3: Configure OpenClaw
```bash
openclaw config set channels.discord.enabled true
openclaw config set channels.discord.token "YOUR_DISCORD_BOT_TOKEN"
openclaw config set channels.discord.name "AI Assistant"
```
### Step 4: Invite Bot to Your Server
Build the OAuth2 URL:
1. Go to **OAuth2** → **URL Generator**
2. Scopes: ✅ `bot` ✅ `applications.commands`
3. Bot Permissions: ✅ `Send Messages` ✅ `Read Message History` ✅ `Use Slash Commands`
4. Copy the generated URL and open it in a browser
5. Select your server and authorize
### Step 5: Restart & Test
```bash
openclaw gateway restart
```
In your Discord server, type `@YourBot hello` and it should reply.
### Troubleshooting
| Problem | Fix |
|:--------|:----|
| Bot sees messages but doesn't reply | Did you enable MESSAGE CONTENT INTENT? |
| "Bot requires code grant" | Disable "Requires OAuth2 Code Grant" in Bot settings |
| No response in DMs | Ensure `channels.discord.allow_dm: true` in config |
---
## 3. WhatsApp Setup
WhatsApp integration uses the **WhatsApp Cloud API** (Meta's official API). This is the only approach that works reliably — DO NOT use unofficial libraries (they get banned within days).
### Step 1: Create a Meta Business Account
1. Go to [Meta Developer Portal](https://developers.facebook.com/)
2. Click **Create App** → **Business** → **Next**
3. Add **WhatsApp** product to your app
4. Navigate to **WhatsApp** → **API Setup**
### Step 2: Get Your Credentials
You'll need:
- **Phone Number ID** — found in API Setup
- **Access Token** — generated in API Setup (valid for 24h, or create a permanent token)
- **Verify Token** — any string you choose (used for webhook verification)
### Step 3: Configure OpenClaw
```bash
openclaw config set channels.whatsapp.enabled true
openclaw config set channels.whatsapp.phone_number_id "YOUR_PHONE_NUMBER_ID"
openclaw config set channels.whatsapp.access_token "YOUR_ACCESS_TOKEN"
openclaw config set channels.whatsapp.verify_token "my_verify_token_123"
```
### Step 4: Set Up the Webhook
1. In Meta Dashboard → WhatsApp → **Configuration**
2. **Callback URL**: `https://your-openclaw-domain.com/webhook/whatsapp`
3. **Verify Token**: the same string you set above
4. Click **Verify and save**
### Step 5: Subscribe to Webhook Events
Under **Webhook Fields**, subscribe to:
- ✅ `messages` — required to receive messages
- ✅ `message_deliveries` — optional delivery receipts
### Step 6: Restart
```bash
openclaw gateway restart
```
Send a message to your WhatsApp business number. You should get a reply.
### Important: WhatsApp Requirements
| Requirement | Note |
|:------------|:-----|
| Business Verification | You must verify your business with Meta |
| Phone Number | Cannot be registered with WhatsApp Messenger |
| Message Template | First message to a user must use an approved template |
| 24h Session Window | Free-form replies only within 24h of user's last message |
---
## 4. Slack Setup
### Step 1: Create a Slack App
1. Go to [Slack API](https://api.slack.com/apps)
2. Click **Create New App** → **From Manifest**
3. Choose your workspace
### Step 2: Define the App Manifest
Use this YAML manifest:
```yaml
display_information:
name: OpenClaw Assistant
features:
bot_user:
display_name: OpenClaw
always_online: true
slash_commands:
- command: /ask
description: Ask OpenClaw a question
usage_hint: "[your question]"
oauth_config:
scopes:
bot:
- chat:write
- channels:history
- groups:history
- im:history
- mpim:history
- app_mentions:read
settings:
event_subscriptions:
request_url: https://your-openclaw-domain.com/webhook/slack
bot_events:
- message.channels
- message.groups
- message.im
- app_mention
interactivity:
is_enabled: true
```
### Step 3: Install the App
1. Go to **OAuth & Permissions**
2. Click **Install to Workspace**
3. Copy the **Bot User OAuth Token** (starts with `xoxb-`)
### Step 4: Configure OpenClaw
```bash
openclaw config set channels.slack.enabled true
openclaw config set channels.slack.token "xoxb-YOUR_SLACK_BOT_TOKEN"
openclaw config set channels.slack.signing_secret "YOUR_SIGNING_SECRET"
openclaw config set channels.slack.name "OpenClaw"
```
The signing secret is found under **Basic Information** → **App Credentials**.
### Step 5: Restart & Test
```bash
openclaw gateway restart
```
In Slack, message your bot directly or @ it in a channel. Type `/ask what's the weather today?` to test slash commands.
---
## 5. Running All Channels Simultaneously
### The Gateway Config
OpenClaw handles multi-channel natively. Once all channels are configured, your `~/.openclaw/config.yaml` should include:
```yaml
gateway:
port: 8080
host: 0.0.0.0
channels:
telegram:
enabled: true
token: "your_telegram_token"
discord:
enabled: true
token: "your_discord_token"
whatsapp:
enabled: true
phone_number_id: "your_phone_number_id"
access_token: "your_access_token"
slack:
enabled: true
token: "xoxb-your_slack_token"
signing_secret: "your_signing_secret"
```
### Verify Everything is Running
```bash
openclaw gateway status --deep
```
You should see all four channels as `connected`.
### Per-Channel Agent Configuration (Advanced)
Want different AI behavior per channel? Use the `agent` field:
```yaml
channels:
telegram:
enabled: true
agent: "fast-reply" # Quick, concise responses
discord:
enabled: true
agent: "code-assist" # Code-focused with longer context
whatsapp:
enabled: true
agent: "default" # Balanced
```
Define agents in the `agents` section of your config.
---
## Cost & Performance Notes
### Token Usage by Platform
| Platform | Avg. Message Length | Daily Token Estimate |
|:---------|:-------------------:|:--------------------:|
| Telegram | ~50 words | ~5K-15K tokens |
| Discord | ~80 words | ~10K-20K tokens |
| WhatsApp | ~40 words | ~3K-10K tokens |
| Slack | ~100 words | ~15K-30K tokens |
### Token-Saving Tips
1. **Pre-process URLs** to save tokens by extracting only relevant content
2. Set `context_window: 4000` to limit history per conversation
3. Enable `session_timeout: 3600` to auto-clear idle conversations
4. Use a cheaper model (e.g., Claude Haiku or GPT-4o-mini) for high-volume channels
Pair with local caching to cut token costs on document-heavyent-heavy workflows.
---
## Quick Reference: Channel Comparison
| Feature | Telegram | Discord | WhatsApp | Slack |
|:--------|:--------:|:-------:|:--------:|:-----:|
| Setup Time | 5 min | 10 min | 20 min | 10 min |
| Bot Creation | BotFather | Dev Portal | Meta Portal | API Dashboard |
| Cost | Free | Free | Free* | Free |
| Rate Limit | 30/s | 50/s | 80/s | 1/s per workspace |
| DMs Supported | ✅ | ✅ | ✅ | ✅ |
| Group Chats | ✅ | ✅ | ❌ | ✅ |
| File Support | ✅ | ✅ | ✅ | ✅ |
*\*WhatsApp requires business verification but no monthly fee*
---
## Summary
Running OpenClaw across all four platforms takes about 45 minutes of setup time. The key takeaways:
1. **Telegram is the easiest** — 5 minutes, BotFather handles everything
2. **Discord needs MESSAGE CONTENT INTENT** — the single biggest gotcha
3. **WhatsApp needs business verification** — plan for 1-2 days of approval time
4. **Slack needs a public webhook URL** — requires your gateway to be publicly accessible
Once configured, you have a single AI assistant accessible from any chat app you use. That's the entire point of OpenClaw.
---
*Published: 2026-07-12 | [Edit on GitHub](https://github.com/openclaw/openclaw)*
*Related: [OpenClaw Installation Guide](/post/openclaw-anzhuang-jiaocheng-windows-wechat-52e3b9) · [Cut 80% Token Cost with save2kb](/post/save2kb-intro)*
💬 Comments (0)