Skip to content
Your bot

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

  1. Create a bot with BotFather

    Open @BotFather, send /newbot, follow the prompts. You'll get an HTTP token that looks like 123456789:AAH....
  2. Paste it into Nacre

    Dashboard → Channels → Telegram → Token. Save. OpenClaw immediately opens a long-poll connection.
  3. 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

  1. Create an application

    Go to the Discord developer portal. New Application → Bot → Reset Token and copy it.
  2. 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.
  3. 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

  1. 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).
  2. Install to your workspace

    OAuth & Permissions → Install to Workspace. Copy the Bot User OAuth Token (xoxb-...) and the Signing Secret.
  3. 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)

  1. 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.
  2. 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.
  3. 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: /revoke in 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 openclaw from the terminal).