Messaging channels
One OpenClaw, many inboxes. Telegram, Discord, Slack, and WhatsApp — wire up credentials and your bot lives there.
How channels work
Each messaging channel is a set of credentials (bot token, app ID, signing secret) that OpenClaw uses to connect to the platform's API or webhook. You configure channels once from the dashboard or directly in /etc/openclaw/env. A single bot instance can be live on every channel at the same time — memory and skills are shared across them.
Telegram
Create a bot with BotFather
Open @BotFather, send/newbot, follow the prompts. You'll get an HTTP token that looks like123456789:AAH....Paste it into Nacre
Dashboard → Channels → Telegram → Token. Save. OpenClaw immediately opens a long-poll connection.Send a message
Message your bot's handle. You should see a reply within a few seconds (depending on your LLM's latency).
Webhook vs. long-poll
By default OpenClaw uses Telegram's long-poll mode, which works without any inbound networking. Switch to webhook mode from the dashboard if you want lower latency — Nacre already fronts your VM with HTTPS so your webhook URL is ready.
Discord
Create an application
Go to the Discord developer portal. New Application → Bot → Reset Token and copy it.Invite the bot to your server
OAuth2 → URL generator → scopes:bot,applications.commands. Permissions: Send Messages, Read Message History, Use Slash Commands. Open the URL in a browser and pick a server.Paste the token into Nacre
Dashboard → Channels → Discord → Bot token. Save. OpenClaw connects via the Discord gateway; you'll see a presence change in the server.
Slack
Create a Slack app
At api.slack.com/apps → Create New App → From manifest. Paste the Nacre-provided YAML manifest (copyable from the dashboard Slack section).Install to your workspace
OAuth & Permissions → Install to Workspace. Copy the Bot User OAuth Token (xoxb-...) and the Signing Secret.Paste both into Nacre
Dashboard → Channels → Slack. OpenClaw enables events and subscribes to message events in the channels where the bot is added.
WhatsApp (Business Cloud API)
Set up a Meta app
Create a Meta for Developers app, add the WhatsApp product, and pick the Cloud API — not the legacy on-premises API.Collect three values
Phone number ID, access token, and verify token (you pick this one). All three are in the WhatsApp product page in the Meta app dashboard.Configure the webhook
Nacre gives you a webhook URL and a verify token to paste back into Meta. Once Meta's handshake succeeds, WhatsApp subscribes the bot to messages on that number.
Meta approval
Production WhatsApp access requires Meta business verification — that takes days to weeks and is out of our control. Test numbers work immediately for dev and small rollouts.
Running multiple channels at once
Add any combination. OpenClaw dispatches each incoming message to the same assistant, so the same memory, skills, and system prompt apply everywhere. Per-channel overrides (different personas per Slack workspace, for example) live in the OpenClaw config — see the upstream docs.
Credentials hygiene
- Treat channel tokens like any other secret — don't commit them to a repo.
- If a token leaks, revoke it at the platform (Telegram:
/revokein BotFather; Discord: Reset Token; Slack: Revoke installation; WhatsApp: rotate access token). - Then re-paste the new token in Nacre and restart the OpenClaw container (dashboard "Restart" action or
docker compose restart openclawfrom the terminal).