{"id":11016,"date":"2026-09-23T17:31:08","date_gmt":"2026-09-23T20:31:08","guid":{"rendered":"https:\/\/z-api.io\/blog\/?p=11016"},"modified":"2026-09-23T17:32:26","modified_gmt":"2026-09-23T20:32:26","slug":"como-crear-un-chatbot-de-whatsapp-con-ia-usando-n8n-z-api-chatgpt","status":"publish","type":"post","link":"https:\/\/z-api.io\/blog\/es\/como-crear-un-chatbot-de-whatsapp-con-ia-usando-n8n-z-api-chatgpt\/","title":{"rendered":"C\u00f3mo crear un chatbot de WhatsApp con IA usando n8n + Z-API + ChatGPT"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Crear un chatbot con IA para WhatsApp dej\u00f3 de ser un proyecto exclusivo de grandes equipos de desarrollo. Con una API de mensajer\u00eda, una plataforma de automatizaci\u00f3n y un modelo de lenguaje, es posible construir flujos capaces de recibir preguntas, interpretar el contexto y responder autom\u00e1ticamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta gu\u00eda, <strong>aprender\u00e1s c\u00f3mo estructurar un chatbot con IA utilizando n8n, Z-API y ChatGPT<\/strong>. El flujo presentado est\u00e1 basado en el tutorial en video indicado para este contenido y fue complementado con informaci\u00f3n de la documentaci\u00f3n t\u00e9cnica de las herramientas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La arquitectura es sencilla: <strong>Z-API conecta el n\u00famero de WhatsApp con el sistema; n8n recibe los eventos y orquesta el flujo; y la IA interpreta los mensajes y genera las respuestas<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La memoria de conversaci\u00f3n permite que el chatbot tenga en cuenta interacciones anteriores, mientras que los webhooks y las configuraciones de env\u00edo hacen que la respuesta vuelva al cliente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El resultado va m\u00e1s all\u00e1 de una respuesta autom\u00e1tica basada en palabras clave. Se convierte en una operaci\u00f3n conversacional que puede integrarse con CRM, e-commerce, agendas, ERP, bases de conocimiento y sistemas internos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es y c\u00f3mo funciona un chatbot de WhatsApp con IA?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los bots tradicionales suelen depender de men\u00fas, palabras clave y rutas predefinidas. En cambio, un chatbot conectado a un modelo de lenguaje puede <strong>interpretar preguntas en lenguaje natural y generar respuestas m\u00e1s flexibles<\/strong>.<\/p><div class=\"advads-blog-ads-no-post advads-entity-placement\" style=\"text-align: center;\" id=\"advads-3505145177\"><div id=\"advads-4285333502\"><a href=\"https:\/\/hubs.li\/Q04pCy0Y0\" target=\"_blank\" aria-label=\"Banner_001\"><img src=\"https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_001.jpg\" alt=\"\"  srcset=\"https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_001.jpg 1200w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_001-300x88.jpg 300w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_001-1024x299.jpg 1024w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_001-768x224.jpg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" width=\"1200\" height=\"350\"   \/><\/a><\/div><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa dejar que la IA responda sin controles. Un chatbot profesional necesita un objetivo claro, contexto, l\u00edmites, fuentes confiables y reglas de derivaci\u00f3n hacia un agente humano.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el flujo de este tutorial:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>El cliente env\u00eda un mensaje por WhatsApp.<\/li>\n\n\n\n<li>Z-API env\u00eda el evento a n8n mediante un webhook.<\/li>\n\n\n\n<li>n8n identifica el contacto y extrae el mensaje.<\/li>\n\n\n\n<li>El modelo de OpenAI recibe el texto y las instrucciones.<\/li>\n\n\n\n<li>La memoria, cuando est\u00e1 configurada, recupera el contexto de la sesi\u00f3n.<\/li>\n\n\n\n<li>n8n recibe la respuesta generada.<\/li>\n\n\n\n<li>Z-API env\u00eda el texto de vuelta por WhatsApp.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/z-api.io\/es\" target=\"_blank\" rel=\"noreferrer noopener\">Z-API<\/a> ofrece una API REST y webhooks para interactuar con WhatsApp y recibir eventos del n\u00famero conectado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 herramientas necesitas?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para reproducir esta arquitectura, necesitas una instancia de Z-API, una cuenta de n8n y credenciales de OpenAI.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Componente<\/strong><\/th><th><strong>Funci\u00f3n<\/strong><\/th><th><strong>Informaci\u00f3n necesaria<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>Z-API<\/strong><\/td><td>Recibir y enviar mensajes<\/td><td>Instance ID, Token y, si est\u00e1 habilitado, Client Token<\/td><\/tr><tr><td><strong>n8n<\/strong><\/td><td>Orquestar eventos e integraciones<\/td><td>Workflow y URL HTTPS para webhook<\/td><\/tr><tr><td><strong>OpenAI<\/strong><\/td><td>Interpretar y generar respuestas<\/td><td>API Key y modelo<\/td><\/tr><tr><td><strong>Memoria<\/strong><\/td><td>Mantener contexto entre interacciones<\/td><td>Identificador de sesi\u00f3n y configuraci\u00f3n de memoria<\/td><\/tr><tr><td><strong>CRM\/sistema interno<\/strong><\/td><td>Consultar o registrar datos<\/td><td>API o credenciales correspondientes<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Z-API tambi\u00e9n cuenta con un <strong>community node para n8n<\/strong>, que puede simplificar las operaciones de env\u00edo. Como alternativa, es posible utilizar el node HTTP Request con el endpoint <code>send-text<\/code> de la API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En <a href=\"https:\/\/app.n8n.cloud\/login\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>n8n Cloud<\/strong><\/a>, la disponibilidad de community nodes depende de las reglas de verificaci\u00f3n de la plataforma. En entornos self-hosted, pueden instalarse directamente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo configurar la recepci\u00f3n de mensajes con Z-API?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El primer paso es crear un flujo en n8n que pueda recibir solicitudes externas. Agrega un node <strong>Webhook<\/strong>, configura el m\u00e9todo como POST y copia la URL generada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">n8n ofrece una URL de prueba y otra de producci\u00f3n. Durante el desarrollo, utiliza la URL de prueba para inspeccionar los datos recibidos. Despu\u00e9s de publicar el workflow, utiliza la URL de producci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Z-API, el webhook de recepci\u00f3n se configura mediante una solicitud PUT a <code>update-webhook-received<\/code>. <strong>La URL informada debe utilizar HTTPS<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --request PUT \\\n  --url https:\/\/api.z-api.io\/instances\/{instanceId}\/token\/{token}\/update-webhook-received \\\n  --header 'Client-Token: TU_CLIENT_TOKEN' \\\n  --header 'Content-Type: application\/json' \\\n  --data '{\n    \"value\": \"https:\/\/tu-n8n.com\/webhook\/whatsapp-receive\"\n  }'\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Sustituye los valores por las credenciales y la URL de tu propia instancia. <strong>Nunca publiques tokens en art\u00edculos, repositorios o capturas de pantalla<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ajusta los filtros antes de probar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu chatbot no necesita procesar mensajes enviados por el propio n\u00famero conectado, desactiva esa notificaci\u00f3n. Z-API dispone del endpoint <code>update-notify-sent-by-me<\/code> para controlar este comportamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto evita que el bot procese su propia respuesta y entre en un bucle de mensajes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ignorar grupos, el webhook incluye el atributo <code>isGroup<\/code>. En n8n, puedes a\u00f1adir un filtro para permitir que el flujo contin\u00fae solo cuando <strong><code>isGroup<\/code> sea <code>false<\/code><\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los filtros deben adaptarse al caso de uso: <strong>un chatbot de atenci\u00f3n individual puede ignorar grupos, mientras que otras automatizaciones pueden necesitar procesarlos<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfTodav\u00eda no conoces todas las posibilidades de Z-API? <strong><a href=\"https:\/\/z-api.io\/blog\/es\/api-oficial-de-whatsapp-vs-z-api-diferencias-costos-y-riesgos-en-2026\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lee nuestra gu\u00eda sobre la API oficial de WhatsApp frente a la Z-API y descubre c\u00f3mo puedes utilizar la API de Z-API en tus automatizaciones.<\/a><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo procesar el payload recibido en n8n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s del Webhook, <strong>puedes agregar un node Code en JavaScript para transformar el evento recibido en una estructura predecible<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El webhook de Z-API incluye campos como tel\u00e9fono, identificador del mensaje, timestamp, origen y tipo de contenido. En los mensajes de texto, el contenido aparece en <code>text.message<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un ejemplo de normalizaci\u00f3n ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>const body = $json.body ?? $json;\n\nreturn &#091;{\n  json: {\n    phone: body.phone,\n    text: body.text?.message?.trim() ?? \"\",\n    messageId: body.messageId,\n    timestamp: body.momment,\n    fromMe: body.fromMe,\n    isGroup: body.isGroup,\n    raw: body\n  }\n}];\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Los campos <code>phone<\/code>, <code>messageId<\/code>, <code>momment<\/code>, <code>fromMe<\/code> e <code>isGroup<\/code> forman parte del callback documentado por Z-API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Este ejemplo contempla mensajes de texto.<\/strong> Las im\u00e1genes, audios, videos, documentos y otros tipos de contenido tienen estructuras propias y deben tratarse de acuerdo con el payload recibido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de la normalizaci\u00f3n, utiliza nodes de filtro para interrumpir el flujo cuando no haya tel\u00e9fono o texto, cuando <code>fromMe<\/code> sea <code>true<\/code> o cuando el evento no corresponda al caso de uso.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Validar el payload antes de llamar a OpenAI ayuda a evitar procesamiento innecesario, errores y bucles de respuesta.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo configurar el AI Agent en n8n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Con los datos ya organizados, agrega el node <strong>AI Agent<\/strong>. Este recibe la entrada, utiliza un modelo de chat y puede ejecutar herramientas para realizar tareas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En las versiones actuales de n8n, el AI Agent funciona como <strong>Tools Agent y necesita tener al menos una herramienta conectada<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conecta el modelo de chat de OpenAI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Agrega el <strong>OpenAI Chat Model<\/strong>, configura tu API Key y selecciona un modelo disponible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El video puede utilizar un modelo espec\u00edfico, <strong>pero la elecci\u00f3n debe considerar costo, velocidad y complejidad de la atenci\u00f3n<\/strong>, ya que los modelos disponibles cambian con el tiempo. OpenAI publica las opciones actuales y sus precios en la documentaci\u00f3n de la API.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los modelos m\u00e1s econ\u00f3micos pueden funcionar bien para FAQs y clasificaci\u00f3n inicial, mientras que tareas m\u00e1s complejas pueden requerir modelos con mayor capacidad.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo escribir el prompt de sistema?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El prompt define el <strong>objetivo, comportamiento, l\u00edmites y criterios de derivaci\u00f3n<\/strong> del chatbot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Eres el asistente virtual de Flor &amp; Casa, una florister\u00eda especializada en ramos y regalos.<br>Ayuda a los clientes a elegir productos e informa plazos y horarios \u00fanicamente cuando esos datos est\u00e9n disponibles.<br>Responde en Espa\u00f1ol neutro, con claridad y de forma objetiva.<br>No inventes precios, stock ni plazos.<br>Para pagos, modificaciones de pedidos, reclamaciones o solicitudes de atenci\u00f3n humana, deriva la conversaci\u00f3n al equipo.<br>No afirmes que una acci\u00f3n fue realizada sin confirmaci\u00f3n del sistema.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">La misma estructura puede adaptarse a distintos negocios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>El prompt orienta al modelo, pero los controles cr\u00edticos deben estar en el workflow y en los permisos de las herramientas<\/strong>, no \u00fanicamente en las instrucciones.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo agregar memoria a la conversaci\u00f3n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sin memoria, cada mensaje puede procesarse sin tener en cuenta el contexto de los anteriores. Con memoria, el agente puede considerar interacciones recientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el tutorial, <strong>Simple Memory<\/strong> puede utilizar el n\u00famero de tel\u00e9fono como clave de sesi\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Session Key: {{$json.phone}}\n\nContext Window Length: 10\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El Context Window Length <strong>representa la cantidad de interacciones anteriores incluidas en el contexto<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El tel\u00e9fono es una clave pr\u00e1ctica, pero debe normalizarse. En operaciones m\u00e1s grandes, un ID interno del CRM puede ser m\u00e1s adecuado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>La memoria no es una base de conocimiento<\/strong>. Para precios, productos, pol\u00edticas o datos actualizados, el agente debe consultar fuentes espec\u00edficas, como APIs, bases de datos o sistemas RAG.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n existe una limitaci\u00f3n importante: <strong>n8n recomienda no utilizar Simple Memory en workflows de producci\u00f3n ejecutados en queue mode<\/strong>. En ese escenario, es preferible utilizar memoria persistente, como Redis o Postgres.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo devolver la respuesta a WhatsApp?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de que el AI Agent genere la respuesta, puedes utilizar un node <strong>Code<\/strong> para validar o normalizar el texto antes de enviarlo. Este paso es opcional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El contenido del agente suele aparecer en un campo como <code>output<\/code>, pero debes confirmar la estructura real del resultado del node antes de mapear la expresi\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En el tutorial, <strong>la respuesta puede enviarse mediante el community node Z-API WhatsApp utilizando la operaci\u00f3n Send Text Message<\/strong>. El tel\u00e9fono proviene del webhook y el mensaje de la salida del agente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes enviar el mensaje directamente a trav\u00e9s de la API de Z-API:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --request POST \\\n  --url https:\/\/api.z-api.io\/instances\/{instanceId}\/token\/{token}\/send-text \\\n  --header 'Client-Token: TU_CLIENT_TOKEN' \\\n  --header 'Content-Type: application\/json' \\\n  --data '{\n    \"phone\": \"5511999999999\",\n    \"message\": \"\u00a1Hola! \u00bfC\u00f3mo puedo ayudarte?\"\n  }'\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El endpoint <code>send-text<\/code> utiliza <code>phone<\/code> y <code>message<\/code> en el cuerpo de la solicitud. En n8n, estos valores deben venir de los nodes anteriores:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Phone: {{$node&#091;\"Code \u2013 Normalizar entrada\"].json.phone}}\n\nMessage: {{$node&#091;\"AI Agent\"].json.output}}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Evita dejar el tel\u00e9fono o el mensaje definidos de forma fija en el workflow<\/strong>. Cuando el env\u00edo es aceptado, Z-API devuelve identificadores como <code>zaapId<\/code>, <code>messageId<\/code> e <code>id<\/code>, que pueden almacenarse para <strong>correlaci\u00f3n, seguimiento de estado y diagn\u00f3stico<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo probar el chatbot sin enviar mensajes repetidamente?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Durante el desarrollo, puedes capturar el JSON de una ejecuci\u00f3n real y reutilizarlo en tus pruebas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">n8n permite <strong>fijar datos de un node y reutilizarlos en ejecuciones manuales<\/strong>, evitando nuevas llamadas al sistema externo. (<a href=\"https:\/\/github.com\/n8n-io\/n8n-docs\/blob\/main\/docs\/build\/work-with-data\/pin-and-mock-data.md?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>github.com<\/strong><\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Captura un mensaje real, guarda el payload y \u00fasalo para probar la normalizaci\u00f3n, el prompt y la memoria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Si el node de env\u00edo sigue activo, el workflow podr\u00eda enviar un mensaje real<\/strong>, por lo que conviene interrumpir el flujo antes de esa etapa cuando solo est\u00e9s probando la l\u00f3gica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prueba tambi\u00e9n saludos, preguntas incompletas, solicitudes fuera de alcance, pedidos de atenci\u00f3n humana y distintos tipos de medios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Los mensajes de texto, imagen, audio, video y documento tienen estructuras diferentes. <strong>Los archivos recibidos por Z-API permanecen disponibles durante 30 d\u00edas y requieren un tratamiento espec\u00edfico seg\u00fan el tipo<\/strong>. (<a href=\"https:\/\/developer.z-api.io\/en\/tips\/file-expiration?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>developer.z-api.io<\/strong><\/a>)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo evitar loops y respuestas duplicadas?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Puede producirse un loop cuando el bot procesa un mensaje enviado por su propio n\u00famero como si fuera una nueva entrada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando esos eventos no sean necesarios, desactiva <code>notifySentByMe<\/code>. Z-API ofrece una configuraci\u00f3n espec\u00edfica para ello. (<a href=\"https:\/\/developer.z-api.io\/en\/webhooks\/update-notify-sent-by-me?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>developer.z-api.io<\/strong><\/a>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si necesitas mantener esta opci\u00f3n activa, filtra los eventos con <code>fromMe: true<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n es recomendable almacenar el <code>messageId<\/code> de los eventos procesados e <strong>ignorar los identificadores que ya hayan sido tratados<\/strong>. Esta idempotencia reduce el riesgo de procesamiento duplicado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el cliente env\u00eda varios mensajes r\u00e1pidamente, pueden producirse ejecuciones paralelas. <strong>Para flujos m\u00e1s complejos, utiliza colas o controles por sesi\u00f3n para preservar el orden de procesamiento<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo crear un fallback humano?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El chatbot necesita una ruta de salida para situaciones en las que no tenga suficiente informaci\u00f3n, encuentre una excepci\u00f3n o reciba una solicitud de atenci\u00f3n humana.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El handoff puede activarse mediante <strong>reglas de negocio, solicitudes expl\u00edcitas, ausencia de datos o fallos repetidos<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando esto ocurra, pausa la automatizaci\u00f3n de esa conversaci\u00f3n y env\u00eda el contexto al equipo.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u201cEntendido. Voy a derivar tu conversaci\u00f3n a un miembro del equipo junto con el contexto que ya compartiste.\u201d<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">El fallback tambi\u00e9n debe contemplar fallos t\u00e9cnicos. Si el modelo de IA no est\u00e1 disponible y WhatsApp contin\u00faa operativo, el flujo puede enviar una respuesta alternativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el propio env\u00edo mediante Z-API falla, <strong>registra el error, alerta al equipo y aplica la estrategia de recuperaci\u00f3n definida para la operaci\u00f3n<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">319<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfHas o\u00eddo hablar de los nuevos precios de WhatsApp Business? <a href=\"https:\/\/z-api.io\/blog\/es\/cobro-por-mensaje-en-whatsapp-como-prepararse-para-octubre-de-2026\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lee nuestro art\u00edculo y descubre c\u00f3mo prepararte para octubre de 2026.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Seguridad: \u00bfc\u00f3mo proteger tokens y datos?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Las credenciales de Z-API y OpenAI son informaci\u00f3n sensible. <strong>Nunca publiques tokens en c\u00f3digo, capturas de pantalla, videos o repositorios<\/strong>. En n8n, utiliza el sistema de credenciales de la plataforma y controles de acceso adecuados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Z-API, el Client Token puede a\u00f1adir una capa adicional de protecci\u00f3n a las instancias. Cuando est\u00e1 habilitado, debe acompa\u00f1ar las solicitudes autorizadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El webhook tambi\u00e9n requiere atenci\u00f3n: utiliza HTTPS, minimiza los datos almacenados en logs y evita guardar informaci\u00f3n personal innecesaria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el chatbot accede a un CRM, pedidos o informaci\u00f3n financiera, <strong>aplica el principio de privilegio m\u00ednimo a las credenciales y herramientas disponibles<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El prompt puede indicar al agente que no revele datos internos ni afirme que se han realizado acciones sin confirmaci\u00f3n, pero los controles de seguridad deben estar en el workflow y en la capa de permisos, no solo en el prompt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo convertir el chatbot en un agente de ventas y atenci\u00f3n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">El flujo b\u00e1sico responde preguntas. Con integraciones adicionales, tambi\u00e9n puede <strong>ejecutar procesos controlados<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las tools conectadas al AI Agent pueden consultar pedidos, verificar agendas, registrar leads o actualizar oportunidades. <a href=\"https:\/\/n8n.io\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>n8n<\/strong><\/a> orquesta estas integraciones, mientras Z-API mantiene la comunicaci\u00f3n con WhatsApp.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Etapa<\/strong><\/th><th><strong>Acci\u00f3n<\/strong><\/th><th><strong>Integraci\u00f3n posible<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Captura<\/td><td>Identifica el contacto y su inter\u00e9s<\/td><td>CRM<\/td><\/tr><tr><td>Calificaci\u00f3n<\/td><td>Recopila necesidad, plazo y presupuesto<\/td><td>CRM o base de datos<\/td><\/tr><tr><td>Recomendaci\u00f3n<\/td><td>Consulta opciones adecuadas<\/td><td>Cat\u00e1logo o sistema interno<\/td><\/tr><tr><td>Conversi\u00f3n<\/td><td>Env\u00eda propuesta, checkout o agenda<\/td><td>ERP, e-commerce o calendario<\/td><\/tr><tr><td>Follow-up<\/td><td>Retoma oportunidades seg\u00fan reglas definidas<\/td><td>CRM y n8n<\/td><\/tr><tr><td>Handoff<\/td><td>Deriva casos complejos<\/td><td>Plataforma de atenci\u00f3n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">La IA no debe inventar informaci\u00f3n operativa: <strong>precios, stock, plazos o estados deben provenir del sistema responsable de esos datos<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">M\u00e9tricas para medir el rendimiento<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un chatbot no debe evaluarse \u00fanicamente por el volumen de mensajes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Monitorea indicadores como tasa de resoluci\u00f3n autom\u00e1tica, handoff, mensajes por atenci\u00f3n, costo por resoluci\u00f3n, leads calificados y conversiones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n analiza los fallos: <strong>qu\u00e9 preguntas no fueron respondidas, en qu\u00e9 punto los clientes abandonan el flujo y qu\u00e9 solicitudes requieren mayor intervenci\u00f3n humana<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estos datos ayudan a mejorar el prompt, la memoria, las integraciones y la experiencia general.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Indicador<\/strong><\/th><th><strong>Qu\u00e9 revela<\/strong><\/th><\/tr><\/thead><tbody><tr><td>Tasa de resoluci\u00f3n autom\u00e1tica<\/td><td>Cu\u00e1nto resuelve el chatbot sin intervenci\u00f3n humana<\/td><\/tr><tr><td>Handoff<\/td><td>Qu\u00e9 solicitudes requieren atenci\u00f3n humana<\/td><\/tr><tr><td>Mensajes por atenci\u00f3n<\/td><td>Eficiencia del flujo<\/td><\/tr><tr><td>Tiempo de respuesta<\/td><td>Agilidad de la operaci\u00f3n<\/td><\/tr><tr><td>Errores t\u00e9cnicos<\/td><td>Confiabilidad del workflow<\/td><\/tr><tr><td>Leads calificados<\/td><td>Contribuci\u00f3n a ventas<\/td><\/tr><tr><td>Conversi\u00f3n por recorrido<\/td><td>Resultado comercial<\/td><\/tr><tr><td>Costo por resoluci\u00f3n<\/td><td>Viabilidad de la automatizaci\u00f3n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Errores que debes evitar<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>El primer error es comenzar por el prompt sin definir el proceso. <strong>Antes de elegir el modelo, determina qu\u00e9 problema necesitas resolver y qu\u00e9 datos ser\u00e1n necesarios<\/strong>.<\/li>\n\n\n\n<li>El segundo es exponer credenciales. Los tokens publicados pueden permitir accesos no autorizados a tus APIs.<\/li>\n\n\n\n<li>El tercero es no filtrar los mensajes enviados por el propio n\u00famero cuando esos eventos est\u00e1n habilitados, lo que puede generar loops y respuestas duplicadas.<\/li>\n\n\n\n<li>El cuarto es mantener demasiado contexto. Un historial excesivo aumenta los costos y puede hacer que el modelo considere informaci\u00f3n antigua o irrelevante.<\/li>\n\n\n\n<li>El quinto es dejar a la IA sin una salida hacia atenci\u00f3n humana. Cuando no pueda resolver una situaci\u00f3n, el flujo debe derivar la conversaci\u00f3n.<\/li>\n\n\n\n<li>El sexto es no registrar lo ocurrido. <strong>Los IDs, estados y logs son esenciales para diagnosticar fallos y monitorear el chatbot<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Resumen paso a paso<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para poner el flujo en funcionamiento:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Conecta WhatsApp a una instancia de Z-API.<\/li>\n\n\n\n<li>Crea un workflow en n8n con un Webhook POST.<\/li>\n\n\n\n<li>Configura el webhook de recepci\u00f3n en Z-API.<\/li>\n\n\n\n<li>Ajusta <code>notifySentByMe<\/code> y los filtros necesarios.<\/li>\n\n\n\n<li>Captura un payload real para realizar pruebas.<\/li>\n\n\n\n<li>Normaliza el tel\u00e9fono, texto, ID y timestamp.<\/li>\n\n\n\n<li>Configura el modelo de OpenAI.<\/li>\n\n\n\n<li>Utiliza una chain para respuestas simples o AI Agent con tools para ejecutar acciones.<\/li>\n\n\n\n<li>Configura la memoria con una clave de sesi\u00f3n.<\/li>\n\n\n\n<li>Agrega el env\u00edo mediante Z-API o HTTP Request.<\/li>\n\n\n\n<li>Prueba errores, duplicidades y handoff humano.<\/li>\n\n\n\n<li>Publica y monitorea logs, estados y m\u00e9tricas.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Lleva tu operaci\u00f3n de WhatsApp al siguiente nivel<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Crear un chatbot con IA para WhatsApp utilizando n8n, Z-API y OpenAI <strong>permite transformar conversaciones en flujos automatizados e integrados con los sistemas de la empresa<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La arquitectura b\u00e1sica combina webhook, procesamiento de datos, un modelo de IA, memoria y env\u00edo de respuestas. A partir de ah\u00ed, es posible conectar CRM, e-commerce, agendas, ERP y bases de conocimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando existan tools autorizadas, el agente tambi\u00e9n puede ejecutar acciones espec\u00edficas en los sistemas integrados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El resultado depende menos de simplemente conectar herramientas y m\u00e1s de dise\u00f1ar una operaci\u00f3n bien definida. <strong>Prompts claros, memoria controlada, credenciales protegidas, prevenci\u00f3n de loops, logs, handoff humano y m\u00e9tricas de rendimiento<\/strong> hacen que el flujo sea m\u00e1s confiable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu empresa quiere automatizar la atenci\u00f3n, calificar leads o conectar WhatsApp con sus sistemas internos, Z-API ofrece API y webhooks para integrar el canal con tus automatizaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Haz clic en el banner de abajo, crea tu cuenta de Z-API y conecta WhatsApp con tus flujos de automatizaci\u00f3n.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;11016&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;1&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;5&quot;,&quot;greet&quot;:&quot;Avalie este post&quot;,&quot;legend&quot;:&quot;5\\\/5 - (1 voto)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;C\u00f3mo crear un chatbot de WhatsApp con IA usando n8n + Z-API + ChatGPT&quot;,&quot;width&quot;:&quot;142.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 142.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 5px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            5\/5 - (1 voto)    <\/div>\n    <\/div>\n<div class=\"advads-banner-cta advads-entity-placement\" id=\"advads-2445330947\"><div id=\"advads-1653900397\"><a href=\"https:\/\/hubs.li\/Q04pCy0Y0\" target=\"_blank\" aria-label=\"Banner_002\"><img src=\"https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_002.jpg\" alt=\"\"  srcset=\"https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_002.jpg 1200w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_002-300x88.jpg 300w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_002-1024x299.jpg 1024w, https:\/\/z-api.io\/blog\/wp-content\/uploads\/2026\/06\/Banner_002-768x224.jpg 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" width=\"1200\" height=\"350\"   \/><\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Aprende a crear un chatbot de WhatsApp con IA usando n8n, Z-API y OpenAI, con memoria, automatizaciones, integraciones y soporte humano.<\/p>\n","protected":false},"author":16,"featured_media":11017,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[222,207,232],"tags":[246,245],"class_list":["post-11016","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-automatizacion-en-whatsapp","category-api-de-whatsapp-es","category-tutoriales","tag-chatbot-com-ia","tag-chatbot-de-whatsapp"],"_links":{"self":[{"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/posts\/11016","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/comments?post=11016"}],"version-history":[{"count":2,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/posts\/11016\/revisions"}],"predecessor-version":[{"id":11019,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/posts\/11016\/revisions\/11019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/media\/11017"}],"wp:attachment":[{"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/media?parent=11016"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/categories?post=11016"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/z-api.io\/blog\/es\/wp-json\/wp\/v2\/tags?post=11016"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}