Volver al Blog
Automatización 29 de enero de 2026 · 10 min lectura

Construir un Bot de WhatsApp Que No Se Banee — El Enfoque Desktop Agent

GM

Gonzalo Monzón

Fundador & Arquitecto Principal

En España y Latinoamérica, los negocios pasan por WhatsApp. No por email, no por Slack — por WhatsApp. Nuestros clientes necesitaban automatizar seguimientos, recordatorios de citas y cualificación de leads a escala. La API oficial de Business era cara y restrictiva. Todas las librerías no oficiales que probamos acabaron con el número baneado en 3 semanas. Así que construimos algo diferente: un agente de escritorio que no lucha contra las reglas de WhatsApp — las sigue, a velocidad humana.

Los Tres Caminos de la Automatización WhatsApp (Y Por Qué Dos Fallan)

Antes de construir nada, evaluamos cada opción del mercado:

Camino 1: API Oficial WhatsApp Business (Meta)

La opción "segura". Pero tiene limitaciones reales que la matan para la mayoría de casos de uso PYME:

  • $0.05–0.15 por mensaje — a 200+ mensajes/día, eso son $300–900/mes solo en fees de mensajería
  • Ventana de 24 horas: Solo puedes responder dentro de 24h del último mensaje del usuario. Después, necesitas templates pre-aprobados
  • Aprobación de templates: Cada template de mensaje saliente necesita aprobación de Meta — 24-72h de revisión, rechazos frecuentes
  • Sin libertad multimedia: Tipos de attachment limitados, sin mensajes de audio, sin compartir ubicación en templates
  • Verificación empresarial: Requiere Facebook Business Manager, verificación de dominio, 2 semanas de onboarding

Camino 2: Librerías No Oficiales (Baileys, whatsapp-web.js)

Librerías open-source que hacen ingeniería inversa del protocolo de WhatsApp. Rápidas de configurar, pero:

  • Tasa de baneo: 85%+ en 4 semanas en nuestras pruebas — WhatsApp detecta conexiones no-browser
  • Roturas de protocolo: WhatsApp actualiza su protocolo regularmente, rompiendo estas librerías durante días
  • Sin recuperación de sesión: Cuando una sesión se rompe, necesitas re-escanear el código QR manualmente

Camino 3: Nuestro Enfoque — El Desktop Agent

¿Y si en vez de intentar saltarnos WhatsApp, simplemente... lo usamos? Como un humano. A través de un navegador real, con timing realista, en una app de escritorio real. Esa es la idea central de nuestro WhatsApp Local Agent.

La Arquitectura: Electron + Playwright + WebSocket

El agente es una app de escritorio Electron que corre en la máquina del cliente (Windows/macOS/Linux). Dentro, ejecuta un navegador controlado por Playwright apuntando a WhatsApp Web. Los componentes clave:

  • Navegador Playwright: Una instancia real de Chromium con WhatsApp Web cargado — no headless, visible en pantalla
  • Bridge WebSocket: Conexión bidireccional con Cadences cloud. Recibe tareas, reporta resultados
  • Cola SQLite: Cola local de mensajes con lógica de reintentos, tracking de estado de entrega y deduplicación
  • Persistencia de sesión: Restauración automática de sesión — sin re-escanear códigos QR tras reinicios

El flujo es simple:

Workflow de Cadences dispara "Enviar WhatsApp"
  → WebSocket → Desktop Agent recibe tarea
    → Agent abre/encuentra la conversación
    → Escribe mensaje con delays humanos
    → Envía texto / imagen / audio / ubicación
    → Reporta estado de entrega vía WebSocket
  → Workflow continúa con el resultado

La Capa Anti-Detección: 6 Técnicas

Aquí es donde la ingeniería importa. Los sistemas de detección de WhatsApp buscan patrones de automatización. Nosotros eliminamos hasta el último:

1. Stealth Plugin

Usamos puppeteer-extra-plugin-stealth adaptado para Playwright. Parchea 11 fugas de fingerprint del navegador diferentes: detección de WebDriver, protocolo Chrome DevTools, navigator.plugins, strings del renderer WebGL, y más. El navegador es indistinguible de una instalación normal de Chrome.

2. Velocidad de Escritura Natural

No delays fijos. Modelamos el comportamiento real de escritura humana:

  • Velocidad base: 40-60 PPM con varianza gaussiana
  • Pausas entre palabras: 80-200ms (más largas para signos de puntuación)
  • Pausas de "pensar" ocasionales: 1-3s a mitad de frase
  • Simulación de errores tipográficos desactivada (demasiado arriesgado) pero patrones de hesitación incluidos

3. Movimientos de Ratón Realistas

Cada clic va precedido de un movimiento de ratón siguiendo una curva Bézier desde la posición actual. Sin teleportación. La velocidad varía, con curvas de aceleración y deceleración que imitan el control motor humano.

4. Delays Aleatorios Entre Acciones

Entre cada acción (abrir chat, escribir, enviar, siguiente chat), el agente espera 1-5 segundos con distribución aleatoria. Entre sesiones (lotes de 10-15 mensajes), hace una pausa de 3-8 minutos — simulando un humano haciendo otras tareas.

5. Rate Limiting

Límites duros que ningún humano excedería:

  • Máx 20 conversaciones nuevas por hora
  • Máx 60 mensajes por hora en total
  • Sin mensajes entre 1:00 y 7:00 AM (zona horaria configurable)
  • Modo fin de semana: 50% de volumen reducido

6. Fingerprints Rotativos

Los User-Agent strings rotan semanalmente. El tamaño del viewport varía ligeramente entre sesiones. Las preferencias de idioma coinciden con la locale del teléfono. Cada detalle que podría marcar la sesión como automatizada se aleatoriza dentro de rangos humanamente plausibles.

Capacidades Completas

El agente no es solo un enviador de texto. Maneja todo lo que un humano puede hacer en WhatsApp Web:

  • Enviar texto: Con delays naturales de escritura y formato Markdown
  • Enviar imágenes: Upload de archivo con caption opcional
  • Enviar audio: Audio pre-grabado o TTS en tiempo real (vía ElevenLabs/Edge TTS)
  • Enviar ubicación: Coordenadas GPS con nombre del lugar
  • Leer chats: Extraer últimos N mensajes de cualquier conversación — texto, timestamps, sender
  • Buscar chats: Encontrar conversaciones por nombre de contacto o número
  • Transcripción de audio: Transcribir automáticamente mensajes de voz recibidos usando Groq Whisper / OpenAI / Cloudflare Workers AI
  • Confirmaciones de lectura: Detectar ticks azules y estado online

La transcripción de audio es especialmente potente: un cliente envía un mensaje de voz de 2 minutos, el agente lo transcribe en tiempo real, lo pasa a una IA para interpretación y puede responder con un texto contextualmente apropiado — todo en 15 segundos.

Integración con Cadences Workflows

El poder real no es el agente solo — es el agente como nodo en un workflow. En el editor visual de workflows de Cadences, las acciones de WhatsApp son nodos de primera clase:

  • Nodo WhatsApp Send: Enviar mensaje a un número específico o a una variable (desde CRM, Data Table, etc.)
  • Nodo WhatsApp Read: Obtener mensajes recientes de un contacto — útil para verificar si respondió
  • Nodo WhatsApp Wait: Pausar el workflow hasta que el contacto responda (con timeout configurable)
  • Nodo STT: Transcribir cualquier mensaje de audio recibido durante la conversación

Ejemplo de workflow: Llega lead → IA puntúa el lead → WhatsApp presenta el servicio → espera respuesta → si la respuesta contiene keywords de precio, genera presupuesto personalizado con IA → envía presupuesto como PDF → programa seguimiento en 48h.

Comparación de Costes: API vs Desktop Agent

📊 Coste API oficial: $0.05–0.15/mensaje → ~$450/mes a nuestro volumen

🖥️ Coste Desktop Agent: $0/mensaje → electricidad + una máquina funcionando

📋 Aprobación de templates: API: Sí (24-72h). Agent: No — cualquier mensaje, en cualquier momento

📎 Soporte multimedia: API: Limitado. Agent: Completo (imágenes, audio, vídeo, ubicación, documentos)

8+ Meses en Producción: Los Números

🛡️ Baneos de cuenta: 0 (en 3 números de teléfono diferentes, 3 clientes distintos)

📱 Mensajes enviados: 14.000+ mensajes automatizados en total

⏱️ Uptime: 98.7% (caídas: actualizaciones de Windows + mantenimiento WhatsApp Web)

🤝 Tasa de respuesta: 31% (compara: email marketing promedia 8-12%)

🎤 Mensajes de voz transcritos: 2.400+ (automático, en conversación)

🔄 Tiempo medio de entrega: 4-12 segundos por mensaje (velocidad humana)

Qué Puede Salir Mal (Y Cómo Lo Gestionamos)

Honestidad ante todo — este enfoque no es a prueba de balas. Estos son los riesgos reales y nuestras mitigaciones:

  • Actualizaciones de WhatsApp Web: Meta cambia ocasionalmente la estructura del DOM. Nuestros selectores se rompen. Mitigación: usamos atributos data-testid cuando están disponibles (estables) y tenemos un sistema de detección de cambios de DOM que nos alerta en minutos
  • Expiración de sesión: Las sesiones de WhatsApp Web pueden expirar tras 14 días de inactividad. Mitigación: pings de keepalive diarios
  • Máquina se desconecta: Portátil se cierra, corte de luz. Mitigación: la cola SQLite persiste — al reiniciar, todos los mensajes encolados se envían en orden
  • Detección de rate limit: Si accidentalmente excedemos volúmenes seguros, WhatsApp muestra captchas. Mitigación: el agente detecta captchas, pausa toda actividad y alerta al operador

Ética y Uso Responsable

Esta es una herramienta potente, y nos tomamos el uso responsable en serio:

  • Sin spam en frío: Solo contactamos a personas que han interactuado previamente con el negocio o han dado su consentimiento explícito
  • Mecanismo de baja: Cada conversación automatizada incluye una forma de optar out. "STOP" o "No más mensajes" bloquea inmediatamente el contacto
  • Handoff humano: Cuando la IA detecta frustración, quejas o peticiones complejas, transfiere inmediatamente a un operador humano con todo el contexto de la conversación
  • Límites de volumen: Imponemos caps diarios por cliente. Ningún cliente envía más de 150 mensajes/día

El comportamiento human-like no es engaño — es diseño de experiencia de usuario. Nadie quiere sentir que habla con un robot. El timing, el flujo natural, la pausa ocasional — crea una conversación que respeta el tiempo del destinatario.

El Stack Técnico

  • Electron: Shell de app de escritorio — multiplataforma, auto-updates, integración con system tray
  • Playwright: Automatización de navegador — más fiable que Puppeteer para sesiones largo plazo
  • puppeteer-extra-plugin-stealth: Anti-fingerprinting para bypass de detección de navegador
  • SQLite (sql.js): Cola local, historial de mensajes, tracking de entregas, blocklist de contactos
  • WebSocket: Comunicación bidireccional en tiempo real con Cadences cloud
  • Groq/OpenAI/CF Workers AI: STT para transcripción de mensajes de voz (seleccionable por cliente)

El agente entero son ~3.500 líneas de JavaScript. Corre en cualquier máquina con 4GB de RAM y conexión a internet estable. Sin Docker, sin servidores, sin infra cloud — solo una app de escritorio que WhatsApp ve como un usuario normal navegando la web.

Etiquetas

WhatsApp Automatización Anti-Detección Playwright Electron Herramientas Desktop WebSocket

Sobre el Autor

Gonzalo Monzón

Gonzalo Monzón

Fundador & Arquitecto Principal

Gonzalo Monzón es Arquitecto de Soluciones Senior e Ingeniero IA con más de 26 años construyendo sistemas críticos en Sanidad, Automatización Industrial e IA empresarial. Fundador de Cadences Lab, está especializado en conectar infraestructura legacy con tecnología de vanguardia.

Mantente al día

Recibe notificaciones cuando publiquemos nuevos artículos sobre automatización IA, casos de uso y guías prácticas.