Blog Automatizaciones

Chatbot para clínicas dentales con n8n y WhatsApp

Cómo construir un chatbot completo para clínicas dentales con n8n y WhatsApp: arquitectura, transcripción de audio, análisis de imagen, integración con Google Calendar, emails de confirmación y recordatorios.

Expertbrain
6 min de lectura

Chatbot para clínicas dentales con n8n y WhatsApp

Atender a pacientes por WhatsApp con respuestas claras, solicitar información clínica mínima, proponer huecos reales en agenda y confirmar la cita con email sin intervención del equipo. El chatbot para clínicas dentales utiliza n8n y Evolution API para escuchar texto, audio e imagen; guardar leads en CRM/BD; sugerir fechas disponibles en Google Calendar; crear y confirmar citas; enviar emails de confirmación; y recordar la cita el mismo día.

Caso de uso y experiencia del paciente

  • El paciente escribe “Hola” o envía audio o foto (por ejemplo, de una lesión)
  • El bot saluda por su nombre (si está disponible), ofrece información de servicios o agenda
  • Si hay síntomas (dolor, sangrado, traumatismo, fiebre), muestra mensajes de prioridad clínica y propone cita urgente
  • Solicita consentimiento para guardar imágenes en el historial y hace preguntas estructuradas (desde cuándo, dolor 0–10, zona, sangrado…)
  • Propone huecos reales (consulta el calendario), crea la cita y envía email con todos los detalles
  • Activa un recordatorio el mismo día por WhatsApp y correo

Arquitectura técnica

  • Canal: WhatsApp (Evolution API) → Webhook a n8n
  • Orquestación: n8n (workflows: principal + buscar cita + crear cita + confirmación email + recordatorio día D)
  • IA:
    • Transcripción de audio (Whisper/ChatGPT)
    • Análisis de imagen (visión) → descripción objetiva para el agente
    • Agente clínico con tools: buscar cita, crear cita, conocimiento, lead upsert, think (intención)
  • Datos: BD/CRM (p. ej., Airtable o Postgres) para leads, servicios y trazabilidad
  • Agenda: Google Calendar (consulta y creación de evento)
  • Email: SMTP o proveedor transaccional (HTML personalizado)

Requisitos previos

  • Cuenta e instancia de Evolution API (WhatsApp) con webhook hacia n8n
  • n8n operativo (local/VPS/Docker)
  • Google Calendar accesible desde n8n (credenciales)
  • Proveedor de email (SMTP/SendGrid/Mailersend…) y plantilla HTML
  • BD/CRM (Airtable/SQL) con tablas: Leads, Servicios, Interacciones
  • Claves de OpenAI (transcripción y visión) u otro proveedor compatible

Flujo completo en n8n (visión general)

  1. Webhook (Evolution API) → llega JSON con mensaje, tipo (texto/audio/imagen), chat_id, nombre, teléfono, timestamps
  2. Normalización → datos mínimos unificados
  3. Buffer (push/get) → agrupa mensajes consecutivos (5 s) y evita respuestas cruzadas
  4. Split & switch → deriva a texto, audio (→ transcripción) o imagen (→ descripción)
  5. Merge & ordenar → asegura que el agente reciba todo en el orden real
  6. Agente clínico → decide: informar, pedir datos, buscar cita, crear cita, actualizar lead
  7. Confirmación → email HTML + registro en BD/CRM
  8. Recordatorio día D → WhatsApp + email

Paso a paso de la implementación

1) Entrada por Webhook (Evolution API)

Recibe JSON con: serverUrl, instancia, apiKey, chatId, messageId, type, content, timestamp, name/phone.

  • Parsea y guarda solo lo necesario para el flujo
  • Enmascara datos sensibles en logs (teléfono, API key)

2) Buffer de mensajes

  • Push en BD: colección chatId/buffer con {messageId, type, content, timestamp}
  • Get y comparación: si llega un segundo mensaje a <5 s, el bot espera y agrupa
  • Regla: si messageId nuevo ≠ messageId esperado → wait 5 s y reintentar; si >5 s desde el último → continuar
  • Borrado del buffer al responder, para no concatenar mensajes antiguos con nuevos

3) Ramas por tipo de contenido

  • Texto: extrae content y timestamp
  • Audio: descarga archivo, convierte (base64 → data), transcribe con Whisper/ChatGPT → content
  • Imagen: descarga, convierte (base64 → data), describe con visión → texto objetivo (sujetos, zona, estado)

4) Unificación y orden

  • Merge (máx. 3 inputs: texto, audio→texto, imagen→descripción)
  • Ordenación por timestamp para contexto coherente (“Hola” → “¿qué tal?” → “tengo dolor…“)

5) Agente clínico con herramientas

  • Rol: atención al paciente en clínica dental (objetivo: informar + agendar)
  • Tools:
    • Conocimiento (tabla Servicios)
    • Think (intención, validación de datos)
    • Buscar cita (workflow aparte)
    • Crear cita (workflow aparte)
    • Crear/actualizar lead (BD/CRM)
  • Reglas clínicas: priorizar dolor intenso, sangrado persistente, traumatismo, fiebre → proponer cita urgente
  • Consentimiento: pedir permiso explícito para guardar imágenes en historial
  • Datos mínimos para cita: nombre y apellidos, teléfono/email, motivo breve, fecha/hora preferida

Agenda: buscar huecos y crear la cita

Buscar cita (workflow)

  • Entrada: fecha, hora
  • Consulta: comprueba evento en [fecha, fecha+1h]
  • Si librestatus=available
  • Si ocupado → obtiene todas las horas ocupadas del día (8–20h) y pide a la IA sugerir 3 huecos libres dentro del horario y posteriores a la hora solicitada
  • Respuesta al agente: “disponible” o “propuestas”

Crear cita (workflow)

  • Entrada: fecha, hora, nombre, email, motivo
  • Evento Calendar: inicio hora, fin hora+1h, título Paciente: nombre, descripción motivo, invitados (email paciente / recepción), ubicación clínica
  • Salida: detalles de la cita (fecha legible, enlace a Calendar)
  • Upsert lead: registra/actualiza paciente en BD/CRM

Confirmación por email y recordatorios

Confirmación (workflow independiente)

  • Trigger: cada minuto revisa eventos creados recientemente
  • Acción: email HTML al paciente con: paciente, fecha y hora legibles, ubicación/mapa, motivo, instrucciones (DNI, llegar 10’ antes, alergias…)
  • Formateo: normaliza fecha “lunes, 9 de septiembre de 2025, 11:00”

Recordatorio día D (workflow independiente)

  • Trigger: a primera hora del mismo día, lee eventos del día
  • Acciones:
    • WhatsApp: “Hola, [Nombre]. Te recordamos tu cita hoy a las [hora]. Responde CONFIRMAR o CAMBIAR.”
    • Email: mensaje breve con botón/enlace a la cita

Buffer de mensajes y orden cronológico

  • Problema común: bots que responden a “Hola” y después a “¿qué tal?” por separado
  • Solución: persistir mensajes 5 s, agrupar y ordenar; si llega un segundo mensaje fuera de ventana, abrir nueva interacción
  • Beneficio: agente recibe contexto completo y responde una sola vez de forma coherente

Procesamiento de audio, texto e imagen

  • Audio → transcripción robusta (mejor audios cortos y claros)
  • Imagen → visión describe de forma objetiva (zona afectada, signos visibles) para que el agente no fabule
  • Texto → normalización y enriquecimiento con hora para ordenar

Cumplimiento y buenas prácticas clínicas

  • Consentimiento informado para almacenar imágenes y datos en historial/CRM
  • Privacidad: minimizar datos, cifrar en tránsito, no loguear teléfonos ni API keys en claro
  • Mensajes de seguridad: ante dolor intenso, sangrado que no cede, traumatismo o fiebre → cita prioritaria
  • Tono: empático y claro; evitar diagnósticos definitivos sin exploración
  • Trazabilidad: guardar interacciones con marca temporal y responsable (agente/automatismo)

Costes, rendimiento y escalado

  • n8n: puede correr en VPS económico
  • Evolution API: coste según proveedor/instancia
  • OpenAI: pago por uso (audios/imágenes/LLM)
  • Email: coste marginal por envío
  • Escalado: separar staging y producción; colas por chat_id; límites y backoff en llamadas a Calendar/LLM

Errores típicos y cómo resolverlos

  • Respuestas desordenadas: falta de buffer o de ordenación por timestamp → implementarlo sí o sí
  • Cita no creada: credenciales de Calendar o formato de fecha incorrecto → normalizar datetime y revisar zona horaria
  • Email en SPAM: autentica dominio (SPF/DKIM/DMARC) y usa plantillas limpias
  • IA “parlanchina” fuera de protocolo: endurece el rol, tools y ejemplos; limita el dominio de respuestas
  • Imagen sin consentimiento: el bot debe preguntar antes de guardar en historial

Preguntas frecuentes

¿Puedo usarlo sin imagen o sin audio?
Sí. Las ramas son modulares: texto, audio→texto e imagen→descripción.

¿Se adapta a otras clínicas (fisioterapia, estética, óptica)?
Totalmente. Cambia Conocimiento, copy clínico y motivos de cita.

¿Puedo proponer varios profesionales/sillones?
Sí. Usa calendarios por profesional o etiquetas por recurso.

¿Qué pasa si dos pacientes piden la misma hora a la vez?
El buscar cita valida disponibilidad en tiempo real y el crear cita es atómico; si falla, ofrece alternativas.

¿Cómo cancelo o muevo citas?
Añade tool de buscar evento por paciente y update/delete en Calendar + aviso.

Conclusión y siguientes pasos

Se presenta un chatbot clínico completo que capta leads, analiza audio/imagen, prioriza según síntomas, propone y crea citas reales, envía email de confirmación y recordatorios. La clave está en la lógica determinista (workflows separados para buscar/crear), el buffer que ordena la conversación y los prompts con herramientas bien acotadas.

Siguiente paso: desplegar en tu entorno, conectar servicios, calendarios y plantillas de email, y publicar el número de WhatsApp de la clínica.

Imágenes

Tags: chatbotclínica dentaln8nWhatsAppEvolution APIGoogle Calendar
¿Te suena familiar?

Automatizamos cualquier proceso de tu empresa

Elegimos el stack que mejor se adapta a tu caso real: n8n, Make, Zapier, Python, serverless… Sin atarte a una sola herramienta.