Crear un chatbot con IA para WhatsApp dejó de ser un proyecto exclusivo de grandes equipos de desarrollo. Con una API de mensajería, una plataforma de automatización y un modelo de lenguaje, es posible construir flujos capaces de recibir preguntas, interpretar el contexto y responder automáticamente.
En esta guía, aprenderás cómo estructurar un chatbot con IA utilizando n8n, Z-API y ChatGPT. El flujo presentado está basado en el tutorial en video indicado para este contenido y fue complementado con información de la documentación técnica de las herramientas.
La arquitectura es sencilla: Z-API conecta el número de WhatsApp con el sistema; n8n recibe los eventos y orquesta el flujo; y la IA interpreta los mensajes y genera las respuestas.
La memoria de conversación permite que el chatbot tenga en cuenta interacciones anteriores, mientras que los webhooks y las configuraciones de envío hacen que la respuesta vuelva al cliente.
El resultado va más allá de una respuesta automática basada en palabras clave. Se convierte en una operación conversacional que puede integrarse con CRM, e-commerce, agendas, ERP, bases de conocimiento y sistemas internos.
¿Qué es y cómo funciona un chatbot de WhatsApp con IA?
Un chatbot de WhatsApp con IA es un sistema capaz de recibir un mensaje, interpretar su contenido, generar una respuesta y enviarla al usuario sin que un agente tenga que ejecutar manualmente cada paso.
Los bots tradicionales suelen depender de menús, palabras clave y rutas predefinidas. En cambio, un chatbot conectado a un modelo de lenguaje puede interpretar preguntas en lenguaje natural y generar respuestas más flexibles.
Eso no significa dejar que la IA responda sin controles. Un chatbot profesional necesita un objetivo claro, contexto, límites, fuentes confiables y reglas de derivación hacia un agente humano.
En el flujo de este tutorial:
- El cliente envía un mensaje por WhatsApp.
- Z-API envía el evento a n8n mediante un webhook.
- n8n identifica el contacto y extrae el mensaje.
- El modelo de OpenAI recibe el texto y las instrucciones.
- La memoria, cuando está configurada, recupera el contexto de la sesión.
- n8n recibe la respuesta generada.
- Z-API envía el texto de vuelta por WhatsApp.
Z-API ofrece una API REST y webhooks para interactuar con WhatsApp y recibir eventos del número conectado.
¿Qué herramientas necesitas?
Para reproducir esta arquitectura, necesitas una instancia de Z-API, una cuenta de n8n y credenciales de OpenAI.
| Componente | Función | Información necesaria |
|---|---|---|
| Z-API | Recibir y enviar mensajes | Instance ID, Token y, si está habilitado, Client Token |
| n8n | Orquestar eventos e integraciones | Workflow y URL HTTPS para webhook |
| OpenAI | Interpretar y generar respuestas | API Key y modelo |
| Memoria | Mantener contexto entre interacciones | Identificador de sesión y configuración de memoria |
| CRM/sistema interno | Consultar o registrar datos | API o credenciales correspondientes |
Z-API también cuenta con un community node para n8n, que puede simplificar las operaciones de envío. Como alternativa, es posible utilizar el node HTTP Request con el endpoint send-text de la API.
En n8n Cloud, la disponibilidad de community nodes depende de las reglas de verificación de la plataforma. En entornos self-hosted, pueden instalarse directamente.
¿Cómo configurar la recepción de mensajes con Z-API?
El primer paso es crear un flujo en n8n que pueda recibir solicitudes externas. Agrega un node Webhook, configura el método como POST y copia la URL generada.
n8n ofrece una URL de prueba y otra de producción. Durante el desarrollo, utiliza la URL de prueba para inspeccionar los datos recibidos. Después de publicar el workflow, utiliza la URL de producción.
En Z-API, el webhook de recepción se configura mediante una solicitud PUT a update-webhook-received. La URL informada debe utilizar HTTPS.
Por ejemplo:
curl --request PUT \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/update-webhook-received \
--header 'Client-Token: TU_CLIENT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"value": "https://tu-n8n.com/webhook/whatsapp-receive"
}'
Sustituye los valores por las credenciales y la URL de tu propia instancia. Nunca publiques tokens en artículos, repositorios o capturas de pantalla.
Ajusta los filtros antes de probar
Si tu chatbot no necesita procesar mensajes enviados por el propio número conectado, desactiva esa notificación. Z-API dispone del endpoint update-notify-sent-by-me para controlar este comportamiento.
Esto evita que el bot procese su propia respuesta y entre en un bucle de mensajes.
Para ignorar grupos, el webhook incluye el atributo isGroup. En n8n, puedes añadir un filtro para permitir que el flujo continúe solo cuando isGroup sea false.
Los filtros deben adaptarse al caso de uso: un chatbot de atención individual puede ignorar grupos, mientras que otras automatizaciones pueden necesitar procesarlos.
¿Todavía no conoces todas las posibilidades de Z-API? Lee nuestra guía sobre la API oficial de WhatsApp frente a la Z-API y descubre cómo puedes utilizar la API de Z-API en tus automatizaciones.
¿Cómo procesar el payload recibido en n8n?
Después del Webhook, puedes agregar un node Code en JavaScript para transformar el evento recibido en una estructura predecible.
El webhook de Z-API incluye campos como teléfono, identificador del mensaje, timestamp, origen y tipo de contenido. En los mensajes de texto, el contenido aparece en text.message.
Un ejemplo de normalización sería:
const body = $json.body ?? $json;
return [{
json: {
phone: body.phone,
text: body.text?.message?.trim() ?? "",
messageId: body.messageId,
timestamp: body.momment,
fromMe: body.fromMe,
isGroup: body.isGroup,
raw: body
}
}];
Los campos phone, messageId, momment, fromMe e isGroup forman parte del callback documentado por Z-API.
Este ejemplo contempla mensajes de texto. Las imágenes, audios, videos, documentos y otros tipos de contenido tienen estructuras propias y deben tratarse de acuerdo con el payload recibido.
Después de la normalización, utiliza nodes de filtro para interrumpir el flujo cuando no haya teléfono o texto, cuando fromMe sea true o cuando el evento no corresponda al caso de uso.
Validar el payload antes de llamar a OpenAI ayuda a evitar procesamiento innecesario, errores y bucles de respuesta.
¿Cómo configurar el AI Agent en n8n?
Con los datos ya organizados, agrega el node AI Agent. Este recibe la entrada, utiliza un modelo de chat y puede ejecutar herramientas para realizar tareas.
En las versiones actuales de n8n, el AI Agent funciona como Tools Agent y necesita tener al menos una herramienta conectada.
Para un chatbot que solo genera respuestas, un Basic LLM Chain puede ser suficiente. Si necesitas consultar pedidos, agendas o sistemas internos, utiliza AI Agent con las tools y permisos adecuados.
Conecta el modelo de chat de OpenAI
Agrega el OpenAI Chat Model, configura tu API Key y selecciona un modelo disponible.
El video puede utilizar un modelo específico, pero la elección debe considerar costo, velocidad y complejidad de la atención, ya que los modelos disponibles cambian con el tiempo. OpenAI publica las opciones actuales y sus precios en la documentación de la API.
Los modelos más económicos pueden funcionar bien para FAQs y clasificación inicial, mientras que tareas más complejas pueden requerir modelos con mayor capacidad.
¿Cómo escribir el prompt de sistema?
El prompt define el objetivo, comportamiento, límites y criterios de derivación del chatbot.
Por ejemplo:
Eres el asistente virtual de Flor & Casa, una floristería especializada en ramos y regalos.
Ayuda a los clientes a elegir productos e informa plazos y horarios únicamente cuando esos datos estén disponibles.
Responde en Español neutro, con claridad y de forma objetiva.
No inventes precios, stock ni plazos.
Para pagos, modificaciones de pedidos, reclamaciones o solicitudes de atención humana, deriva la conversación al equipo.
No afirmes que una acción fue realizada sin confirmación del sistema.
La misma estructura puede adaptarse a distintos negocios.
El prompt orienta al modelo, pero los controles críticos deben estar en el workflow y en los permisos de las herramientas, no únicamente en las instrucciones.
¿Cómo agregar memoria a la conversación?
Sin memoria, cada mensaje puede procesarse sin tener en cuenta el contexto de los anteriores. Con memoria, el agente puede considerar interacciones recientes.
En el tutorial, Simple Memory puede utilizar el número de teléfono como clave de sesión:
Session Key: {{$json.phone}}
Context Window Length: 10
El Context Window Length representa la cantidad de interacciones anteriores incluidas en el contexto.
El teléfono es una clave práctica, pero debe normalizarse. En operaciones más grandes, un ID interno del CRM puede ser más adecuado.
La memoria no es una base de conocimiento. Para precios, productos, políticas o datos actualizados, el agente debe consultar fuentes específicas, como APIs, bases de datos o sistemas RAG.
También existe una limitación importante: n8n recomienda no utilizar Simple Memory en workflows de producción ejecutados en queue mode. En ese escenario, es preferible utilizar memoria persistente, como Redis o Postgres.
¿Cómo devolver la respuesta a WhatsApp?
Después de que el AI Agent genere la respuesta, puedes utilizar un node Code para validar o normalizar el texto antes de enviarlo. Este paso es opcional.
El contenido del agente suele aparecer en un campo como output, pero debes confirmar la estructura real del resultado del node antes de mapear la expresión.
En el tutorial, la respuesta puede enviarse mediante el community node Z-API WhatsApp utilizando la operación Send Text Message. El teléfono proviene del webhook y el mensaje de la salida del agente.
También puedes enviar el mensaje directamente a través de la API de Z-API:
curl --request POST \
--url https://api.z-api.io/instances/{instanceId}/token/{token}/send-text \
--header 'Client-Token: TU_CLIENT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"phone": "5511999999999",
"message": "¡Hola! ¿Cómo puedo ayudarte?"
}'
El endpoint send-text utiliza phone y message en el cuerpo de la solicitud. En n8n, estos valores deben venir de los nodes anteriores:
Phone: {{$node["Code – Normalizar entrada"].json.phone}}
Message: {{$node["AI Agent"].json.output}}
Evita dejar el teléfono o el mensaje definidos de forma fija en el workflow. Cuando el envío es aceptado, Z-API devuelve identificadores como zaapId, messageId e id, que pueden almacenarse para correlación, seguimiento de estado y diagnóstico.
¿Cómo probar el chatbot sin enviar mensajes repetidamente?
Durante el desarrollo, puedes capturar el JSON de una ejecución real y reutilizarlo en tus pruebas.
n8n permite fijar datos de un node y reutilizarlos en ejecuciones manuales, evitando nuevas llamadas al sistema externo. (github.com)
Captura un mensaje real, guarda el payload y úsalo para probar la normalización, el prompt y la memoria.
Si el node de envío sigue activo, el workflow podría enviar un mensaje real, por lo que conviene interrumpir el flujo antes de esa etapa cuando solo estés probando la lógica.
Prueba también saludos, preguntas incompletas, solicitudes fuera de alcance, pedidos de atención humana y distintos tipos de medios.
Los mensajes de texto, imagen, audio, video y documento tienen estructuras diferentes. Los archivos recibidos por Z-API permanecen disponibles durante 30 días y requieren un tratamiento específico según el tipo. (developer.z-api.io)
¿Cómo evitar loops y respuestas duplicadas?
Puede producirse un loop cuando el bot procesa un mensaje enviado por su propio número como si fuera una nueva entrada.
Cuando esos eventos no sean necesarios, desactiva notifySentByMe. Z-API ofrece una configuración específica para ello. (developer.z-api.io)
Si necesitas mantener esta opción activa, filtra los eventos con fromMe: true.
También es recomendable almacenar el messageId de los eventos procesados e ignorar los identificadores que ya hayan sido tratados. Esta idempotencia reduce el riesgo de procesamiento duplicado.
Si el cliente envía varios mensajes rápidamente, pueden producirse ejecuciones paralelas. Para flujos más complejos, utiliza colas o controles por sesión para preservar el orden de procesamiento.
¿Cómo crear un fallback humano?
El chatbot necesita una ruta de salida para situaciones en las que no tenga suficiente información, encuentre una excepción o reciba una solicitud de atención humana.
El handoff puede activarse mediante reglas de negocio, solicitudes explícitas, ausencia de datos o fallos repetidos.
Cuando esto ocurra, pausa la automatización de esa conversación y envía el contexto al equipo.
“Entendido. Voy a derivar tu conversación a un miembro del equipo junto con el contexto que ya compartiste.”
El fallback también debe contemplar fallos técnicos. Si el modelo de IA no está disponible y WhatsApp continúa operativo, el flujo puede enviar una respuesta alternativa.
Si el propio envío mediante Z-API falla, registra el error, alerta al equipo y aplica la estrategia de recuperación definida para la operación.
319
¿Has oído hablar de los nuevos precios de WhatsApp Business? Lee nuestro artículo y descubre cómo prepararte para octubre de 2026.
Seguridad: ¿cómo proteger tokens y datos?
Las credenciales de Z-API y OpenAI son información sensible. Nunca publiques tokens en código, capturas de pantalla, videos o repositorios. En n8n, utiliza el sistema de credenciales de la plataforma y controles de acceso adecuados.
En Z-API, el Client Token puede añadir una capa adicional de protección a las instancias. Cuando está habilitado, debe acompañar las solicitudes autorizadas.
El webhook también requiere atención: utiliza HTTPS, minimiza los datos almacenados en logs y evita guardar información personal innecesaria.
Si el chatbot accede a un CRM, pedidos o información financiera, aplica el principio de privilegio mínimo a las credenciales y herramientas disponibles.
El prompt puede indicar al agente que no revele datos internos ni afirme que se han realizado acciones sin confirmación, pero los controles de seguridad deben estar en el workflow y en la capa de permisos, no solo en el prompt.
¿Cómo convertir el chatbot en un agente de ventas y atención?
El flujo básico responde preguntas. Con integraciones adicionales, también puede ejecutar procesos controlados.
Las tools conectadas al AI Agent pueden consultar pedidos, verificar agendas, registrar leads o actualizar oportunidades. n8n orquesta estas integraciones, mientras Z-API mantiene la comunicación con WhatsApp.
| Etapa | Acción | Integración posible |
|---|---|---|
| Captura | Identifica el contacto y su interés | CRM |
| Calificación | Recopila necesidad, plazo y presupuesto | CRM o base de datos |
| Recomendación | Consulta opciones adecuadas | Catálogo o sistema interno |
| Conversión | Envía propuesta, checkout o agenda | ERP, e-commerce o calendario |
| Follow-up | Retoma oportunidades según reglas definidas | CRM y n8n |
| Handoff | Deriva casos complejos | Plataforma de atención |
La IA no debe inventar información operativa: precios, stock, plazos o estados deben provenir del sistema responsable de esos datos.
Métricas para medir el rendimiento
Un chatbot no debe evaluarse únicamente por el volumen de mensajes.
Monitorea indicadores como tasa de resolución automática, handoff, mensajes por atención, costo por resolución, leads calificados y conversiones.
También analiza los fallos: qué preguntas no fueron respondidas, en qué punto los clientes abandonan el flujo y qué solicitudes requieren mayor intervención humana.
Estos datos ayudan a mejorar el prompt, la memoria, las integraciones y la experiencia general.
| Indicador | Qué revela |
|---|---|
| Tasa de resolución automática | Cuánto resuelve el chatbot sin intervención humana |
| Handoff | Qué solicitudes requieren atención humana |
| Mensajes por atención | Eficiencia del flujo |
| Tiempo de respuesta | Agilidad de la operación |
| Errores técnicos | Confiabilidad del workflow |
| Leads calificados | Contribución a ventas |
| Conversión por recorrido | Resultado comercial |
| Costo por resolución | Viabilidad de la automatización |
Errores que debes evitar
- El primer error es comenzar por el prompt sin definir el proceso. Antes de elegir el modelo, determina qué problema necesitas resolver y qué datos serán necesarios.
- El segundo es exponer credenciales. Los tokens publicados pueden permitir accesos no autorizados a tus APIs.
- El tercero es no filtrar los mensajes enviados por el propio número cuando esos eventos están habilitados, lo que puede generar loops y respuestas duplicadas.
- El cuarto es mantener demasiado contexto. Un historial excesivo aumenta los costos y puede hacer que el modelo considere información antigua o irrelevante.
- El quinto es dejar a la IA sin una salida hacia atención humana. Cuando no pueda resolver una situación, el flujo debe derivar la conversación.
- El sexto es no registrar lo ocurrido. Los IDs, estados y logs son esenciales para diagnosticar fallos y monitorear el chatbot.
Resumen paso a paso
Para poner el flujo en funcionamiento:
- Conecta WhatsApp a una instancia de Z-API.
- Crea un workflow en n8n con un Webhook POST.
- Configura el webhook de recepción en Z-API.
- Ajusta
notifySentByMey los filtros necesarios. - Captura un payload real para realizar pruebas.
- Normaliza el teléfono, texto, ID y timestamp.
- Configura el modelo de OpenAI.
- Utiliza una chain para respuestas simples o AI Agent con tools para ejecutar acciones.
- Configura la memoria con una clave de sesión.
- Agrega el envío mediante Z-API o HTTP Request.
- Prueba errores, duplicidades y handoff humano.
- Publica y monitorea logs, estados y métricas.
Lleva tu operación de WhatsApp al siguiente nivel
Crear un chatbot con IA para WhatsApp utilizando n8n, Z-API y OpenAI permite transformar conversaciones en flujos automatizados e integrados con los sistemas de la empresa.
La arquitectura básica combina webhook, procesamiento de datos, un modelo de IA, memoria y envío de respuestas. A partir de ahí, es posible conectar CRM, e-commerce, agendas, ERP y bases de conocimiento.
Cuando existan tools autorizadas, el agente también puede ejecutar acciones específicas en los sistemas integrados.
El resultado depende menos de simplemente conectar herramientas y más de diseñar una operación bien definida. Prompts claros, memoria controlada, credenciales protegidas, prevención de loops, logs, handoff humano y métricas de rendimiento hacen que el flujo sea más confiable.
Si tu empresa quiere automatizar la atención, calificar leads o conectar WhatsApp con sus sistemas internos, Z-API ofrece API y webhooks para integrar el canal con tus automatizaciones.
Haz clic en el banner de abajo, crea tu cuenta de Z-API y conecta WhatsApp con tus flujos de automatización.
Especialista nas áreas de SEO e Copywriting há mais de oito anos, focado em estratégias de posicionamento orgânico (SEO, GEO e AEO) e entrega de conteúdo relevante para os leitores. No Z-API, atuo na criação de conteúdo estratégico para impulsionar a performance digital da marca e ofertar artigos com conhecimentos úteis para os usuários.

