OpenClaw's value comes from being available where your team actually communicates.
That means connecting it to Telegram, Slack, or Discord. The process for each is different, and each has its own common failure points. This guide covers all three with the exact steps — not just "configure the webhook" but the specific fields, where to find them, and what to do when something goes wrong.
Before You Start
You'll need:
- A running OpenClaw instance (self-hosted or managed)
- Admin access to the channel you're connecting
- About 15–30 minutes depending on the platform
Connecting Telegram
Telegram is the most common OpenClaw integration and the most straightforward.
Step 1: Create a Telegram Bot
- Open Telegram and search for
@BotFather - Send
/newbot - Choose a display name (e.g., "My Company Assistant")
- Choose a username — must end in
bot(e.g.,mycompanyassistant_bot) - BotFather sends you a token. Copy this immediately — you'll need it.
Your token looks like: 7234567890:AAHdqTcvCH1vGBJ5T6TqgNx_NZOR3Kn7a_s
Step 2: Configure OpenClaw
In your OpenClaw config, add:
TELEGRAM_BOT_TOKEN=7234567890:AAHdqTcvCH1vGBJ5T6TqgNx_NZOR3Kn7a_s TELEGRAM_MODE=webhook # or 'polling' for local testing
For webhook mode (recommended for production):
TELEGRAM_WEBHOOK_URL=https://yourdomain.com/webhook/telegram
Step 3: Register the Webhook
curl -X POST "https://api.telegram.org/bot{YOUR_TOKEN}/setWebhook" \
-d "url=https://yourdomain.com/webhook/telegram"
Step 4: Test
Send a message to your bot on Telegram. It should respond within a few seconds.
Common failure: Webhook URL is HTTP, not HTTPS. Telegram requires HTTPS for webhooks. Solution: configure SSL on your domain or use polling mode during development.
Polling vs Webhook
Polling (bot constantly checks for new messages) works everywhere including localhost. Webhook (Telegram pushes messages to your URL) is more efficient but requires a public HTTPS URL. Use polling for testing, webhook for production.
Connecting Slack
Slack requires creating an "app" in Slack's developer portal. More steps than Telegram, but the result is a fully integrated workspace bot.
Step 1: Create a Slack App
- Go to api.slack.com/apps
- Click "Create New App" → "From scratch"
- Name your app and select your workspace
- Under "OAuth & Permissions", add these Bot Token Scopes:
app_mentions:read— respond to @mentionschat:write— send messageschannels:history— read message history (for context)im:history— read DMsim:read— access DM channelsim:write— send DMs
Step 2: Enable Event Subscriptions
- In your app settings, go to "Event Subscriptions"
- Toggle "Enable Events" on
- Set Request URL to:
https://yourdomain.com/webhook/slack - Subscribe to these bot events:
app_mention— respond when @mentionedmessage.im— respond to DMs
Step 3: Get Your Credentials
From "OAuth & Permissions":
- Bot User OAuth Token (starts with
xoxb-)
From "Basic Information":
- Signing Secret
Step 4: Configure OpenClaw
SLACK_BOT_TOKEN=xoxb-your-token-here SLACK_SIGNING_SECRET=your-signing-secret-here SLACK_WEBHOOK_PATH=/webhook/slack
Step 5: Install the App
In Slack's portal, click "Install to Workspace". Authorize the permissions. Your bot appears in the workspace.
Step 6: Test
In any Slack channel where the bot is added, type @YourBotName hello. It should respond.
Common failure 1: Request URL verification fails. OpenClaw needs to be running and publicly accessible when you save the URL. Slack sends a challenge request immediately.
Common failure 2: Bot doesn't respond in channels. Make sure you've added the bot to the channel with /invite @YourBotName.
Connecting Discord
Discord integration uses a Bot application, similar to Slack but with Discord's permission system.
Step 1: Create a Discord Application
- Go to discord.com/developers/applications
- Click "New Application" and name it
- Go to the "Bot" section and click "Add Bot"
- Under "Privileged Gateway Intents", enable:
- Message Content Intent — required to read message content
- Copy the Bot Token
Step 2: Set Bot Permissions
In the "OAuth2 → URL Generator" section:
- Scopes:
bot,applications.commands - Bot Permissions:
Send Messages,Read Message History,View Channels
Copy the generated URL and use it to invite the bot to your server.
Step 3: Configure OpenClaw
DISCORD_BOT_TOKEN=your-bot-token-here DISCORD_GUILD_ID=your-server-id # optional: limits to one server
Step 4: Test
Message the bot directly or @mention it in a channel where it has access.
Common failure: "Message Content Intent" not enabled. Discord requires explicit opt-in to read message content. If this intent is missing, the bot sees messages but gets empty content — and can't respond meaningfully.
Running Multiple Channels Simultaneously
OpenClaw supports multiple channel integrations on one instance. A single bot can be available on Telegram, Slack, and Discord at the same time, with the same configuration and personality.
This is useful for teams that use multiple platforms, or for businesses that want to support customers on their preferred channel.
Configuration:
# All three can be active simultaneously TELEGRAM_BOT_TOKEN=... SLACK_BOT_TOKEN=... DISCORD_BOT_TOKEN=...
Per-channel personalities
Some teams prefer different bot names and system prompts per channel — a formal tone for customer-facing Telegram, more casual for internal Slack. This requires separate OpenClaw instances.
When Things Don't Work
Messages received but no response: Check API key validity and spending limits on your AI provider.
Bot connects but crashes after a few messages: Memory or skill issue. Check logs immediately after a crash.
Works in testing but not production: Usually a webhook URL issue (HTTP vs HTTPS, wrong path, firewall blocking inbound traffic).
Responds slowly: Model latency + skill latency. Switch to a faster model (Haiku, Flash Lite) for latency-sensitive use cases.
The Setup Time Reality
Self-hosted integration setup times vary significantly:
- Telegram: 20–40 minutes
- Slack: 45–90 minutes (most complex due to permission scopes)
- Discord: 30–60 minutes
On Clawfleet, each integration is a form field. Select Telegram, paste your bot token, click save. About 2 minutes per channel.
Connect your channels in minutes
Telegram, Slack, Discord, and more — all configurable from the dashboard. No webhook setup required.
