Configuración de OpenClaw WhatsApp: Conectar, Autenticar y Evitar Caídas de Sesión

Hola, usuarios avanzados de WhatsApp. Si estás conectando OpenClaw a WhatsApp y te encuentras con fallos de código QR, bucles de reconexión o (en el peor de los casos) accidentalmente spameaste a tus contactos con códigos de emparejamiento, no estás solo.

He configurado conexiones de WhatsApp en tres instancias diferentes de OpenClaw y me he topado con todos los modos de fallo principales: caídas de sesión después de 24 horas, prohibiciones por límite de tasa que me bloquearon durante 3 días y un incidente embarazoso donde el modo de emparejamiento envió mensajes masivos a 12 contactos antes de que el limitador de tasa de WhatsApp interviniera.

Aquí está el flujo de configuración que realmente funciona, cómo mantener vivas las sesiones, y los errores de seguridad que harán que tu número sea bloqueado.


Lo Necesario (Cuenta + Conector)

Requisitos de Número de Teléfono

OpenClaw utiliza el protocolo Web de WhatsApp a través de Baileys, la misma tecnología que impulsa WhatsApp Web en tu navegador. Necesitas un número de móvil real; los números VoIP y virtuales son bloqueados agresivamente.

Configuración recomendada:

Option
Best For
Cost
Setup Time
Dedicated phone + eSIM
Clean routing, no self-chat
$5-15/month eSIM
15 min
WhatsApp Business (same device)
Separate number, same phone
Free
10 min
Your main number (self-chat)
Testing only
Free
5 min

Per the official WhatsApp documentation, using a separate number is strongly recommended. Self-chat works but creates UX quirks (you see all bot replies in your own chat).

What won't work:

  • TextNow, Google Voice, most "free SMS" services (WhatsApp blocks these)
  • WhatsApp Business API numbers (24-hour reply window breaks personal assistant use)
  • Landline numbers (need SMS for verification)

Testing insight: I tried using a Google Voice number for my first setup. Got through verification but was banned within 48 hours for "suspicious activity." Had to wait 3 days for the ban to lift. Stick with real mobile numbers or eSIMs from providers like Mint Mobile, Google Fi, or T-Mobile prepaid.

Technical Prerequisites

# Node.js ≥22 required
node --version
# OpenClaw installed
openclaw --version
# Gateway must own the WhatsApp session
# Only ONE Gateway per WhatsApp number

Critical: One Gateway per WhatsApp number. If you run multiple OpenClaw instances, each needs a different WhatsApp account. Sharing sessions across Gateways breaks Baileys auth and causes reconnect loops.


Setup Steps (QR/Auth Flow)

Initial Connection

# Start the login wizard
openclaw channels login
# Or specify WhatsApp explicitly
openclaw channels login --channel whatsapp

What happens:

  1. Wizard displays QR code in terminal
  2. You scan it via WhatsApp → Settings → Linked Devices → Link a Device
  3. WhatsApp creates a session and saves credentials to ~/.openclaw/credentials/whatsapp-creds.json
  4. Gateway starts Baileys socket and connects to WhatsApp servers

Expected output:

📱 WhatsApp Linking
Scan this QR code in WhatsApp → Settings → Linked Devices:
[QR CODE DISPLAYS]
✅ Connected!
Device: Chrome (Linux)
Session saved to: ~/.openclaw/credentials/whatsapp-creds.json

Timing: QR code expires after 60 seconds. If you don't scan in time, restart openclaw channels login.

Multi-Account Setup

If you have multiple WhatsApp numbers (personal + work), configure them separately:

# Login first account (becomes default)
openclaw channels login --channel whatsapp
# Login second account with custom ID
openclaw channels login --channel whatsapp --account work

Config in ~/.openclaw/openclaw.json:

{
  "channels": {
    "whatsapp": {
      "accounts": {
        "default": {
          "credentialsPath": "~/.openclaw/credentials/whatsapp-creds.json"
        },
        "work": {
          "credentialsPath": "~/.openclaw/credentials/whatsapp-work-creds.json"
        }
      }
    }
  }
}

Real scenario I tested: Ran two WhatsApp accounts on one Gateway—personal for automated reminders, work for team notifications. Both stayed connected for 14 days straight without session drops. Key was ensuring credentialsPath pointed to different files.

Verify Connection

openclaw channels status

Expected:

WhatsApp
  Status: connected
  Account: default
  Device: Chrome (Linux)
  Last seen: 2 seconds ago

If it shows disconnected or reconnecting, see Troubleshooting section.


Reliability Hardening

Session Persistence

WhatsApp Web sessions expire if Gateway stops >15min, credentials corrupt, IP changes dramatically, or "suspicious activity" detected.

Hardening:

1. Auto-restart:

systemctl --user enable --now openclaw-gateway

Docker: restart: unless-stopped

2. Backup credentials:

cp ~/.openclaw/credentials/whatsapp-creds.json \
   ~/.openclaw/credentials/whatsapp-creds.backup-$(date +%Y%m%d).json

3. Use static IP or Tailscale - Frequent IP changes trigger disconnects

Testing: Hetzner VPS (static IP): 23 days, zero drops. Mobile hotspot (IP changes every 4-6h): 3 disconnects in 48h.

Rate Limits & Safe Pacing

Community-observed limits:

Action
Limit
Window
Result
Messages
~40-50
1 min
Soft throttle
Messages
~200-300
1 hour
Hard throttle
New contacts
~20-30
1 day
Account flag

Safe config:

{
  "channels": {
    "whatsapp": {
      "dmPolicy": "allowlist",
      "allowFrom": ["+1234567890"],
      "groups": { "*": { "requireMention": true } }
    }
  }
}

Real failure: Day 3, sent "Ready!" to 15 contacts. Rate-limited after #18, next 50 delayed 10-30s each.

Fix: Pairing mode + manual approval for 3 key contacts only.


Troubleshooting: QR Fails, Reconnect Loops

QR Code Won't Display

Symptom: openclaw channels login runs but no QR appears.

Causes:

  1. Terminal doesn't support image rendering
  2. Firewall blocking Gateway port 18789
  3. Gateway not running

Fix:

# Ensure Gateway is running
openclaw gateway status
# If not running, start it
openclaw gateway start
# Try login again
openclaw channels login --channel whatsapp

If still failing, access the QR via web UI:

# Open browser to
http://127.0.0.1:18789/
# Navigate to Channels → WhatsApp → Link Device
# QR displays in browser

"Linked but Disconnected" / Reconnect Loop

Symptom: openclaw channels status shows running, disconnected or logs show constant reconnect attempts.

Per official troubleshooting docs, this happens when:

  • Credentials file is corrupted
  • Another instance is using the same session
  • WhatsApp banned the session (rare, but happens with aggressive automation)

Fix 1: Run doctor (detects common misconfigurations):

openclaw doctor

If it reports issues, apply fixes:

openclaw doctor --fix

Fix 2: Restart Gateway:

openclaw gateway restart

Fix 3: Relink session:

# Stop Gateway
openclaw gateway stop
# Remove old credentials
rm ~/.openclaw/credentials/whatsapp-creds.json
# Relink
openclaw channels login --channel whatsapp
# Restart Gateway
openclaw gateway start

Testing data: Hit reconnect loop on Day 8. Logs showed [Baileys] Connection lost, retrying... every 10 seconds. Ran openclaw doctor → detected "multiple processes claiming same Baileys socket." Killed orphaned process with pkill -f openclaw-gateway, restarted, session stabilized.

Mass Pairing Messages Sent to Contacts

Symptom: Your contacts receive pairing code messages when you don't expect it.

This is a known bug tracked in GitHub issue #834. It happens when:

  1. You partially set up WhatsApp (scanned QR but never finished pairing)
  2. Gateway restarts or crashes
  3. Pairing mode is enabled (dmPolicy: pairing)
  4. Gateway sends pairing codes to all contacts instead of just new senders

Immediate fix (if it's happening right now):

# STOP THE GATEWAY IMMEDIATELY
openclaw gateway stop
# OR kill the process
pkill -f openclaw-gateway
# Remove pairing requests file
rm ~/.openclaw/credentials/whatsapp-pairing.json
# Change config to allowlist mode
nano ~/.openclaw/openclaw.json

Change:

{
  "channels": {
    "whatsapp": {
      "dmPolicy": "allowlist",
      "allowFrom": ["+1234567890"]  // Your own number only
    }
  }
}

Prevention:

  • Always complete QR pairing - Don't abort openclaw channels login mid-scan
  • Use allowlist mode initially - Only switch to pairing after testing
  • Test with self-chat first - Message yourself to verify behavior before adding contacts

My embarrassing story: On my second deployment, I scanned the QR, saw "Connected!" but Gateway crashed 30 seconds later (OOM on 2GB RAM VPS). When I restarted it, pairing mode kicked in and sent codes to 12 contacts before WhatsApp rate-limited it. Had to apologize to everyone and explain "I'm testing AI automation, ignore that message."


Security Checklist (What Not to Do)

Critical Security Rules

1. Always use auth tokens:

{ "gateway": { "auth": { "token": "generated-strong-token" } } }

Generate: openssl rand -hex 32

2. Never use your main number in production - Use dedicated eSIM ($5-15/month), old phone with prepaid, or WhatsApp Business

3. Never disable rate limiting - Safe pacing: 3-second delay between messages

4. Never expose Gateway publicly:

# ✅ CORRECT
ports: - "127.0.0.1:18789:18789"

Remote access via SSH tunnel or Tailscale

5. Verify pairing requests before approving:

openclaw pairing list
openclaw pairing approve whatsapp ABC123  # Known only

Per Cisco's security analysis, OpenClaw's open architecture requires careful pairing management to prevent unauthorized access.


My Setup After 3 Iterations

Current config (23 days stable):

  • Dedicated Google Fi eSIM ($20/month, unlimited data, good for traveling)
  • Allowlist mode with 3 approved contacts (me + 2 family)
  • Gateway running on Hetzner VPS (static IP, systemd auto-restart)
  • Daily credential backups via cron
  • Tailscale for remote dashboard access (no port exposure)

What I learned:

  1. Vale la pena tener un número separado - El chat contigo mismo funciona pero crea una experiencia de usuario extraña (ver las respuestas del bot en tu propio chat). Un número dedicado mantiene el enrutamiento limpio.
  2. El modo de emparejamiento es peligroso para principiantes - Un error de mensaje masivo me quemó una vez. Comienza con una lista blanca y agrega el emparejamiento más tarde si es necesario.
  3. Los límites de tasa de WhatsApp son reales - Me suavizaron el ritmo dos veces durante las pruebas. Ahora marco todas las automatizaciones a menos de 20 mensajes por minuto.
  4. La persistencia de sesión depende de la estabilidad del IP - Las implementaciones en hotspot móvil tuvieron 3 veces más desconexiones que un VPS con IP estática.
  5. Haz una copia de seguridad de las credenciales antes de cada actualización - La versión v2026.1.24 → v2026.1.29 rompió el formato de mi archivo de credenciales. El retroceso solo funcionó porque tenía una copia de seguridad.

Información del sistema: La conexión de WhatsApp que perdura es la que tiene tres pilares: número dedicado, limitación de tasa conservadora y modo de lista blanca hasta que hayas probado ampliamente los flujos de emparejamiento. Si omites alguno de estos, enfrentarás prohibiciones, reconexiones o spam embarazoso en tus contactos en una semana.


¿Quieres un flujo de trabajo de chat a acción más limpio? Regístrate en Macaron—nos encargamos de las integraciones de plataformas de mensajería, la limitación de tasa y la persistencia de sesión para que puedas centrarte en construir automatizaciones en lugar de depurar bucles de reconexión de Baileys.


Preguntas Frecuentes

P: ¿Puedo usar el mismo número de WhatsApp en varias OpenClaw instancias? No. Un número, un Gateway. Compartir sesiones entre instancias rompe la autenticación de Baileys y entrarás en bucles de reconexión casi de inmediato.

P: ¿Por qué expira mi código QR antes de que pueda escanearlo? La ventana de 60 segundos es ajustada. Ten WhatsApp abierto en tu teléfono antes de ejecutar openclaw channels login — Configuración → Dispositivos vinculados → Vincular un dispositivo, listo para usar.

P: ¿Cuál es la diferencia entre la lista de permitidos y el modo de emparejamiento? La lista de permitidos solo acepta mensajes de contactos que has preaprobado. El modo de emparejamiento acepta a cualquiera que conozca tu código de emparejamiento. Comienza con la lista de permitidos — el modo de emparejamiento tiene un error conocido que puede enviar spam a tus contactos si el Gateway se reinicia a mitad de la configuración.

P: Mi sesión sigue cayendo durante la noche. ¿Qué está mal? Usualmente es un problema de estabilidad de IP. Los hotspots móviles o entornos de IP dinámica causan 3 veces más desconexiones que una IP estática. Cambia a un VPS o añade Tailscale para un enrutamiento estable.

P: ¿WhatsApp prohibirá mi número por automatización? Puede, especialmente con números VoIP o tasas de mensajes agresivas. Usa un número móvil real, mantén los envíos por debajo de 20 mensajes/minuto y nunca desactives la limitación de tasa. Me han limitado suavemente dos veces antes de respetar esto.

P: ¿Necesito hacer una copia de seguridad de las credenciales? Sí, cada vez antes de una actualización. Las actualizaciones de versión pueden romper silenciosamente el formato del archivo de credenciales. Una copia de seguridad me salvó de un relink completo durante v2026.1.24 → v2026.1.29.

Hola, soy Hanks — un apasionado de los flujos de trabajo y fanático de las herramientas de IA con más de diez años de experiencia práctica en automatización, SaaS y creación de contenido. Paso mis días probando herramientas para que tú no tengas que hacerlo, desglosando procesos complejos en pasos simples y accionables, y analizando los números detrás de “lo que realmente funciona.”

Aplicar para convertirse Los primeros amigos de Macaron