WednesdayAI connects to WhatsApp via the WhatsApp Web protocol (Baileys). The gateway owns the linked session and reconnect loop. This is the same mechanism WhatsApp Web uses — you link a WhatsApp number to the gateway, and it sends and receives messages on that number’s behalf.
WhatsApp requires the gateway to run on Node.js (not Bun). Bun is flagged as incompatible for stable WhatsApp operation.
// ~/.openclaw/openclaw.json{ channels: { whatsapp: { enabled: true, dmPolicy: "pairing", // pairing | allowlist | open | disabled allowFrom: ["+15555550123"], // E.164 numbers allowed to message the bot }, },}
2. Link the WhatsApp number:
openclaw channels login --channel whatsapp
Scan the QR code with the WhatsApp app on the phone holding the number. The QR expires after ~2 minutes — if it times out, run the command again.For a named account (multi-account setup):
openclaw channels login --channel whatsapp --account work
3. Start the gateway and approve pairing requests:
openclaw gateway runopenclaw pairing list whatsappopenclaw pairing approve whatsapp <CODE>
Pairing codes expire after 1 hour. Pending requests are capped at 3 per channel.4. Verify:
openclaw channels status --channel whatsappopenclaw status --deep