https://a.storyblok.com/f/270183/1368x665/86b1ded24b/26jan_dev-blog_ai-recpt-whatsapp.jpg

Construye una recepcionista de WhatsApp AI de 5 nodos con n8n y las herramientas MCP de Vonage

Publicado el January 21, 2026

Tiempo de lectura: 13 minutos

Esta recepcionista de WhatsApp con IA, impulsada por n8n y las herramientas MCP de Vonage, ayuda a automatizar las interacciones con los huéspedes de Airbnb.

Introducción

Dirigir un Airbnb (o cualquier pequeño negocio de hostelería) suele implicar el mismo ciclo de preguntas de los huéspedes. La gente pregunta por el Wi-Fi, la hora de salida, el aparcamiento y, de vez en cuando, algo más urgente que requiere tu atención de inmediato. El objetivo de este tutorial es agilizar esa carga de trabajo mediante la creación de una recepcionista de IA en WhatsApp, que pueda responder a las preguntas rutinarias de forma automática, escalar los problemas graves a través de SMS o llamada de voz, y mantener una simple memoria de las conversaciones anteriores en una hoja de Google. El flujo de trabajo en sí es ligero, ya que solo utiliza cinco nodos core n8n y algunos ayudantes.

Para que esto sea posible, utilizaremos n8n como motor de automatización y como entorno en el que se ejecuta el agente de IA, con el servidor de herramientas MCP de servidor de herramientas MCP de Vonage proporcionando un único punto final para WhatsApp, SMS y llamadas de voz salientes. Un pequeño implementación de Render aloja el puente que conecta n8n con esas herramientas MCP, y Google Sheets sirve como base de datos directa para las propiedades y el historial de huéspedes. Un modelo OpenAI enlaza todo interpretando los mensajes, decidiendo cuándo escalar y llamando a las herramientas adecuadas en los momentos adecuados.

Al final, tendrá un patrón flexible que podrá reutilizar mucho más allá de los alquileres a corto plazo. El mismo flujo de trabajo sirve para recepciones de hoteles, reservas en restaurantes, triaje en el servicio de asistencia informática o cualquier otra situación en la que los mensajes entrantes a veces necesiten respuestas automáticas y a veces requieran un escalado humano.

TL;DR: Encuentra la guía de inicio rápido para este flujo de trabajo en Vonage Community GitHub.

A smartphone screen recording of a WhatsApp conversation with a Vonage business account. The user receives a message that says "Hey, it's your friends from Vonage!" and replies with “Hi,” demonstrating live WhatsApp interactivity triggered by the Vonage Messages API and automated via an n8n workflow.A user receives and replies to a WhatsApp message sent via Vonage and n8n, showcasing real-time two-way messaging in an AI-powered receptionist workflow.

1. Requisitos previos

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

2. Crear una aplicación de Vonage

Para acceder a las API de Vonage, tendremos que crear una aplicación de Vonage que nos permita comunicarnos a través de WhatsApp, SMS y llamadas de Voice.

  • Para crear una aplicación, vaya a la sección Crear una aplicación en el panel de Vonage y define un nombre para tu aplicación.

  • Si tiene intención de utilizar una API que utilice Webhooks, necesitará una clave privada. Haga clic en "Generar clave pública y privada"; la descarga debería iniciarse automáticamente. Guárdela de forma segura; esta clave no puede volver a descargarse si se pierde. Seguirá la convención de nomenclatura private_<id de su aplicación>.key. Esta clave puede utilizarse ahora para autenticar llamadas a la API. Nota: La clave no funcionará hasta que se guarde la aplicación.

  • Elija las funciones que necesite (por ejemplo, Voice, Messages, RTC, etc.) y proporcione los webhooks necesarios (por ejemplo, URL de eventos, URL de respuestas o URL de mensajes entrantes). Estos se describirán en el tutorial.

  • Para guardar e implementar, haz clic en "Generar nueva aplicación" para finalizar la configuración. Tu aplicación ahora está lista para usar con las API de Vonage.

Configuración de la aplicación de Vonage

Deberá activar las funciones de Voz y Mensajes. Para Voice, puede activarla y dejar los campos en blanco. Para Mensajes, tendrá que habilitar los webhooks. Por ahora, sólo agregue marcadores de posición; los actualizaremos con valores n8n más adelante:

  1. Establezca la URL de entrada en https://placeholder.com/inbound.

  2. Establezca la URL de estado en https://placeholder.com/status.

A continuación, vincule su WhatsApp Business (WABA) haciendo clic en la pestaña "Vincular cuentas externas":

Screenshot of the Vonage Messages API dashboard showing the 'n8n-AI-Assistant application. It displays the Application ID, API Key, and status indicating that the WhatsApp number 'Vonage DevRel' is linked with the application. A red 'Unlink' button is visible on the right.Viewing the n8n-AI-Assistant application in the Vonage dashboard with an active WhatsApp number linked.

Asegúrate de tener:

  • ID de aplicación

  • Clave privada (descargada como .key archivo)

  • Clave/secreto API

A continuación, las introduciremos en el servidor de herramientas MCP.

3. Implementar el puente Vonage MCP con Render

Render entra en escena porque n8n espera un simple punto final HTTP público al que pueda llamar para llegar a un servidor MCP. El propio servidor MCP de Vonage se ejecuta como un proceso local y no incluye una pasarela pública, por lo que necesitamos un pequeño servicio "puente" para conectarlo a Internet. Render aloja ese puente para nosotros: ejecuta una pequeña aplicación Node.js que inicia el servidor MCP de Vonage en segundo plano y expone una única URL /mcp con la que n8n puede hablar.

Nota sobre alojamiento y fiabilidad:

En este tutorial, utilizamos el plan gratuito de Render para el puente MCP, lo que significa que el servicio puede dormir cuando está inactivo. Si eso ocurre, el Cliente MCP puede mostrar temporalmente "No se pudo conectar a su servidor MCP" hasta que la instancia se despierte. Puede solucionar esto activando manualmente un nuevo despliegue / reinicio en Render, o actualizando el servicio a un nivel "Starter" de pago para que se mantenga activo. Si lo prefiere, también puede ejecutar el mismo puente Node.js en otros hosts como Railway, un Servidor Privado Virtual (VPS), o su propia infraestructura. El único requisito para n8n es un punto final HTTPS /mcp público.

Despliega un nuevo servicio de renderizado utilizando el plano proporcionado:

  1. Crear un nuevo servicio a partir de este Blueprint.

  2. Añada un nombre para su nuevo servicio (por ejemplo, mcp_tooling-n8n_whatsapp_receptionist).

  3. Seleccione principal para la rama.

  4. Selecciona crear todos como nuevos servicios e ingresa tus credenciales de Vonage desde tu aplicación de Vonage: VONAGE_API_KEY, VONAGE_API_SECRET, VONAGE_APPLICATION_ID, VONAGE_CLAVE_PRIVADA64, VONAGE_NÚMERO_VIRTUAL, VONAGE_NÚMERO_WHATSAPP.

    1. NOTA: VONAGE_PRIVATE_KEY64 es no simplemente su clave privada que fue descargada. Es una clave privada codificada en base64, que puede generar con la herramienta Herramienta Private Key to ENV Variable.

    2. NOTA 2: El MCP_AUTH_TOKEN es un token creado por usted, que el cliente n8n MCP utilizará posteriormente para autenticar las peticiones. Se sugiere utilizar un token seguro y complejo a través de un generador de contraseñas seguras.

Una vez que su Render MCP Bridge esté activo, copie su URL pública (p. ej, https://your-mcp-bridge.onrender.com/mcp). La necesitará en el paso 5, cuando configure el nodo Cliente MCP dentro de su flujo de trabajo n8n.

User interface for deploying a render.yaml file, displaying configurations for vonage-mcp-http-bridge setup with editable text fields.Create a new Render deployment by copying the Blueprint and filling in your configurations.

4. Crear una base de datos simulada con Google Sheets

En nuestro ejemplo, utilizaremos una hoja de cálculo de Google para crear una base de datos rápida y accesible. Google Sheets se utiliza comúnmente para la colaboración y es familiar para los usuarios no técnicos. Pero esto se puede extender fácilmente a Supabase, MongoDB, o cualquier base de datos SQL. Utilizaremos dos hojas: Propiedades y Invitados.

>> Abre y crea un duplicado del ejemplo de base de datos completa en Google Sheets

Creación de una hoja de Google para propiedades

Una propiedad es un anuncio de Airbnb. Contiene unas cuantas columnas, simulando escenarios típicos del mundo real como: check_in, check_out, wifi_ssid (nombre de la red)wifi_contraseña, reglas_casa, instrucciones_de_emergenciay consejos_locales.

Encontrará ejemplos en la hoja de Google anterior.

Creación de una hoja de Google para invitados

Nuestra base de datos tendrá un objeto simple para almacenar el contexto sobre los huéspedes: numero_huésped, historial - esto respaldará nuestro historial de chat, last_seen_at, último_tema, last_severity (baja| media| alta).

Inicialmente, esta hoja está vacía. ¡Con cada ejecución, se actualizará a partir de n8n!

5. Construir el flujo de trabajo del n8n

Ahora llegamos a la parte interesante, añadir nuestros nodos en n8n. Abra su n8n cloud dashboard y crea un nuevo flujo de trabajo. Habilita el Acceso MCP:

User interface showing settings for "Vonage Assistant" with an active toggle, options menu, and "Enable MCP access" highlighted.Enable MCP access for your new n8n assistant.

Este es el esquema general de los nodos que utilizaremos:

1. Webhook - Esto nos permite conectarnos a nuestra aplicación de Vonage y recibir datos entrantes de Vonage, en este caso, WhatsApp.

2. Hojas de cálculo de Google - La función Get Rows nos permite obtener contexto sobre nuestro invitado antes de pasar su mensaje al Agente AI.

4. Agente de IA - El agente de IA, que actúa como el cerebro de la recepcionista y las herramientas MCP de Vonage que puede aprovechar.

5. Nodo de Código - Pequeño script JavaScript para parsear los datos devueltos por el Agente AI y prepararlos para actualizar la BD.

6. Google Sheets - Utilice la función Añadir o Actualizar fila para guardar esta interacción.

Conexión del nodo Webhook

Como activador, seleccione "En llamada webhook". Esto añadirá un nuevo nodo nodo webhook donde tendrás que añadir lo siguiente:

  • Método POST

  • Ruta: /entrada

  • Autenticación: ninguna

  • Active el flujo de trabajo para que n8n le proporcione una URL de producciónpor ejemplo

https://your-n8n.app/webhook/inbound

En tu Aplicación de Vonage (del paso 2, por ejemplo, n8n-AI-Assistant):

  • Actualice la URL de su webhook de entrada a esta URL de producción.

  • Asegúrese de que el método es POST.

Ahora, cuando envíes un mensaje de WhatsApp a tu número de Vonage, n8n se activará. Puedes probarlo abriendo el nodo en n8n y haciendo clic en "Escuchar evento de prueba"Sin embargo, deberás actualizar tu URL para usar la URL de prueba en el panel de Vonage desde n8n en lugar de la URL de producción.

Screenshot of the Inbound Message node configuration in n8n showing the webhook URL, HTTP method (POST), path (/inbound), and response settings. This webhook is used to receive incoming WhatsApp messages from the Vonage API.Configuring an inbound webhook in n8n to receive WhatsApp messages via the Vonage Messages API.

Obtener información de la propiedad Airbnb de DB

Ahora conecta tu nodo webhook a un nuevo nodo de nodo Google Sheets. Primero, conéctate a tu Account de Google. A continuación, seleccione la opción Obtener fila(s) en hoja y configúrela:

  • Nombre del nodo: get_property_info

    • Esto es importante porque se convierte en el nombre de la herramienta que el Agente AI buscará.

  • Documento: n8n Airbnb DB Ejemplo

    • Si ha copiado sin actualizar (o bien su nombre de hoja personalizada).

  • Ficha: Propiedades

  • Filtro: Añada un filtro y establezca Columna en número_huésped y Valor a {{ $json.body.from }} o puede arrastrar desde el panel de entrada y seleccionar la opción de que se devuelve en el cuerpo del Webhook.

  • Active la opción "Salida de datos siempre" en Configuración para que el flujo se ejecute aunque la base de datos esté vacía.

Configure su agente de IA en n8n

El siguiente paso es conectar el nodo Agente AI. Este nodo se convierte en el núcleo de la lógica de la recepcionista. Toma el mensaje entrante de WhatsApp de Vonage y el historial de conversaciones de cualquier huésped, recupera la información de las propiedades del archivo Propiedades y decide si se trata de una situación rutinaria o de algo que deba comunicarse con el anfitrión. Basándose en esa decisión, llamará a las herramientas MCP adecuadas, normalmente para responder a través de WhatsApp, pero cuando sea necesario enviará un SMS o activará una llamada de voz saliente. Todo lo demás en el flujo de trabajo esencialmente alimenta contexto a este nodo o registra lo que produce.

Configurar el modelo de IA

En primer lugar, arrastre un nodo de Agente AI a su flujo de trabajo, conéctelo y, a continuación, configúrelo:

  • Fuente para Prompt (Mensaje de Usuario): Definir a continuación

  • Prompt (Mensaje de usuario):

Guest phone number: {{ $('Inbound Message').item.json.body.from }}

Guest message: {{ $('Inbound Message').item.json.body.text }}

Guest message channel: {{ $('Inbound Message').item.json.body.channel }}

Guest name (if available): {{ $('Inbound Message').item.json.body.profile?.name || '' }}

Host number: {{ $('Inbound Message').item.json.body.from }}  <!-- or a fixed host number later -->

Nota: Estamos utilizando el mismo número para el host y el invitado aquí para simplificar las pruebas. En producción, sustitúyalo por el número real de host.

El sistema convierte al modelo en un recepcionista de WhatsApp/SMS para una propiedad de alquiler. Para cada mensaje entrante del huésped, busca los detalles correctos de la propiedad en Google Sheets cuando es necesario, decide la gravedad del problema (baja/media/alta) y siempre envía una respuesta breve y amistosa al huésped a través de WhatsApp (con conmutación por error de SMS). Entre bastidores, también puede notificar o llamar al anfitrión en caso de problemas de gravedad media o alta, y añade dos etiquetas sencillas (LAST_ISSUE y LAST_SEVERITY) para que n8n pueda hacer un seguimiento de lo que está ocurriendo sin exponer nada de esa lógica interna al huésped.

Agrega las herramientas MCP de Vonage

Una vez seleccionado el modelo, el siguiente paso es dotar al Agente de herramientas a las que pueda llamar. La primera herramienta es el nodo Nodo Cliente MCP que apunta al servidor MCP que desplegó en Render. Configúrelo con el endpoint MCP correcto, establezca el token Bearer al mismo valor que colocó en MCP_AUTH_TOKENy pruebe la conexión. Deberías ver las herramientas disponibles, como whatsapp-enviar-texto-con-sms-failover, SMSy mensaje de voz saliente. Ahora el agente tiene acceso a estas funcionalidades para enviar mensajes y llamadas reales.

Añadir la herramienta get_property_info

La segunda herramienta es el nodo de Google Sheets que lee las Propiedades cámbiale el nombre a get_property_info para que su propósito sea obvio, y adjúntalo como herramienta en la configuración del Agente AI. Esto permite al modelo obtener detalles como instrucciones de Wi-Fi, horarios de entrada y salida, normas de la casa u orientación en caso de emergencia siempre que el huésped lo solicite.

Limpiar la salida del agente con Code Node

Una vez que el Agente AI ha terminado, su salida es una sola cadena grande: la respuesta del huésped más las dos líneas de etiquetas estructuradas (LAST_ISSUE y LAST_SEVERITY). Antes de volver a escribir nada en las Hojas de cálculo de Google, queremos limpiarlo y crear un registro ordenado de la conversación. El nodo Función hace exactamente eso: elimina las líneas de las etiquetas, extrae los valores de las etiquetas y crea una transcripción de texto simple que almacenaremos como historial.

Añadir un nodo nodo 'Código en JavaScript justo después del Agente AI. Copie y pegue el fragmento de JavaScript de GitHub.

El fragmento:

  • Lee la salida bruta del Agente.

  • Se retira última_emisión y última_gravedad del archivo ÚLTIMO_* líneas.

  • Produce una respuesta_agente limpia (lo que el invitado ha visto realmente).

  • Añade esta interacción a cualquier historial existente para el invitado.

  • Añade last_seen_at y número_huésped para que el siguiente nodo pueda insertar la fila de invitados.

Ahora, los datos están "listos para la memoria": un elemento por interacción con el huésped con todos los campos que necesita su hoja de huéspedes.

Escribir nuevos datos en la hoja de invitados

Ahora podemos persistir esa memoria. Añade un último nodo nodo Google Sheetsy para la acción selecciona "Añadir o actualizar fila en hoja". El trabajo de este nodo es encontrar el historial de chat del invitado actual y actualizarlo con la interacción más reciente. Si este es el primer mensaje del invitado, se creará una nueva fila.

Configuración de nodos:

  • Recurso: Hoja dentro del documento

  • Operación: Añadir o actualizar fila

  • Documento: (De la lista) n8n Airbnb DB Ejemplo o el nombre de su hoja

  • Hoja: (De la lista) Invitados

  • Modo de asignación de columnas: Asignar cada columna manualmente

  • Columna en la que debe coincidir: número_huésped

  • Valores a enviar:

  • número_huésped (usar para coincidir): {{ $('Inbound Message').item.json.body.from }}

  • historia: {{ $json.history }}

  • último_visto_en: {{ $json.last_seen_at }}

  • last_issue: {{ $json.last_issue }}

  • last_severity: {{ $json.last_severity }}

¡Y ya está! ¡Ya está!

Pruebe su aplicación

Ahora que tu flujo de trabajo n8n está configurado, ¡puedes probar tu recepcionista virtual! Envíe un WhatsApp y pruebe diferentes casos. Los datos de prueba tienen a propósito 2 propiedades en París y 1 en Nueva York. Vea si puede intentar engañar al agente. El aviso del sistema es sólo un punto de partida; ¡adáptelo a sus necesidades!

Puedes consultar los registros para ver paso a paso qué está ocurriendo exactamente.

A screenshot of an n8n workflow execution showing successful steps: receiving an inbound WhatsApp message, retrieving data from Google Sheets, invoking an AI Agent using OpenAI Chat Model and MCP Client tools, processing JavaScript logic, and appending the result back to a sheet. The AI Agent response references a theft incident with the message: “We have notified the host to address this urgently. LAST_ISSUE: 'theft with broken door and missing TV' LAST_SEVERITY: 'high'.”n8n execution log showing a successful end-to-end run of an AI-powered WhatsApp receptionist workflow using OpenAI, Google Sheets, and the Vonage MCP Client.

Conclusión

Una vez establecido el flujo de trabajo principal, puede ampliar este agente en muchas direcciones. Un próximo paso inteligente para soportar mejor múltiples propiedades sería dar a la recepcionista un property_id y crear una relación basada en el número del huésped u otro campo de su hoja.

También puede ir más allá de Google Sheets y conectar una base de datos más robusta (Airtable, Notion, o incluso Postgres) sin cambiar el comportamiento del Agente. En el lado del anfitrión, es fácil introducir herramientas adicionales para tareas como programar limpiadores, crear tickets de soporte o enviar enlaces de un solo uso, como instrucciones para la caja de llaves. Y si desea atender a los huéspedes en más canales, el servidor MCP ya le ofrece una vía para incorporar RCS, Viber o MMS al mismo flujo de trabajo. En ese momento, un único agente puede gestionar WhatsApp, SMS e incluso el escalado de voz a través de una lógica unificada.

Pero ya con un solo punto final MCP para todas las acciones de mensajería y voz, un puñado de nodos n8n y una simple hoja de Google como base de datos, ha creado una recepcionista de IA realista y ampliable que las pequeñas empresas pueden utilizar hoy mismo.

Si clonas esta configuración y la adaptas a tu propio caso de uso (restaurantes, clínicas, salones de belleza), ¡me encantaría ver lo que construyes!

¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.

Compartir:

https://a.storyblok.com/f/270183/384x384/e4e7d1452e/benjamin-aronov.png
Benjamin AronovDefensor del Desarrollador

Benjamin Aronov es desarrollador de Vonage. Es un constructor de comunidades con experiencia en Ruby on Rails. Benjamin disfruta de las playas de Tel Aviv, a la que llama hogar. Su base en Tel Aviv le permite conocer y aprender de algunos de los mejores fundadores de startups del mundo. Fuera de la tecnología, a Benjamin le encanta viajar por el mundo en busca del perfecto pain au chocolat.