← Channels Overview

💬 OpenClaw + WhatsApp

The most natural channel — message your AI from the app you already use all day. QR code pairing, selfChat mode, voice notes, and group support. Uses Baileys (no Meta Business API needed).

Medium · ~10 minQR code pairingMost popular channel

💚 Why WhatsApp?

AdvantageDetails
Already on your phoneNo new app to install. Message your agent the same way you text friends.
Voice notesHold the mic button, speak your request, get a text response — true hands-free AI.
Tap-to-mentionNative @mentions work for activating the agent in group chats.
No API feesUses Baileys (open-source WhatsApp Web protocol) — no Meta Business API, no per-message costs.
SelfChat modeMessage yourself to talk to OpenClaw privately — no separate bot contact needed.
End-to-end encryptedMessages between you and your own WhatsApp number stay encrypted.
💡 Real user: “My personal bot has replaced at least half the apps I used to operate myself. It lives in my personal WhatsApp and on groups with my friends and family.” — OpenClaw Showcase

🔄 How it works

OpenClaw connects to WhatsApp using Baileys, an open-source library that implements the WhatsApp Web protocol. This means:

  • You link OpenClaw as a companion device (like WhatsApp Web or Desktop)
  • Your existing WhatsApp number is used — no new phone number needed
  • Credentials are stored locally in ~/.openclaw/credentials/
  • The connection persists until you unlink or credentials expire
⚠️ Known limitation: WhatsApp sometimes disconnects after extended inactivity or server-side updates. If your agent stops responding, you may need to re-pair by scanning a new QR code. Telegram doesn't have this issue (token-based), which is why many users run both channels.

📱 Setup — QR code pairing

Option A: During onboarding

openclaw onboard
# Select "WhatsApp" when prompted for channel
# Enter your phone number with country code
# A QR code appears in the terminal
# Scan it with WhatsApp: Settings → Linked Devices → Link a Device

Option B: Add WhatsApp to existing setup

openclaw channels login whatsapp
# Follow the QR code flow

Option C: Manual config (after QR pairing)

// ~/.openclaw/openclaw.json
{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "allowlist",
      "allowFrom": ["+40712345678"]
    }
  }
}
✅ Phone numbers must include country code with the + prefix. Example: +40 for Romania, +1 for US, +44 for UK.

⚙️ Configuration

DM policies

PolicyBehaviorUse case
allowlistOnly numbers in allowFrom can messageRecommended — personal use
pairingUnknown senders get a pairing code to approveMore flexible, still secure
openAnyone can message your agent⚠️ Dangerous — burns API credits
disabledDMs blocked entirelyGroups-only setup

Full config example

{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "selfChatMode": true,
      "dmPolicy": "allowlist",
      "allowFrom": ["+40712345678"],
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["+40712345678"]
    }
  }
}

💬 SelfChat mode

The most popular WhatsApp setup: message yourself to talk to OpenClaw. No separate bot contact cluttering your chat list.

{
  "channels": {
    "whatsapp": {
      "selfChatMode": true,
      "dmPolicy": "allowlist",
      "allowFrom": ["+40712345678"]
    }
  }
}

Open WhatsApp → tap your own name at the top of the chat list (the “Message yourself” chat) → start talking. OpenClaw replies in the same conversation.

✅ Pro tip: Pin the self-chat to the top of your WhatsApp for instant access. Some users set their own profile picture to a lobster emoji for fun.

👥 Group chats

Add your own WhatsApp number to a group, then configure group access:

{
  "channels": {
    "whatsapp": {
      "groupPolicy": "allowlist",
      "groupAllowFrom": ["+40712345678"],
      "groups": {
        "*": {
          "requireMention": true
        }
      }
    }
  }
}

In groups, the agent only responds when @mentioned (tap-to-mention). This prevents it from jumping into every conversation.

💡 Family group: Many users add OpenClaw to a family WhatsApp group for shared shopping lists, meal planning, and scheduling. The agent responds when @mentioned and can maintain separate context per group.

✨ Supported features

FeatureStatusNotes
Text messages✅ FullRich formatting supported
Voice notes✅ FullSend voice → get text response. Transcription via Whisper.
Images / photos✅ FullSend and receive with captions
Documents / files✅ FullPDFs, spreadsheets, etc.
Location sharing✅ FullShare location for context-aware responses
Reactions✅ ReadAgent can read reactions on messages
Tap-to-mention✅ FullNative @mentions for group activation
Slash commands✅ Full/status, /model, /reset, etc.
Video✅ FullSend and receive video messages
Stickers⚠️ LimitedReceived but not always described accurately

⏰ Cron delivery to WhatsApp

openclaw cron add \
  --name "Morning briefing" \
  --cron "0 7 * * *" \
  --tz "Europe/Bucharest" \
  --session isolated \
  --message "Good morning! Send my daily briefing." \
  --announce --channel whatsapp \
  --to "+40712345678"

For heartbeat delivery, set the target to WhatsApp:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "target": "whatsapp"
      }
    }
  }
}

🔧 Troubleshooting

ProblemFix
QR code won't scanEnsure terminal supports QR rendering. Try a larger terminal window. Or use the Control UI at localhost:18789.
Disconnected after a whileWhatsApp Web sessions can expire. Re-pair: openclaw channels login whatsapp
Messages not arrivingCheck your phone's WhatsApp is online (phone must have internet). Check openclaw logs --follow.
“Not authorized” errorYour phone number isn't in allowFrom. Add it with the + country code prefix.
Agent replies to everyone in groupSet requireMention: true in group config. Agent only responds to @mentions.
Credentials lost after restartCredentials are stored in ~/.openclaw/credentials/. Ensure this directory is persisted (Docker: mount as volume).
Two OpenClaw instances conflictWhatsApp only allows one Web companion per device type. Stop the other instance.
✅ Best practice: Run both Telegram and WhatsApp. Telegram for reliability (token never expires), WhatsApp for convenience (already on your phone). If WhatsApp disconnects, Telegram keeps working.