Agente Conversacional que cierra citas
El diferenciador clave de BeBeauty. Un servicio autónomo que funciona 24/7 junto al CRM.
El agente DETECTA huecos vacíos y contacta a los clientes adecuados para llenarlos. Funciona cada 15 minutos de 09:00 a 21:00.
El cliente ESCRIBE al WhatsApp del centro y el agente le atiende: consultas, disponibilidad y reservas. Funciona 24/7 sin horario.
El problema
Un centro de estética típico tiene entre un 30% y un 40% de sus horas disponibles sin citas. Llenar esos huecos manualmente requiere que la recepcionista:
- Identifique qué huecos hay disponibles en la agenda del día o de los próximos días.
- Recuerde qué clientes podrían estar interesados en ese servicio concreto.
- Encuentre el momento para hacer la llamada o enviar el mensaje, en medio de otras tareas.
- Redacte un mensaje apropiado, personalizado y no intrusivo.
- Haga el seguimiento si no hay respuesta, y gestione la confirmación o rechazo.
Modo Proactivo: Pipeline de 6 fases
Cada vez que el agente se activa, ejecuta el siguiente pipeline en orden. Si cualquier fase falla o no encuentra resultados válidos, el proceso se detiene limpiamente sin generar errores visibles para el equipo.
Fase 1: Detección de huecos
Paso 2. Consultar la agenda del CRM para las próximas 48 horas y listar todos los slots vacíos.
Paso 3. Descartar los huecos que ya tienen una propuesta activa (estado PENDIENTE, APROBADA o ENVIADA) para evitar duplicados.
Paso 4. Seleccionar hasta 20 huecos ordenados por proximidad temporal (los más urgentes primero).
Fase 3: Planificación del contacto
Además, genera un motivo visible para el equipo que explica por qué se ha seleccionado ese cliente:
"Cliente con 3 visitas de facial en los últimos 6 meses. Última visita hace 45 días. Afinidad alta con tratamientos de hidratación. Hueco disponible mañana con su profesional habitual."
Fase 5: Generación del mensaje
- Incluir siempre el nombre del cliente.
- Mencionar el servicio concreto que se propone.
- Indicar el día, la hora y el nombre del profesional.
- Tono cercano pero profesional. Nunca agresivo ni insistente.
- Máximo 3 frases. Sin listas ni formatos complejos por WhatsApp.
- Incluir una llamada a la acción clara: responder "Sí" para confirmar.
"Hola María, te escribimos desde el Centro Belleza. Tenemos un hueco mañana miércoles a las 11:00 con Laura para un facial hidratante. ¿Te viene bien? Solo responde Sí y te lo reservamos."
Fase 6: Creación de la propuesta
La propuesta se crea en el CRM con estado PENDIENTE y contiene:
- Cliente seleccionado y puntuación RFM+
- Hueco propuesto (fecha, hora, profesional, servicio)
- Canal de envío seleccionado
- Mensaje generado (listo para revisar y aprobar)
- Motivo de selección legible para el equipo
- Timestamp de creación
Sistema de puntuación RFM+
Cada cliente recibe una puntuación de 0 a 100 calculada a partir de 7 variables base más 5 ajustes contextuales. Solo se contacta a clientes con puntuación igual o superior a 50.
7 Variables base
| Variable | Peso | Qué mide | Ejemplo |
|---|---|---|---|
| Recencia | 20% | Cuándo fue su última visita | Ayer = 100 pts / Hace 3 meses = 50 pts / Hace 6+ meses = 0 pts |
| Frecuencia | 15% | Visitas en los últimos 12 meses | 8+ visitas = 100 pts / 4-7 = 60 pts / 1-3 = 30 pts |
| Valor monetario | 10% | Gasto total acumulado | 500 EUR+ = 100 pts / 200-499 = 60 pts / menos de 200 = 20 pts |
| Fiabilidad | 15% | Porcentaje de citas que ha mantenido | 100% asistencia = 100 pts / 80% = 80 pts / 60% o menos = 30 pts |
| Rapidez de respuesta | 10% | Tiempo medio que tarda en responder mensajes | Menos de 1h = 100 pts / 1-4h = 70 pts / más de 24h = 20 pts |
| Afinidad horaria | 15% | Coincidencia entre el hueco disponible y su horario habitual | Siempre viene a esa franja = 100 pts / Nunca = 0 pts |
| Afinidad de servicio | 15% | Historial de ese servicio concreto en el centro | 3+ veces ese servicio = 100 pts / 1-2 veces = 50 pts / Nunca = 10 pts |
5 Ajustes contextuales
| Ajuste | Efecto |
|---|---|
| Urgencia — hueco en menos de 6 horas | +10 puntos. Prioriza los huecos más urgentes del día. |
| Bono activo próximo a caducar | +8 puntos. Si el cliente tiene un bono que vence en los próximos 14 días. |
| Rechazo reciente — menos de 48 horas | -15 puntos. Evita insistir tras un "no" reciente. |
| Saturación de contacto — 3+ mensajes en 7 días | -20 puntos. Protege al cliente de recibir demasiados contactos. |
| Cliente en recuperación — 30 a 90 días sin visita | +5 puntos. Pequeño impulso para reconquistar clientes que están volviendo. |
Cliente con alta probabilidad de confirmar. Se contacta con prioridad máxima. El agente lo propone en primera posición para cada hueco disponible.
Cliente con probabilidad media. Se contacta si no hay suficientes clientes HOT para el hueco. Buen candidato para servicios que le gustan y horarios habituales.
Probabilidad baja de confirmación. Se descarta automáticamente. No se genera propuesta, no se envía ningún mensaje.
8 Controles de seguridad
Cada propuesta pasa por las 8 verificaciones en orden. Si falla UNA SOLA, la propuesta se bloquea y no se envía al panel de aprobación.
| Código | Control | Descripción | Regla |
|---|---|---|---|
| SAFE-01 | Consentimiento RGPD | El cliente ha aceptado recibir comunicaciones comerciales | Si marketing_consent = false → BLOQUEAR |
| SAFE-02 | Lista negra | El cliente no está marcado como "no contactar" | Si blacklisted = true → BLOQUEAR |
| SAFE-03 | Saturación semanal | El cliente no ha recibido más de 2 propuestas en los últimos 7 días | Si contactos_7_dias >= 3 → BLOQUEAR |
| SAFE-04 | Cooldown de rechazo | Han pasado más de 48 horas desde el último rechazo | Si ultimo_rechazo < 48h → BLOQUEAR |
| SAFE-05 | Propuesta activa | No hay ya una propuesta activa para ese cliente | Si propuesta_activa = true → BLOQUEAR |
| SAFE-06 | Hueco libre | El hueco sigue disponible en el momento de crear la propuesta | Si slot_disponible = false → BLOQUEAR |
| SAFE-07 | Ventana horaria | La hora actual está dentro de la franja permitida | Si hora_actual fuera de 09:00–21:00 → BLOQUEAR |
| SAFE-08 | Puntuación mínima | El cliente ha superado el umbral de scoring | Si score < 50 → BLOQUEAR |
Generación de mensaje personalizado
Una vez que la propuesta supera los 8 controles, la IA redacta el mensaje que se enviará al cliente. No es una plantilla fija: cada mensaje se genera de forma única considerando el contexto del cliente.
Reglas de redacción
- Incluir el nombre del cliente en el saludo.
- Mencionar el servicio concreto que se propone.
- Indicar el día, la hora y el nombre del profesional.
- Tono cercano pero profesional. Nunca agresivo ni insistente.
- Máximo 3 frases. Sin listas ni formatos complejos en WhatsApp.
- Incluir una llamada a la acción clara: responder "Sí" para confirmar.
- No mencionar descuentos ni urgencia artificial.
"Hola María, te escribimos desde el Centro Belleza. Tenemos un hueco mañana miércoles a las 11:00 con Laura para un facial hidratante. ¿Te viene bien? Solo responde Sí y te lo reservamos."
Envío y sistema anti-duplicados
Cada 5 minutos, el agente revisa si hay propuestas aprobadas pendientes de envío y las procesa en orden. El sistema anti-duplicados opera en tres niveles:
- Nivel propuesta: Una vez que se crea una propuesta para un cliente, no se puede crear otra para el mismo cliente hasta que la primera esté resuelta (confirmada, rechazada o expirada).
- Nivel hueco: Si dos propuestas apuntan al mismo hueco y se aprueban casi simultáneamente, solo se procesa la primera. La segunda se cancela automáticamente con aviso al equipo.
- Nivel cliente + servicio + franja: No se propone el mismo servicio en la misma franja horaria al mismo cliente en menos de 7 días, aunque el hueco sea diferente.
Canales de comunicación
El agente soporta 3 canales con lógica de fallback automático. El orden de prioridad es configurable por el administrador del centro.
Meta Business API oficial. Plantillas pre-aprobadas por Meta. Ventana de 24h gratuita tras respuesta del cliente. Tasas de apertura superiores al 90%.
Bot API oficial de Telegram. Texto libre con formato Markdown. Completamente gratuito. Activo solo si el cliente tiene Telegram vinculado.
Integración con LabsMobile. Máximo 160 caracteres. Coste por mensaje. Remitente personalizable con el nombre del centro. Funciona sin datos móviles.
Plantilla de WhatsApp
El mensaje de WhatsApp usa una plantilla pre-aprobada por Meta con 5 variables dinámicas:
| Variable | Ejemplo |
|---|---|
| {{1}} — Nombre del cliente | María |
| {{2}} — Nombre del centro | Centro Belleza Aurora |
| {{3}} — Nombre del servicio | Facial hidratante |
| {{4}} — Día y hora | Miércoles 16 a las 11:00 |
| {{5}} — Nombre del profesional | Laura |
Interpretación de respuestas del cliente
Cuando el cliente responde al mensaje del agente, la IA clasifica la intención en una de tres categorías: aceptación, rechazo o ambigüedad.
Aceptación — el cliente dice que sí
Frases reconocidas como aceptación:
"Perfecto, María. Tu cita queda confirmada:
— Servicio: Facial hidratante
— Fecha: Miércoles 16 de abril a las 11:00
— Profesional: Laura
— Centro: Centro Belleza Aurora
Si necesitas cancelar o cambiar la cita, escríbenos con al menos 24 horas de antelación. ¡Hasta pronto!"
"Lo sentimos, María, ese hueco ya no está disponible. Pero te ofrezco estas opciones esta semana:
1) Miércoles 16 a las 16:00 con Laura
2) Jueves 17 a las 10:30 con Carmen
3) Viernes 18 a las 12:00 con Laura
¿Alguna te viene bien? Solo dime el número."
Rechazo — el cliente dice que no
Frases reconocidas como rechazo: "No", "No gracias", "No me viene bien", "Paso", "Otro día", "Ahora no", "Estoy ocupada", "No puedo", "Déjame en paz", "No me interesa".
Sin respuesta — el cliente no contesta en 12 horas
Cuando el equipo reserva manualmente
Panel de propuestas en el CRM
El agente genera propuestas que el equipo revisa desde el CRM antes del envío. Cada propuesta muestra toda la información necesaria para aprobar o rechazar en segundos.
Motivo IA: 3 visitas de facial en 6 meses. Última visita hace 45 días. Afinidad alta con hidratación.
Mensaje: "Hola María, te escribimos desde el Centro Belleza. Tenemos un hueco mañana miércoles a las 11:00 con Laura para un facial hidratante. ¿Te viene bien?"
Respuesta cliente: "Sí, perfecto!"
Cita creada: Miércoles 16 de abril a las 12:30 con Carmen — confirmación enviada.
Respuesta cliente: "A ver, depende... ¿puedo llamar mañana?"
Motivo: Respuesta ambigua. Se requiere seguimiento manual del equipo.
Ciclo de vida completo de una propuesta
Una propuesta puede pasar por múltiples estados desde que se crea hasta que se resuelve. El diagrama muestra todos los caminos posibles.
Disparadores del agente
El agente puede activarse de tres formas distintas, cada una con un comportamiento específico.
Se ejecuta cada 15 minutos entre las 09:00 y las 21:00, todos los días. Detecta huecos, puntúa clientes y genera propuestas sin intervención humana.
Se activa instantáneamente cuando se cancela una cita confirmada. El agente busca un sustituto para el hueco en menos de 1 minuto, maximizando el aprovechamiento de la agenda.
El administrador puede activarlo desde el panel con tres modos: pipeline completo (detectar + puntuar + generar), solo enviar aprobadas, o solo expirar pendientes antiguas.
Modo Conversacional: Atención entrante por WhatsAppEn desarrollo — v22.0
Cuando un cliente escribe al WhatsApp del centro por iniciativa propia, el agente conversacional le atiende de forma autónoma. A diferencia del modo proactivo, aquí es el cliente quien inicia la conversación. El agente funciona 24/7 sin horario de corte.
Capacidades del agente conversacional
El cliente puede preguntar qué huecos hay para un servicio concreto, un profesional específico o en una franja horaria determinada. El agente consulta la agenda en tiempo real.
El agente conoce el catálogo completo del centro: servicios, duración, precio y profesionales disponibles para cada tratamiento.
El cliente puede preguntar cuándo fue su última visita, qué servicio tuvo o con qué profesional. El agente accede a su historial del CRM.
Si el cliente tiene bonos de sesiones, puede preguntar cuántas le quedan y cuándo caducan. El agente lo consulta en tiempo real.
El agente puede completar una reserva de principio a fin: seleccionar servicio, profesional, fecha y hora, confirmar disponibilidad y crear la cita en el CRM automáticamente.
Horario del centro, dirección, aparcamiento, normas de cancelación, métodos de pago. El agente responde desde una base de conocimiento configurable.
Si la pregunta es demasiado compleja, hay una queja o el cliente lo solicita explícitamente, el agente transfiere el hilo al equipo con todo el contexto de la conversación.
Personalidad del agente
| Parámetro | Valor |
|---|---|
| Nombre | Ana (configurable por centro) |
| Centro | Nombre del centro configurado en el CRM |
| Idioma | Español (con detección automática de idioma del cliente) |
| Trato | Tuteo si el cliente ya tiene historial, usted si es primera interacción |
| Tono | Cercano, profesional, breve. Sin tecnicismos innecesarios. |
| Brevedad | Máximo 4 opciones por mensaje. Nunca párrafos largos en WhatsApp. |
| Límite | No inventa información. Si no sabe algo, lo reconoce y escala. |
Reglas de reserva conversacional
- El agente siempre confirma el servicio, profesional, fecha y hora antes de crear la cita.
- Si el cliente no indica profesional, el agente sugiere el habitual o el disponible más próximo.
- Si hay múltiples huecos, el agente ofrece un máximo de 4 opciones ordenadas por proximidad.
- La cita solo se crea tras una confirmación explícita del cliente ("Sí", "Confirmo", "Ese" + número de opción).
- Siempre envía un mensaje de confirmación con todos los datos tras crear la cita.
Ejemplo de conversación
1) Facial hidratante (60 min) — 55 EUR
2) Facial antiedad (75 min) — 70 EUR
3) Facial purificante (60 min) — 55 EUR
¿Cuál te interesa?
1) Miércoles 16 a las 10:00 — Laura
2) Miércoles 16 a las 16:00 — Carmen
3) Jueves 17 a las 11:30 — Laura
4) Viernes 18 a las 09:30 — Carmen
¿Alguna te viene bien?
— Servicio: Facial hidratante
— Fecha: Jueves 17 de abril a las 11:30
— Profesional: Laura
— Centro: Centro Belleza Aurora
Te esperamos. Si necesitas cancelar, avísanos con 24h de antelación.
Gestión de hilos de conversación
- Solo puede haber 1 hilo activo por cliente a la vez.
- Un hilo sin actividad durante 24 horas se archiva automáticamente.
- Los hilos archivados quedan visibles en el historial del cliente en el CRM.
- Si el cliente escribe de nuevo tras 24h, se abre un hilo nuevo.
- El escalado a humano marca el hilo con una etiqueta visual en el CRM para que el equipo lo localice rápidamente.
Memoria del agente
El agente mantiene un perfil actualizado de cada cliente que usa para personalizar los mensajes y las propuestas. Esta memoria se extrae automáticamente del CRM y de las conversaciones anteriores.
| Qué recuerda | Cómo lo usa |
|---|---|
| Profesional preferida | Si hay varias opciones disponibles, el agente prioriza la profesional con la que el cliente ha tenido más citas. |
| Tratamientos habituales | Al proponer un hueco, el agente selecciona el servicio con mayor afinidad en el historial del cliente. |
| Franja horaria habitual | Si el cliente siempre viene por la mañana, el agente evita proponer huecos de tarde aunque sean más urgentes. |
| Notas especiales | Alergias, preferencias de contacto o cualquier anotación del equipo visible al agente durante la conversación. |
| Resumen de conversaciones previas | El agente recuerda si el cliente comentó algo relevante en conversaciones anteriores, como preferencias de servicio o fechas a evitar. |
Auto-aprobación (opcional)
Por defecto, todas las propuestas requieren aprobación manual del equipo antes de enviarse al cliente. Esta es la configuración recomendada para los primeros meses de uso del sistema.
Todas las propuestas aparecen en el panel del CRM con estado PENDIENTE. El equipo revisa y aprueba o rechaza cada una antes de que se envíe el mensaje al cliente. Máximo control y visibilidad.
Las propuestas con puntuación igual o superior al umbral configurado (por ejemplo, score mayor o igual a 80) se aprueban y envían automáticamente sin revisión humana. El equipo solo ve las propuestas WARM que no alcanzan el umbral.
Números clave del agente
| Parámetro | Valor |
|---|---|
| Detección | |
| Horizonte de búsqueda de huecos | 48 horas desde el momento de ejecución |
| Huecos máximos por ciclo | 20 huecos |
| Huecos mínimos para ejecutar | 1 hueco |
| Análisis | |
| Clientes analizados por ciclo | Hasta 200 (ordenados por score previo) |
| Variables del scoring | 7 variables base + 5 ajustes contextuales |
| Umbral mínimo para contactar | Score mayor o igual a 50 |
| Controles de seguridad | 8 (todos obligatorios) |
| Envío | |
| Frecuencia de ciclo proactivo | Cada 15 minutos |
| Frecuencia de envío de aprobadas | Cada 5 minutos |
| Ventana horaria de contacto | 09:00 – 21:00 |
| Máximo de propuestas activas por cliente | 1 |
| Máximo de contactos por cliente por semana | 2 |
| Respuestas | |
| Tiempo de expiración de propuesta enviada | 12 horas sin respuesta |
| Cooldown tras rechazo | 48 horas |
| Cooldown extendido (lenguaje de rechazo fuerte) | 30 días |
| Alternativas ofrecidas si el hueco está ocupado | Hasta 3 opciones en los próximos 7 días |
| Conversacional | |
| Disponibilidad modo conversacional | 24/7 sin horario |
| Hilos activos simultáneos por cliente | 1 |
| Caducidad de hilo inactivo | 24 horas |
| Opciones máximas por mensaje | 4 |
| Tiempos de ciclo | |
| Tiempo medio de ejecución del pipeline | Menos de 30 segundos |
| Tiempo de reacción a cancelación | Menos de 1 minuto |
| Actualización del badge del CRM | Cada 30 segundos |
Modo de prueba (dry-run)
El modo dry-run ejecuta el pipeline completo sin enviar ningún mensaje al cliente ni crear ninguna propuesta real en el CRM. Es una simulación con datos reales de la agenda y los clientes.
Qué simula
- Detección de huecos reales en la agenda.
- Puntuación completa de clientes con el scoring RFM+.
- Selección del mejor candidato para cada hueco.
- Verificación de los 8 controles de seguridad.
- Generación del mensaje personalizado.
- Muestra el resultado en el panel del CRM marcado como "SIMULACIÓN — No enviado".
- Verificar que el scoring funciona correctamente antes del primer uso real.
- Mostrar al equipo cómo trabaja el agente sin riesgo de enviar mensajes no deseados.
- Depurar configuraciones de horario, canales o umbrales.
- Formación del equipo en los primeros días.
Cumplimiento legal (RGPD / LSSI)
El agente ha sido diseñado desde el inicio para cumplir con la normativa europea de protección de datos y la Ley de Servicios de la Sociedad de la Información.
| Medida | Cómo se implementa |
|---|---|
| Consentimiento explícito (SAFE-01) | El agente solo contacta a clientes con marketing_consent = true. Este campo se recoge en el proceso de alta del cliente o al actualizar ficha. |
| Derecho al olvido | El administrador puede marcar a cualquier cliente como blacklisted desde el CRM. A partir de ese momento no recibe más contactos del agente. |
| Minimización de datos | El agente solo accede a los datos del cliente necesarios para calcular el scoring y generar el mensaje: historial de visitas, preferencias y datos de contacto. |
| Transparencia en las comunicaciones | Todos los mensajes identifican claramente el remitente (nombre del centro). No se usan números anónimos ni remitentes ocultos. |
| Trazabilidad completa | Cada propuesta, mensaje enviado y respuesta recibida queda registrada con timestamp en el CRM. El registro es inmutable y auditable. |
| Límite de frecuencia (SAFE-03) | Máximo 2 contactos por cliente por semana, independientemente del canal. Protege al cliente de saturación y reduce el riesgo de quejas. |
| Portabilidad de datos | El historial completo de interacciones del agente con un cliente puede exportarse en formato JSON o CSV desde el panel de administración del CRM. |
Arquitectura técnica
Stack tecnológico
| Componente | Tecnología | Función |
|---|---|---|
| CRM | Node.js + Express + PostgreSQL | Gestión de agenda, clientes, citas y propuestas |
| Agente | Python + FastAPI | API del agente, webhooks de canales |
| Orquestación | LangGraph | Pipeline de 6 fases, gestión de estados |
| LLM | Claude Sonnet (Anthropic) | Generación de mensajes, clasificación de respuestas |
| Planificador | APScheduler | CRON de 15 minutos, envío de aprobadas cada 5 min |
| Meta Business API | Envío y recepción de mensajes WhatsApp | |
| Telegram | Telegram Bot API | Canal de fallback secundario |
| SMS | LabsMobile API | Canal de fallback terciario |
| Base de datos | PostgreSQL | Almacenamiento compartido CRM y agente |
| Infraestructura | Docker + VPS | Despliegue en contenedores, proxy Traefik |
| Modo Conversacional | LangGraph + Claude Sonnet | Atención entrante 24/7, gestión de hilos, escalado |