Support 24/7
Shared hostingManaged WordPressReseller hostingOpenClaw hostingVPS hostingDedicated serversManaged serversAbout usHow we compareRegionsKnowledge baseSupportDomainsSSLBlogClient area
OpenClaw hosting
Knowledge base / OpenClaw hosting

Connect Telegram, WhatsApp or Slack

A bot token, an allowlist and one test message. The pairing defaults are strict on purpose — here is what each one does.

Last updated: September 16, 2026

An agent with no channel is a server that talks to nobody. Connecting one takes a token from the messaging platform and two lines of configuration — the care goes into who is allowed to talk to it.

  1. 1Create the app on the platformA bot with BotFather on Telegram, an app token on Slack, a linked session on WhatsApp.
  2. 2Give OpenClaw the tokenIn the control UI, never in a chat message to the agent.
  3. 3Set who may use itA policy for which accounts the agent will answer.
  4. 4Send two test messagesOne from an account that should work, one from an account that should not.
  5. 5Check the logIt tells you which of the two halves is wrong when one of them is.
Every channel has the same shape, whatever the platform: a token from them, a policy from you, then a test that proves both halves.

Telegram

  1. Create the bot with BotFather and copy the token it gives you.
  2. Give the token to OpenClaw. Either botToken with the value, or tokenFile with a path to a file holding it. tokenFile is the better habit: the secret stays out of the main config and out of your backups of it. The file has to be a regular file — symlinks are rejected.
  3. Decide who may talk to it. dmPolicy defaults to pairing, which means an unknown sender’s first message needs your approval rather than getting a reply. Keep it. Use allowFrom when you want a fixed list of accounts and no approvals at all.
  4. Groups are separate. groupPolicy and groupAllowFrom decide which groups the bot will work in. A bot that answers in any group it is added to is a bot somebody else will add to their group.

WhatsApp

WhatsApp pairs the way WhatsApp Web does:

openclaw channels login    # shows a QR code; scan it from the phone that will host the agent

Use a dedicated number for the assistant and message it from your personal one. Then restrict who it will answer:

"channels.whatsapp.allowFrom": ["+15555550123"]

Without an allowlist, anyone who has the number is talking to your agent.

Slack and the rest

The same shape: an app token from the platform, then a policy for who may use it. Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal and Zalo all connect through channel plugins with the same allowlist and pairing options.

Test it, then check the log

Send one message from an account that should work, and one from an account that should not. The second should get nothing — or land in your approval queue if you left dmPolicy on pairing.

openclaw doctor --fix

On inSave containers the channel configuration lives in the panel alongside the rest of the container’s settings, and the file that holds a bot token is included in the daily backups — so a restore brings the agent back talking, not just running.

The mistake to avoid

Do not put the bot token in a chat message to the agent so it can “remember” it. Tokens belong in the configuration or the token file. Anything typed into a conversation ends up in the agent’s memory, which is backed up, searchable and occasionally quoted back to you.