Si ya construiste un bot de WhatsApp con IA en n8n, probablemente ya viste el problema venir: entre más útil es tu bot, más responde. Y entre más responde, más factura. La mayoría de las APIs de WhatsApp orientadas a desarrolladores cobran por conversación o por sesión de 24 horas — un modelo que tiene sentido cuando un humano manda unos cuantos mensajes al día, pero que se vuelve impredecible en cuanto metes un agente de IA que puede sostener ida y vuelta con decenas de contactos a la vez.
El resultado típico: un workflow de n8n que funciona perfecto en pruebas, y una factura a fin de mes que nadie calculó bien. Para un freelancer que cobra un proyecto fijo a su cliente, o una agencia que gestiona varios números, ese costo variable es el enemigo silencioso del margen.
La forma de evitarlo no es complicar el workflow — es elegir un proveedor con tarifa plana por número en vez de cobro por conversación. Esta guía arma, paso a paso, el mismo flujo que usa la plantilla n8n gratuita de waseller: un webhook que recibe el mensaje, un filtro anti-loop obligatorio, memoria de conversación, un nodo de IA, y una llamada de vuelta a WhatsApp — todo con el nodo HTTP Request estándar de n8n, sin instalar ningún community node.
Qué necesitas antes de empezar
- Una cuenta de n8n — cloud o self-hosted, cualquiera funciona igual para este workflow.
- Un número de WhatsApp conectado a waseller — se conecta por QR desde el dashboard, sin aprobación de Meta ni WhatsApp Business API oficial.
- El Session API Key de ese número — lo encuentras en el dashboard de waseller, en la configuración del número. Es la única credencial que necesitas para autenticar las llamadas a la API.
- Una API Key de OpenAI (o el proveedor de IA que prefieras) — para el nodo que genera las respuestas.
- 10-15 minutos — no hay instalación de dependencias extra ni configuración de infraestructura.
Nota importante: waseller no tiene un community node dedicado en n8n, y es una decisión deliberada del producto. Todo se hace con el nodo HTTP Request estándar. Esto significa que no dependes de que un tercero mantenga un plugin actualizado — la integración es tan estable como la API misma, y funciona igual en cloud y en self-hosted sin instalar nada adicional.
Paso a paso: arma el workflow en n8n
El flujo completo son cinco nodos encadenados. Cada uno tiene una responsabilidad única — esto facilita depurar cuando algo no funciona como esperabas.
-
Nodo Webhook — recibe el evento de WaSender
Crea un nodo Webhook en n8n, cópiale la URL generada y pégala en la configuración del número dentro del dashboard de waseller. A partir de ahí, cada mensaje que llegue a ese número — de un contacto o del propio dueño del número — dispara unPOSTa esa URL. El payload incluye el número del contacto, el texto del mensaje, el timestamp y, crítico para el siguiente paso, el campofromMe. -
Nodo IF (o Filter) — filtro anti-loop con
fromMe
Justo después del Webhook, agrega un nodo condicional que evalúefromMe === false. Si el mensaje lo enviaste tú (o el propio bot en su respuesta anterior),fromMellega entruey el workflow debe detenerse ahí — literalmente no continuar a ningún nodo más. Solo los mensajes de contactos externos (fromMe === false) siguen al siguiente paso. -
Recuperar el historial de conversación por número de teléfono
Antes de llamar a la IA, el workflow necesita contexto. Usa el número de teléfono del contacto como clave para consultar el historial guardado (puede ser una tabla en Postgres/Supabase, un nodo de memoria de n8n, o cualquier almacenamiento que ya uses). Esto es lo que le da memoria al bot: sin este paso, cada mensaje se procesa aislado y el bot "olvida" todo entre un mensaje y el siguiente. -
Nodo de IA — historial completo + mensaje nuevo
Con el nodo de OpenAI (o el que uses), arma el prompt combinando el historial recuperado en el paso anterior más el mensaje nuevo del contacto. El modelo responde con el contexto completo de la conversación, no solo con el último mensaje suelto — esto es lo que hace que las respuestas se sientan coherentes turno tras turno. -
Nodo HTTP Request — responde de vuelta por waseller
El último nodo es un HTTP Request estándar apuntando al endpoint de envío de mensajes de waseller, con el Session API Key en el header de autenticación y el número del contacto + el texto generado por la IA en el body. En segundos, la respuesta aparece en el WhatsApp del contacto como un mensaje normal.
Si prefieres no armar estos cinco nodos desde cero, la plantilla n8n gratuita de waseller trae este flujo completo en un JSON listo para importar — solo pegas tu Session API Key y tu API Key de OpenAI.
Por qué el filtro anti-loop es obligatorio, no opcional
El paso 2 no es una buena práctica opcional — es lo que evita que tu bot se destruya a sí mismo. Así es el escenario sin filtro: el bot responde a un contacto, esa respuesta también llega como evento al mismo webhook (porque WaSender reporta todos los mensajes salientes del número, no solo los entrantes), el workflow la procesa como si fuera un mensaje nuevo, genera otra respuesta, esa respuesta dispara otro evento, y así indefinidamente.
El síntoma es inconfundible: el número empieza a mandarse mensajes a sí mismo (o a responderle a un contacto en ráfaga) sin que nadie lo detenga manualmente. Y cada vuelta de ese bucle es una llamada más a la API de OpenAI — en un bucle sin control, eso significa quemar tu cuota o tu tarjeta en minutos, no en días.
La solución es la condición más simple del workflow: revisar fromMe en el primer nodo después del Webhook, antes de gastar un solo token de IA. Si es true, cortar ahí. Es una línea de defensa barata contra un error caro — por eso todas las plantillas serias de WhatsApp + IA en n8n, incluida la de waseller, la ponen como el segundo nodo del flujo, sin excepción.
Cuánto te ahorras vs pagar por conversación
El costo real de un bot de IA en WhatsApp no se mide en "cuántos mensajes manda un humano" — se mide en cuántas respuestas genera el bot mes a mes, y esa cifra crece rápido en cuanto el bot atiende ventas, soporte o agendamiento sin supervisión constante.
Toma un ejemplo simple: un bot que genera 2,000 respuestas al mes (unas 65-70 respuestas diarias, nada exagerado para un número activo de ventas o soporte). Con un proveedor que cobra por conversación — un modelo común entre APIs orientadas a desarrolladores — cada conversación iniciada por el bot tiene un costo individual que se multiplica por el volumen:
| Modelo de cobro | Costo por conversación (ejemplo ilustrativo) | 2,000 respuestas/mes |
|---|---|---|
| Proveedor por conversación | $0.50 MXN | $1,000 MXN/mes |
| waseller Starter (tarifa plana) | — | $249 MXN/mes |
| waseller Pro (tarifa plana) | — | $449 MXN/mes |
Con esos números ilustrativos, el plan Starter de waseller sale $751 MXN más barato al mes que el proveedor por conversación — un ahorro de más del 75%. Y la diferencia no es solo el monto: es la certeza. Con tarifa plana por número, sabes exactamente cuánto vas a pagar en agosto sin importar si el bot tuvo un mes tranquilo o uno de locura. Con cobro por conversación, la factura depende de qué tan bien (o mal) le fue a tu bot ese mes — lo cual castiga justo el éxito que buscabas.
Esto importa todavía más si gestionas varios números — como agencia o como freelancer con varios clientes. El cobro por conversación se multiplica por cada número activo; la tarifa plana simplemente se suma número por número, de forma predecible, y la puedes cotizar a tu cliente sin sorpresas.
Arma tu workflow hoy
Ya tienes el flujo completo: Webhook → filtro anti-loop con fromMe → historial por número de teléfono → nodo de IA → HTTP Request de vuelta con tu Session API Key. Todo con nodos estándar de n8n, sin community nodes, sin pagar por conversación.
Si quieres saltarte el armado manual, descarga la plantilla n8n gratuita de waseller — trae los cinco nodos ya conectados en un JSON listo para importar. Y si todavía no tienes un número conectado, puedes probar waseller gratis 3 días y tener tu Session API Key lista para pegar en el primer nodo en minutos.

