OpenClaw WhatsApp in 2026: How the Channel Works, What You Now Run Yourself, and Adding Blueticks as a Tool
OpenClaw links to WhatsApp as a linked device and answers messages. Here is the setup, the access settings that matter, and how to give the agent Blueticks as an MCP tool for scheduling and bulk sends.
Daniel Roth8 min read

On this page
- How does OpenClaw connect to WhatsApp?
- Who can message your OpenClaw agent?
- What are you now responsible for keeping alive?
- How do you add Blueticks to OpenClaw as an MCP server?
- What can the agent do once Blueticks is connected?
- Who actually sends when the message is due?
- Should you use OpenClaw's channel, Blueticks, or both?
- FAQ
OpenClaw runs a gateway on your own machine that connects an AI agent to chat channels such as WhatsApp. WhatsApp is the one most people want first, because it is where the phone is. The setup takes a few commands. The part that trips people up comes after the QR code, when the agent is live and you realise a stranger can message it.
This guide covers how OpenClaw's WhatsApp channel connects, the settings that decide who it answers, and what you are now responsible for keeping alive. Then it shows how to add Blueticks to OpenClaw as an MCP server, so the same agent can schedule messages, send campaigns and read chat history. Every OpenClaw detail below comes from the OpenClaw WhatsApp docs and the MCP docs. OpenClaw changes fast, so check those pages if a command has moved.
How does OpenClaw connect to WhatsApp?
OpenClaw connects to WhatsApp Web through Baileys, an open-source WhatsApp Web library. Your gateway becomes a linked device on your account, the same way a laptop browser does. There is no Twilio channel and no Meta Cloud API in the path. Login is QR only.
The sequence from the docs:
- Install the plugin:
openclaw plugins install @openclaw/whatsapp. - Run
openclaw channels login --channel whatsapp. - On your phone, open WhatsApp, go to Linked Devices, and scan the QR code.
- Start the gateway with
openclaw gateway.
OpenClaw recommends a dedicated number for the agent. A personal number is supported too, including a self-chat setup where you message yourself to talk to the agent. If you run several numbers, add a named account with --account work.
One practical warning from the docs: on a remote or headless host, the QR can expire while it travels to your phone as a terminal paste, a screenshot or a chat attachment. If the scan fails the first time, that is a common cause. Run the login again and get the QR in front of the phone faster.
Who can message your OpenClaw agent?
By default, unknown senders get a pairing code and the agent does not answer until you approve them. That default is the setting to keep. The docs list four values for dmPolicy: pairing (default), allowlist, open (which requires "*" in allowFrom), and disabled.
A tight starting config, taken from the docs:
{
channels: {
whatsapp: {
dmPolicy: "pairing",
allowFrom: ["+15551234567"],
groupPolicy: "allowlist",
groupAllowFrom: ["+15551234567"],
},
},
}Approve a new sender with openclaw pairing list whatsapp, then openclaw pairing approve whatsapp <CODE>. Pairing requests expire after one hour and each account holds at most three pending, so a code you ignore does not pile up.
Three details worth knowing before you go live:
- Self-chat is on by default. By default, DMs from your own number to itself are admitted as agent input, and the docs say that holds even when your number is not in
allowFrom. The docs note that a liveness check sent to your own number can turn into agent input unless you setselfChatMode: false. - Groups need a mention. The agent replies in a group only when mentioned, through
requireMention. Replying to the agent's message counts as a mention, but it does not authorise the sender. - Read receipts are on.
sendReadReceiptsis enabled by default, so people see blue ticks when the agent reads their message. Read our explainer on what the blue ticks mean if you want to decide whether that is what you want.
What are you now responsible for keeping alive?
The gateway owns the WhatsApp session, so its uptime is your uptime. OpenClaw stores the login at ~/.openclaw/credentials/whatsapp/<accountId>/creds.json, with a creds.json.bak beside it. It runs its own reconnect loop and a watchdog, and sends fail fast if there is no active listener for the account.
When you need to re-link, the docs give this procedure: copy the credentials folder as a backup, run openclaw channels logout --channel whatsapp --account <accountId>, then log in again and rescan. For a first diagnosis, openclaw channels status --probe and openclaw doctor are the commands to run.
That is what self-hosting means: the agent, the session and the uptime all live on your hardware. If you are happy there, the channel is all you need for a personal assistant. It stops being enough when you want the agent to do things OpenClaw's WhatsApp channel is not built around, such as scheduled and recurring sends, bulk campaigns to an audience, or reading the history of chats it was never part of.
How do you add Blueticks to OpenClaw as an MCP server?
Add it as a remote MCP server in your OpenClaw config. Blueticks hosts a Streamable HTTP MCP endpoint at https://api.blueticks.co/mcp, and it accepts a Blueticks API key as a bearer token. The endpoint answers 401 without one.
You need a Blueticks account with your WhatsApp number linked, and an API key from dev.blueticks.co. Put the key in an environment variable, BLUETICKS_API_KEY, then add the server:
{
"mcp": {
"servers": {
"blueticks": {
"url": "https://api.blueticks.co/mcp",
"transport": "streamable-http",
"connectionTimeoutMs": 10000,
"requestTimeoutMs": 30000,
"headers": {
"Authorization": "Bearer ${BLUETICKS_API_KEY}"
}
}
}
}
}Set transport explicitly. The OpenClaw docs say that leaving it out defaults to sse, which is not what this endpoint speaks. The ${BLUETICKS_API_KEY} form also keeps the secret out of the file: OpenClaw's doctor warns when a sensitive-looking header holds a literal value, and an environment reference does not trigger that warning when the variable is set.
Then check it:
openclaw mcp doctor blueticks --probeThe --probe flag opens a live MCP session. Saving a definition proves nothing about whether the server is reachable, so do not skip it.
Treat the key as full access. A key created in the Blueticks developer portal is issued with every scope, so over MCP it can read chats and send messages. If it leaks, whoever holds it can do both. Keep it in the environment, never in a repository, and revoke it from the portal if you suspect it has been exposed. OpenClaw's docs say MCP tools pass through the same tool-profile and tool-policy controls as everything else, so use those to decide which Blueticks tools your agent may call without asking you.
What can the agent do once Blueticks is connected?
It gets a set of action-based tools. The core names on the Blueticks server are chats, contacts, scheduled_messages, campaigns, audiences, groups, agents, agent_schedules, webhooks, engine and utils, among others. Each one takes an action, so chats covers searching a chat and reading its messages, and scheduled_messages covers sending, listing, updating, cancelling and checking delivery.
Three behaviours matter for an agent:
- Immediate versus scheduled. A send action goes out now. To send later, the agent uses
scheduled_messageswith asend_attime. Recurring triggers are a separate tool,agent_schedules, which wakes the agent on a schedule instead of sending a stored message. - Resolve names, do not guess numbers. The agent searches for a person or group with
chatsorcontactsto get the chat id. You should not have to paste phone numbers. - Campaigns start immediately. Creating a campaign begins a bulk send to the whole audience. Tell your agent to show you the audience, the text and the timing and wait for a yes. That instruction belongs in the agent's standing prompt, not just in your head.
A prompt that works well: "Find the chat called Dana's Bakery, and schedule this for Monday at 9:00 my time: the delivery window moves to the afternoon. Show me the draft first." Asking for the draft first gives you a chance to say no before anything is booked.
For the full list of what each tool can do, see the Blueticks MCP tools reference, and for the same server inside other agents, Claude Code and Cursor.
Who actually sends when the message is due?
A scheduled message fires from whichever engine holds your Blueticks WhatsApp session, which is separate from the session OpenClaw holds. These are two ordinary linked devices on one account, and they do not share state.
What that means for timing:
| Where your Blueticks session lives | A scheduled send goes out when |
|---|---|
| WhatsApp Web in your browser ("On this computer", any plan without always-on) | Your computer is on and the browser is open |
| The Blueticks cloud, always-on (Pro) | Always, including with your computer off |
So if your OpenClaw box runs 24/7 but your Blueticks session is browser-based, a 7:00 AM scheduled message still depends on the browser being open at 7:00. The API lesson in the Blueticks academy says the same: without always-on, WhatsApp Web has to be open for API messages to send. Check the pricing page for what each plan includes before you design around it.
Should you use OpenClaw's channel, Blueticks, or both?
Pick by what you want the agent to do, not by which product sounds bigger.
| You want | Use |
|---|---|
| A personal assistant you chat with from your phone | OpenClaw's WhatsApp channel alone |
| Scheduled and recurring messages, campaigns, chat history | Blueticks over MCP |
| An assistant you talk to on WhatsApp that also books sends and campaigns | Both: the channel to talk, the MCP server to act |
| Replies to customers on your business number with handoff | Blueticks' own WhatsApp chatbot, no OpenClaw gateway to run (cloud hosting is on Pro; browser plans need the browser open) |
Both routes use linked-device sessions, not Meta's Cloud API. Neither can promise your number will never be restricted. Message people who expect to hear from you, pace bulk sends, and keep consent on your side.
FAQ
Does OpenClaw support WhatsApp pairing codes instead of a QR?
OpenClaw's WhatsApp docs say login is QR only. You scan from Linked Devices on the phone. The word "pairing" in OpenClaw's WhatsApp docs refers to approving a sender who messages the agent, not to linking the account.
Do I need a separate phone number for OpenClaw on WhatsApp?
OpenClaw recommends a dedicated number, and says personal-number and self-chat setups are fully supported. With a personal number, use dmPolicy: "allowlist" with your own number in allowFrom so nobody else reaches the agent.
Can OpenClaw schedule WhatsApp messages through Blueticks?
Yes, once the Blueticks MCP server is added. The agent calls scheduled_messages with a send_at time. Whether it goes out with your computer off depends on your Blueticks plan: always-on cloud sending is a Pro feature.
Is a Blueticks API key safe to put in my OpenClaw config?
Put it in an environment variable and reference it as Bearer ${BLUETICKS_API_KEY} so the secret is not in the file. The key has full access to your Blueticks account over MCP, so revoke it in the developer portal if it leaks.
Will the Blueticks session and the OpenClaw session conflict?
Each is its own linked device on your account, so one does not take over the other. WhatsApp does cap how many linked devices an account can hold, so remove the ones you no longer use before you add another.


