Switch Language
Toggle Theme

OpenClaw Multi-Platform Configuration: Managing AI Assistants Across 13 Channels

3 AM. I’m staring at my phone screen, frustrated.

I just asked my AI assistant on WhatsApp to organize tomorrow’s meeting agenda. Then at the office, I open Slack—the AI has no memory of our morning conversation. I have to explain everything again from scratch. Same story in the evening when the team meets on Discord—the AI acts like it has amnesia.

“Why can’t I have ONE AI assistant that remembers me across all platforms?”

That thought led me down the OpenClaw rabbit hole. Honestly, when I saw their website claiming support for 13 platforms, my first reaction was “the configuration must be a nightmare.” Turns out, the Channel layer architecture is actually quite clever—you deploy once and can connect via Telegram, WhatsApp, Discord, Slack, or any other platform, with all conversations seamlessly synced.

In the next 15 minutes, I’ll walk you through the complete process of configuring three platforms, plus the pitfalls I encountered and security configuration tips. If you’re like me, juggling different platforms for work and life, this article will save you a ton of headaches.

How Does OpenClaw’s Channel Layer Architecture Work?

When I first started exploring OpenClaw, I was curious about one thing: Telegram stickers, Discord embeds, WhatsApp voice messages—they’re all completely different formats. How does OpenClaw make them “speak the same language”?

The answer lies in the Channel Adapters layer.

The Magic of Message Normalization

Imagine this: you send a sticker on Telegram, an embed with an image on Discord, and a voice message on WhatsApp. These have completely different data structures on their respective platforms, but Channel Adapters convert them into a unified format that OpenClaw understands.

Specifically:

  • Telegram stickers → standardized image attachments
  • Discord embeds → parsed into text + media combinations
  • WhatsApp reactions → converted to emoji text
  • Voice messages → audio files extracted and transcribed (if configured)

This process is completely transparent to you. You just send messages on any platform, and OpenClaw automatically handles the format conversion.

Gateway Server: The Traffic Hub

After message normalization, everything enters the Gateway Server. This is OpenClaw’s core brain, responsible for three things:

  1. Session Router: Determines which session this message belongs to. Is it your personal DM? A team group? Or the same conversation across platforms?
  2. Lane Queue: Controls concurrency. If you send messages on three platforms simultaneously, Lane Queue ensures they don’t conflict and are processed in order.
  3. Message Forwarding: Sends AI replies back to the correct platform and correct person.

Honestly, when I first saw the Session Router configuration options, I was a bit confused. What’s “per-channel-peer” or “per-account-channel-peer”? I’ll explain these strategies in detail later. For now, just remember this: Gateway lets you start a conversation on WhatsApp and continue it seamlessly on Telegram.

13
Supported Platforms

13 Platforms—Which Ones Do You Want?

OpenClaw currently supports:

  • Instant Messaging: WhatsApp, Telegram, Signal, iMessage (via BlueBubbles)
  • Team Collaboration: Slack, Microsoft Teams, Google Chat, Discord
  • Others: Matrix, Zalo, Twitch, WebChat

My combo is Telegram (personal) + WhatsApp (family & friends) + Discord (tech communities). You can choose based on your own scenarios.

Hands-On Configuration for Three Platforms (Follow Along, Done in 15 Minutes)

Alright, enough theory. Let’s get our hands dirty.

Installation and Initialization

Open your terminal and run these two commands:

npm install -g openclaw@latest
openclaw onboard --install-daemon

onboard will ask you a few questions:

  1. Choose AI provider: Claude, GPT, Gemini, or local model? (I chose Claude—I’m used to it)
  2. API key: Paste it in, make sure there are no spaces or quotes
  3. Gateway port: Default 18789, don’t change it

After a few minutes, you’ll see:

✓ Gateway WebSocket server started on ws://127.0.0.1:18789
✓ Control UI available at http://localhost:18789

Congrats, OpenClaw is now running on your machine.

Security tip: Control UI is only accessible from localhost by default. If you’re on a remote server, use SSH tunneling:

ssh -N -L 18789:127.0.0.1:18789 your-server

Telegram Configuration: The Easiest Entry Point

Let’s start with Telegram because it’s the quickest to configure.

  1. Create a Bot:

    • Open Telegram and search for @BotFather
    • Send /newbot
    • Give your bot a name (like “My OpenClaw Assistant”)
    • Get the Token (looks like 1234567890:ABCdefGHIjklMNOpqrsTUVwxyz)
  2. Configure OpenClaw:

    openclaw config set telegram.token "YOUR_BOT_TOKEN"

    Replace YOUR_BOT_TOKEN with the actual token you just got.

  3. Verify:

    • Search for your bot name on Telegram
    • Send /start
    • If the bot replies, you’re good to go

My first time configuring, the bot didn’t respond. Turned out I’d copied the token with a newline character. So, always check for extra characters before or after the token.

WhatsApp Configuration: QR Code Pairing

WhatsApp is slightly more complex because it uses a phone pairing mechanism.

  1. Start Pairing:

    openclaw config set whatsapp.enabled true
    openclaw gateway restart
  2. Scan the QR Code:

    • The terminal will display a QR code
    • Open WhatsApp → Settings → Linked Devices → Link a Device
    • Scan the QR code from the terminal
  3. Wait for Connection:
    You’ll see “WhatsApp connected” when successful.

Important notes:

  • Your phone and computer must be online for OpenClaw to send/receive messages (WhatsApp’s limitation)
  • If the QR code expires, re-run openclaw gateway restart
  • OpenClaw uses the Baileys library, following WhatsApp Web protocol. No official ban yet, but policies may change—evaluate the risk yourself

I was initially worried WhatsApp might ban my account, but as long as you don’t mass-spam, normal usage is fine. After all, it works the same way as WhatsApp Web.

Discord Configuration: Permissions Are Key

Discord requires creating an application in the Developer Portal—a few more steps.

  1. Create Application:

  2. Set Permissions:
    This step is crucial—insufficient permissions mean the bot won’t receive messages.

    • Go to “OAuth2 → URL Generator”
    • Scopes: check bot
    • Bot Permissions: check these:
      • Read Messages/View Channels
      • Send Messages
      • Read Message History
      • Attach Files
    • Copy the generated URL, open it in a browser, and invite the bot to your server
  3. Configure OpenClaw:

    openclaw config set discord.token "YOUR_DISCORD_BOT_TOKEN"
    openclaw config set discord.guildId "YOUR_SERVER_ID"

    How to get Guild ID?

    • Enable Developer Mode in Discord (Settings → Advanced → Developer Mode)
    • Right-click your server icon → Copy ID
  4. Test:

    • @mention your bot in any Discord channel
    • Send a message and see if the bot replies

My first Discord configuration, the bot wouldn’t reply. After extensive checking, I found the issue—I hadn’t checked Read Message History in permissions. So don’t skip that permissions step.

The Secret of Session Management—Making AI Remember You Across All Platforms

After configuring three platforms, you might notice an issue: after chatting with AI on Telegram, when you switch to Discord, how does the AI know you’re the same person?

That’s the role of Session Router.

Main Session vs Isolated Sessions

OpenClaw’s default strategy is: all DMs (direct messages) enter the same “main” session.

What does this mean? You DM the AI on Telegram, DM it on WhatsApp, DM it on Discord—they all share the same conversation history. The AI remembers what you said on any platform.

But if you’re deploying OpenClaw for a team with multiple colleagues, this won’t work—everyone’s messages would mix together. That’s when you need isolation strategies:

openclaw config set session.dmScope "per-channel-peer"

This configuration means: each user on each platform gets an independent session.

There’s even finer isolation:

openclaw config set session.dmScope "per-account-channel-peer"

This is for when you manage multiple OpenClaw accounts.

Honestly, for personal use I keep the default “main” session because I want the AI to remember me across all platforms.

Cross-Platform Identity Linking

Sometimes you want OpenClaw to know that “Telegram’s @username and WhatsApp’s +86xxx are the same person.”

Configure session.identityLinks:

session:
  identityLinks:
    - platforms:
        telegram: "@your_username"
        whatsapp: "+8613800138000"
        discord: "123456789012345678"  # Discord User ID

This way, no matter which platform you message from, OpenClaw knows it’s you and continues the same session.

Common Session Commands

Want to start fresh after an enthusiastic AI chat? Or check which model you’re currently using? These commands are useful:

  • /status - View current model, token consumption, session duration
  • /new - Reset session, clear history
  • /activation mention - Set groups to only respond when @mentioned
  • /activation always - Respond to every message in groups (use cautiously, can be noisy)

There are also tool commands available in the Control UI’s Sessions page:

  • sessions_list - List all active sessions
  • sessions_history - Export conversation history
  • sessions_send - Manually send a message to a session

Honestly, I use /new the most. Sometimes when the AI misunderstands, resetting is faster than correcting it.

Security Configuration—Don’t Let Strangers Drain Your API

After configuring everything and using it happily for a few days, I suddenly noticed my API bill skyrocket. Checking the logs, some stranger was spamming my bot.

This incident made me seriously study OpenClaw’s security strategies.

DM Pairing Strategy: Default Protection Mechanism

OpenClaw’s default dmPolicy is pairing (pairing mode).

What does this mean? When a stranger first DMs your bot, the bot won’t respond. Instead, it generates a 6-digit pairing code recorded in the logs. You need to manually approve:

openclaw pairing approve telegram ABC123

The pairing code expires in 1 hour to prevent brute force attacks. After approval, that user can use it normally.

I initially thought this mechanism was a bit annoying, but later understood—without this protection, anyone with your bot username could endlessly call your API and burn your money.

Which of the Four DM Strategies to Choose?

OpenClaw offers four strategies:

StrategyUse CaseRisk Level
pairing (default)Personal use, occasionally shared with friends🟢 Low risk
allowlistOnly allow specific whitelisted users🟢 Low risk
openPublic bot, anyone can use🔴 High risk
disabledCompletely disable DM, groups only🟢 Low risk

If you want to make a public bot for the community, open mode works, but strongly recommend pairing with token usage monitoring to avoid being drained.

Configuration method:

openclaw config set dmPolicy "allowlist"
openclaw config set dmAllowlist "telegram:@friend1,whatsapp:+8613800138000"

Group Sandbox Isolation: Preventing Malicious Commands

OpenClaw’s AI agent can execute tools (like bash commands, file operations). What if someone in a group makes the AI execute rm -rf /?

The group sandbox strategy prevents this.

openclaw config set agents.defaults.sandbox.mode "non-main"

This configuration means: AI in non-main sessions (like groups) runs in a Docker sandbox and cannot access the host file system.

You can also customize allowed/denied tools:

agents:
  defaults:
    sandbox:
      mode: "non-main"
      allowedTools:
        - web_search
        - calculator
      deniedTools:
        - bash
        - file_write

My configuration: groups only allow search and calculator, ban bash and file operations. This ensures functionality while controlling risk.

Mention Gating: Avoiding “Always Online” Awkwardness

After pulling AI into a Discord server, if it responds to every message, it gets noisy.

The activation: mention strategy makes AI only respond when @mentioned:

openclaw config set agents.defaults.activation "mention"

This way, the AI acts like a quiet lurker—just @mention it when needed.

Security Checklist:

openclaw doctor

This command scans your configuration and flags potential risks:

  • dmPolicy: open without rate limiting
  • sandbox.mode: disabled in group sessions
  • ✓ API key properly configured
  • ✓ DM pairing enabled

Running doctor once can prevent many security issues.

Pitfalls I Encountered and Troubleshooting

You’ll definitely run into problems during configuration. Here are some pitfalls I hit.

Pitfall 1: API Key Issues

Symptoms: Bot starts successfully, but sending messages gets no response. Logs show Invalid API key.

Causes:

  1. API key copied with spaces or quotes
  2. Environment variables didn’t take effect (try restarting terminal)
  3. API account doesn’t have payment method linked (Claude and GPT both require this)

Solution:

# Reset, ensure no extra characters
openclaw config set anthropic.apiKey "sk-ant-..."

# Check if configuration took effect
openclaw config get anthropic.apiKey

# Restart Gateway
openclaw gateway restart

Pitfall 2: Port Conflicts

Symptoms: openclaw gateway start errors with Port 18789 already in use.

Cause: Previous Gateway process didn’t shut down.

Solution:

# Graceful stop
openclaw gateway stop

# If that doesn't work, force kill process
pkill -f openclaw-gateway

# Restart
openclaw gateway start

Pitfall 3: Control UI Access Issues

Symptoms: Browser opening http://localhost:18789 shows control ui requires HTTPS or localhost.

Cause: You’re probably on a remote server using the server IP instead of localhost.

Solution 1: Use token parameter

http://your-server-ip:18789?token=YOUR_TOKEN

Token is in the ~/.openclaw/gateway.env file.

Solution 2: SSH tunnel

ssh -N -L 18789:127.0.0.1:18789 user@your-server

Then access http://localhost:18789 locally.

Pitfall 4: Channel Connection Failures

Telegram:

  • Check token validity: confirm the bot still exists with BotFather
  • Network issues: some regions need a proxy to connect to Telegram API

WhatsApp:

  • QR code expired: re-run openclaw gateway restart
  • Phone offline: WhatsApp requires phone online to sync messages
  • Multi-device limit: WhatsApp supports max 4 linked devices

Discord:

  • Insufficient bot permissions: check Read Message History permission
  • Wrong Guild ID: confirm you copied the correct server ID
  • Bot not in server: re-invite bot using OAuth2 URL

Pitfall 5: Session Loss Issues

Symptoms: After Gateway restart, all previous conversation history is gone.

Cause: OpenClaw currently (early 2026) doesn’t have session persistence. Restarting Gateway clears in-memory sessions.

Mitigation:

  • Export important conversations using sessions_history
  • Wait for official future versions to support session persistence (it’s on the Roadmap)

Honestly this is my most desired improvement. Every time I update OpenClaw, I have to reintroduce myself to the AI. A bit annoying.

Conclusion

After two weeks of tinkering with OpenClaw, my biggest takeaway: it really can transform AI into a cross-platform “unified assistant”.

Morning on WhatsApp asking AI to organize my schedule, continuing the discussion on Slack at the office, collaborating with the team on Discord at night—all conversations seamlessly connected. This experience is something single-platform bots can’t achieve.

The Channel layer architecture design is clever—message normalization across 13 platforms, Session Router’s session management, plus fine-grained security controls. The whole system is both flexible and secure.

Of course, OpenClaw is still rapidly iterating. Session persistence, Skills marketplace, more platform support—they’re all on the official Roadmap. I’m pretty excited about future versions.

If you want to try it too:

curl -fsSL https://openclaw.ai/install.sh | bash

15 minutes of configuration, instant cross-platform AI assistant experience.

By the way, if you run into issues during configuration, ask on GitHub Discussions—the community responds quickly. When I couldn’t connect Telegram, I posted and got help within 10 minutes.

Do you use OpenClaw? Which platforms have you configured? What pitfalls did you encounter? Leave a comment and let’s chat.

FAQ

Why is pairing mode recommended over open mode?
Pairing mode is OpenClaw's default DM strategy. When a stranger first messages, the bot doesn't respond but generates a 6-digit pairing code logged for you to manually approve with openclaw pairing approve telegram ABC123. The code expires in 1 hour to prevent brute force attacks.

While open mode is convenient, anyone with your bot username can endlessly call your API, potentially causing bill spikes. If you truly need a public bot, pair it with token usage monitoring and rate limiting.
What if my Discord bot doesn't reply to messages?
The most common cause is insufficient permissions. Check these points:

1. Bot Permissions must include Read Message History (many people miss this)
2. Confirm the bot was properly invited to the server via OAuth2 URL
3. Verify the Guild ID is correct (enable Developer Mode, right-click server icon to copy ID)
4. Check if the token is valid (confirm in Developer Portal)

My first configuration failed because I didn't check Read Message History, which prevented the bot from receiving messages.
Does my phone need to stay online after WhatsApp pairing?
Yes, this is a limitation of the WhatsApp Web protocol. OpenClaw uses the Baileys library to connect via WhatsApp Web protocol—messages can't be sent/received when the phone is offline.

Two additional limitations:
1. WhatsApp supports max 4 linked devices; exceeding this requires disconnecting others
2. QR codes are valid for about 2 minutes; if expired, re-run openclaw gateway restart to generate a new one

If you need a 24/7 online bot, prioritize Telegram or Discord—they don't depend on phone connectivity.
How does cross-platform session syncing work? How does AI know Telegram and Discord are the same person?
OpenClaw's default Session Router strategy is all DMs enter the same "main" session, automatically enabling cross-platform sync.

If you need explicit identity linking, configure session.identityLinks:

yaml
session:
identityLinks:
- platforms:
telegram: "@your_username"
whatsapp: "+8613800138000"
discord: "123456789012345678"


This way, regardless of which platform you message from, OpenClaw knows it's you and continues the same session. Conversations started on WhatsApp can seamlessly continue on Telegram.
Will conversation history be lost after Gateway restart?
Yes, OpenClaw currently (early 2026) lacks session persistence. Restarting Gateway clears all in-memory session history.

Mitigation strategies:
1. Export important conversations using the sessions_history command
2. Wait for official future versions to support session persistence (already on the Roadmap)
3. Use process management tools (like PM2) to ensure stable Gateway operation and minimize restarts

This is my most desired feature improvement. Having to reintroduce myself to the AI after every OpenClaw update gets tedious.
What limitations does group sandbox mode impose?
After configuring agents.defaults.sandbox.mode: "non-main", AI in non-main sessions (like groups) runs in a Docker sandbox with default restrictions:

1. Cannot access host file system
2. Cannot execute system-level bash commands
3. Network access is limited

You can customize allowed tools (like web_search, calculator) and denied tools (like bash, file_write). My configuration allows only search and calculation in groups, banning file operations—ensuring functionality while controlling risk.

Personal DM sessions remain unaffected and can still use all tools.
How to fix Control UI showing 'requires HTTPS or localhost'?
This error typically appears with remote server deployments when directly accessing Control UI via server IP.

Solution 1: Use token parameter
http://your-server-ip:18789?token=YOUR_TOKEN
Token is in the ~/.openclaw/gateway.env file.

Solution 2: SSH tunnel (recommended)
ssh -N -L 18789:127.0.0.1:18789 user@your-server
Then access http://localhost:18789 locally

SSH tunneling is more secure, avoiding Control UI exposure to the public internet.

12 min read · Published on: Feb 5, 2026 · Modified on: Feb 5, 2026

Comments

Sign in with GitHub to leave a comment

Related Posts