Proyecto demo

Vera: recepcionista de WhatsApp para negocios de servicios

Recepcionista de WhatsApp: flujos n8n listos para conectar a un agente de IA

Una maqueta tipo WhatsApp muestra cómo atendería Vera en una barbería, una cantina, una odontología y un taller, y cómo el registro llega al sistema del negocio. Detrás, cuatro flujos de n8n preparados para hablar con WhatsApp Cloud API y con un agente de IA.

capturas
Captura de Vera · Barbería

Contexto

Los negocios de servicios reciben por WhatsApp las mismas preguntas todo el día: precios, horarios, turnos, pedidos, «¿está listo mi auto?». Responder a mano roba tiempo de atención; un bot que inventa precios o se pisa con la persona que atiende es peor. Cada rubro cambia qué se puede hacer por chat.

Solución

Dos piezas. La maqueta: una demostración guionada (sin backend ni modelo de lenguaje) que recorre cada rubro y pasa del chat a la pantalla del negocio —agenda, ficha del paciente, tablero de órdenes o comanda— con el registro nuevo marcado.

Los flujos de n8n: el flujo principal recibe el webhook de Meta, carga el preset del rubro, aplica una guardia anti-abuso, está preparado para consultar al agente y ejecutar como mucho una herramienta contra la API del negocio; más un subflujo que transcribe notas de voz, recordatorios cada 15 minutos con plantillas aprobadas y avisos por cambio de estado.

Arquitectura

Flujo en 6 pasosCómo está diseñado el flujo (probado con servidores simulados)
  1. El flujo recibe el mensaje (texto o nota de voz) por el webhook de WhatsApp

  2. n8n lo normaliza, carga el preset del rubro y aplica la guardia anti-abuso

  3. El flujo entrega el mensaje al agente, que está preparado para responder, pedir una herramienta o derivar a una persona

  4. Si el agente pide una herramienta, n8n llama a la API del negocio y le devuelve el resultado

  5. El flujo envía por WhatsApp la respuesta final del agente

  6. Cada 15 min, el flujo de recordatorios envía plantillas con «Confirmo» / «Cambiar»

Piezas

  • WhatsApp Cloud API (Meta): webhook entrante y plantillas
  • n8n: flujo principal (53 nodos), audio, recordatorios, avisos de estado
  • Servicio de agente (LLM con tool-calling) detrás de un contrato HTTP propio
  • API del negocio: catálogo, disponibilidad, reservar, cancelar, menú, pedidos
  • Presets por rubro en JSON (prompt, herramientas, textos, plantillas)

Decisiones técnicas

  1. Una sola vuelta de herramienta por mensaje

    Si el agente pide una segunda herramienta, se deriva a una persona en vez de encadenar llamadas. Por qué: no hay riesgo de bucle ni de costo descontrolado.

    Trade-off una consulta que necesita dos pasos termina en un humano.

  2. El rubro es un preset de datos, no otro flujo

    Prompt, herramientas, textos y plantillas viven en un JSON por rubro, y un validador comprueba que cada herramienta tenga su rama y que los datos coincidan con la maqueta.

    Trade-off después de editar un preset hay que volver a embeberlo en los flujos con un script.

  3. El agente detrás de un contrato HTTP

    El flujo define request y response; el modelo puede ser de cualquier proveedor.

    Trade-off ese servicio hay que alojarlo aparte.

  4. El bot se calla cuando entra una persona

    Al derivar, el chat queda en pausa 4 horas para que el bot no compita con quien atiende.

    Trade-off durante esa pausa el bot no responde en ese chat aunque la persona ya haya terminado.

  5. Guardia anti-abuso en el estado del flujo, sin base de datos

    Tope de mensajes por minuto entre todos los chats y aviso al encargado como mucho una vez por hora.

    Trade-off alcanza para una instancia; con varias habría que moverla a la API.

Resultados

  • 142 mediciones de layout, 0 fallos (16 anchos en el chat; 8 anchos de 320 a 2560 px en la plataforma)
  • Los 8 recorridos (4 rubros × 2 ramas) llegan al final y el registro aparece en el sistema
  • 61 pares de contraste, todos ≥ 4,9:1
  • Sitio de menos de 330 KB, 0 peticiones externas, 0 errores de consola
  • Los 4 flujos importados en n8n 2.27.4 y corridos de punta a punta con servidores simulados

No se probó contra Meta real ni contra un agente real.

Stack

  • HTML/CSS/JS sin dependencias
  • n8n
  • WhatsApp Cloud API
  • agente LLM con tool-calling (contrato HTTP)
  • Node.js (validadores y pruebas)
  • Playwright