Super Premium

Agente Conversacional que cierra citas

El diferenciador clave de BeBeauty. Un servicio autónomo que funciona 24/7 junto al CRM.

Modo 1: Proactivo
Llenado de huecos

El agente DETECTA huecos vacíos y contacta a los clientes adecuados para llenarlos. Funciona cada 15 minutos de 09:00 a 21:00.

Modo 2: Conversacional
Atención entrante

El cliente ESCRIBE al WhatsApp del centro y el agente le atiende: consultas, disponibilidad y reservas. Funciona 24/7 sin horario.

6
Fases / Pipeline
12
Variables / Scoring
8
Controles / Seguridad
3
Canales / Contacto
48h
Horizonte
15m
Frecuencia

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:

  1. Identifique qué huecos hay disponibles en la agenda del día o de los próximos días.
  2. Recuerde qué clientes podrían estar interesados en ese servicio concreto.
  3. Encuentre el momento para hacer la llamada o enviar el mensaje, en medio de otras tareas.
  4. Redacte un mensaje apropiado, personalizado y no intrusivo.
  5. Haga el seguimiento si no hay respuesta, y gestione la confirmación o rechazo.
En la práctica, esto casi nunca ocurre por falta de tiempo. El agente automatiza todo este flujo, funcionando sin descansos, sin olvidos, sin excusas.

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.

Diagrama 1 — Pipeline completo
flowchart TD subgraph TRIGGERS["ACTIVACIÓN"] T1["CRON cada 15 min"] T2["Cancelación de cita"] T3["Manual admin"] end subgraph F1["FASE 1: DETECTAR HUECOS"] D1["Verificar horario contacto 09:00-21:00"] D2["Consultar agenda CRM próximas 48h"] D3["Descartar huecos con propuesta activa"] D4["Seleccionar hasta 20 huecos"] end subgraph F2["FASE 2: PUNTUAR CLIENTES"] S1["Pre-filtrar: lista negra, sin consentimiento, saturados"] S2["Analizar hasta 200 clientes"] S3["Scoring RFM+ 7 variables + 5 ajustes"] S4{"Score >= 50?"} S5["HOT 80-100 / WARM 50-79"] S6["COLD 0-49: Descartar"] end subgraph F3["FASE 3: PLANIFICAR CONTACTO"] P1["IA decide: cliente + servicio + canal"] P2["Genera motivo visible para el equipo"] end subgraph F4["FASE 4: VERIFICAR SEGURIDAD"] SF1["8 controles automáticos SAFE-01 a SAFE-08"] SF2{"Pasa TODOS?"} SF3["Bloquear propuesta"] end subgraph F5["FASE 5: GENERAR MENSAJE"] M1["IA genera mensaje personalizado"] M2["Nombre + servicio + día + hora + profesional"] end subgraph F6["FASE 6: CREAR PROPUESTA"] PR1["Propuesta en CRM con estado PENDIENTE"] end T1 & T2 & T3 --> D1 D1 --> D2 --> D3 --> D4 D4 --> S1 S1 --> S2 --> S3 --> S4 S4 -- "Sí" --> S5 S4 -- "No" --> S6 S5 --> P1 --> P2 P2 --> SF1 --> SF2 SF2 -- "Sí" --> M1 SF2 -- "No" --> SF3 M1 --> M2 --> PR1 style TRIGGERS fill:#E0E7FF,stroke:#3730A3,color:#3730A3 style F1 fill:#DBEAFE,stroke:#1E40AF,color:#1E40AF style F2 fill:#FEF3C7,stroke:#92400E,color:#92400E style F3 fill:#F3E8FF,stroke:#6B21A8,color:#6B21A8 style F4 fill:#FEE2E2,stroke:#991B1B,color:#991B1B style F5 fill:#D1FAE5,stroke:#065F46,color:#065F46 style F6 fill:#FFF7ED,stroke:#9A3412,color:#9A3412

Fase 1: Detección de huecos

Paso 1. Verificar que la hora actual está dentro de la ventana permitida (09:00–21:00). Fuera de ese horario el pipeline no se inicia.

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

La IA recibe el hueco detectado, los datos del cliente seleccionado (historial, preferencias, puntuación) y el catálogo de servicios del centro. Con esa información decide: qué servicio proponer, a través de qué canal contactar y en qué orden de prioridad.

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

Reglas que sigue la IA al redactar el 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.
Ejemplo de mensaje generado:

"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.

Diagrama 2 — Modelo de puntuación
flowchart LR subgraph BASE["7 VARIABLES BASE"] V1["Recencia 20%"] V2["Frecuencia 15%"] V3["Valor Monetario 10%"] V4["Fiabilidad 15%"] V5["Rapidez Respuesta 10%"] V6["Afinidad Horaria 15%"] V7["Afinidad Servicio 15%"] end subgraph CONTEXT["5 AJUSTES CONTEXTUALES"] A1["Urgencia hueco menos de 6h: +10"] A2["Bono por caducar: +8"] A3["Rechazo reciente: -15"] A4["Saturación contacto: -20"] A5["Recuperación 30-90 días: +5"] end CALC["PUNTUACIÓN 0-100"] subgraph RESULT["CLASIFICACIÓN"] HOT["HOT 80-100"] WARM["WARM 50-79"] COLD["COLD 0-49"] end V1 & V2 & V3 & V4 & V5 & V6 & V7 --> CALC A1 & A2 & A3 & A4 & A5 --> CALC CALC --> HOT CALC --> WARM CALC --> COLD style BASE fill:#FEF3C7,stroke:#92400E,color:#92400E style CONTEXT fill:#F3E8FF,stroke:#6B21A8,color:#6B21A8 style CALC fill:#1D1D1D,stroke:#1D1D1D,color:#FFFFFF style RESULT fill:#D1FAE5,stroke:#065F46,color:#065F46 style HOT fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style WARM fill:#FEF3C7,stroke:#92400E,color:#92400E style COLD fill:#FEE2E2,stroke:#991B1B,color:#991B1B

7 Variables base

VariablePesoQué mideEjemplo
Recencia20%Cuándo fue su última visitaAyer = 100 pts / Hace 3 meses = 50 pts / Hace 6+ meses = 0 pts
Frecuencia15%Visitas en los últimos 12 meses8+ visitas = 100 pts / 4-7 = 60 pts / 1-3 = 30 pts
Valor monetario10%Gasto total acumulado500 EUR+ = 100 pts / 200-499 = 60 pts / menos de 200 = 20 pts
Fiabilidad15%Porcentaje de citas que ha mantenido100% asistencia = 100 pts / 80% = 80 pts / 60% o menos = 30 pts
Rapidez de respuesta10%Tiempo medio que tarda en responder mensajesMenos de 1h = 100 pts / 1-4h = 70 pts / más de 24h = 20 pts
Afinidad horaria15%Coincidencia entre el hueco disponible y su horario habitualSiempre viene a esa franja = 100 pts / Nunca = 0 pts
Afinidad de servicio15%Historial de ese servicio concreto en el centro3+ veces ese servicio = 100 pts / 1-2 veces = 50 pts / Nunca = 10 pts

5 Ajustes contextuales

AjusteEfecto
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.
HOT
80 — 100

Cliente con alta probabilidad de confirmar. Se contacta con prioridad máxima. El agente lo propone en primera posición para cada hueco disponible.

WARM
50 — 79

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.

COLD
0 — 49

Probabilidad baja de confirmación. Se descarta automáticamente. No se genera propuesta, no se envía ningún mensaje.

Solo se contacta a clientes HOT y WARM. Los COLD se descartan automáticamente en la Fase 2 sin generar propuesta ni notificación.

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ódigoControlDescripciónRegla
SAFE-01Consentimiento RGPDEl cliente ha aceptado recibir comunicaciones comercialesSi marketing_consent = false → BLOQUEAR
SAFE-02Lista negraEl cliente no está marcado como "no contactar"Si blacklisted = true → BLOQUEAR
SAFE-03Saturación semanalEl cliente no ha recibido más de 2 propuestas en los últimos 7 díasSi contactos_7_dias >= 3 → BLOQUEAR
SAFE-04Cooldown de rechazoHan pasado más de 48 horas desde el último rechazoSi ultimo_rechazo < 48h → BLOQUEAR
SAFE-05Propuesta activaNo hay ya una propuesta activa para ese clienteSi propuesta_activa = true → BLOQUEAR
SAFE-06Hueco libreEl hueco sigue disponible en el momento de crear la propuestaSi slot_disponible = false → BLOQUEAR
SAFE-07Ventana horariaLa hora actual está dentro de la franja permitidaSi hora_actual fuera de 09:00–21:00 → BLOQUEAR
SAFE-08Puntuación mínimaEl cliente ha superado el umbral de scoringSi 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.
Ejemplo de mensaje generado:

"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:

  1. 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).
  2. 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.
  3. 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.

WhatsApp (prioritario)

Meta Business API oficial. Plantillas pre-aprobadas por Meta. Ventana de 24h gratuita tras respuesta del cliente. Tasas de apertura superiores al 90%.

Telegram (secundario)

Bot API oficial de Telegram. Texto libre con formato Markdown. Completamente gratuito. Activo solo si el cliente tiene Telegram vinculado.

SMS (terciario)

Integración con LabsMobile. Máximo 160 caracteres. Coste por mensaje. Remitente personalizable con el nombre del centro. Funciona sin datos móviles.

Diagrama 3 — Lógica de fallback entre canales
flowchart TD START["Propuesta Aprobada"] --> WA{"WhatsApp disponible?"} WA -- "Sí" --> WA_SEND["Enviar plantilla Meta"] WA -- "No o Falla" --> TG{"Telegram activo?"} TG -- "Sí" --> TG_SEND["Enviar via Bot API"] TG -- "No o Falla" --> SMS_SEND["Enviar SMS LabsMobile"] SMS_SEND --> CHECK{"Entregado?"} WA_SEND --> WAIT["Esperar respuesta 12h"] TG_SEND --> WAIT CHECK -- "Sí" --> WAIT CHECK -- "No" --> RETRY["Reintento siguiente ciclo"] WAIT --> EXPIRE{"Responde?"} EXPIRE -- "Sí" --> CLASSIFY["IA clasifica intención"] EXPIRE -- "12h sin respuesta" --> EXPIRED["Propuesta expirada silenciosamente"] style START fill:#1D1D1D,stroke:#1D1D1D,color:#FFFFFF style WA_SEND fill:#D1FAE5,stroke:#065F46,color:#065F46 style TG_SEND fill:#DBEAFE,stroke:#1E40AF,color:#1E40AF style SMS_SEND fill:#FEF3C7,stroke:#92400E,color:#92400E style WAIT fill:#F3E8FF,stroke:#6B21A8,color:#6B21A8 style CLASSIFY fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style EXPIRED fill:#FEE2E2,stroke:#991B1B,color:#991B1B style RETRY fill:#FFF7ED,stroke:#9A3412,color:#9A3412

Plantilla de WhatsApp

El mensaje de WhatsApp usa una plantilla pre-aprobada por Meta con 5 variables dinámicas:

VariableEjemplo
{{1}} — Nombre del clienteMaría
{{2}} — Nombre del centroCentro Belleza Aurora
{{3}} — Nombre del servicioFacial hidratante
{{4}} — Día y horaMiércoles 16 a las 11:00
{{5}} — Nombre del profesionalLaura

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:

"Sí", "Si", "Sí, perfecto", "Sí me viene bien", "Ok", "Confirmo", "Vale", "De acuerdo", "Me apunto", "Adelante", "Sí, me lo reservas", "Claro que sí", "Sí, el miércoles está bien", "Perfecto", "Genial"
Diagrama 4 — Flujo de aceptación
flowchart TD ACCEPT["Cliente responde SÍ"] --> VERIFY{"Hueco sigue libre?"} VERIFY -- "Sí" --> CREATE["Crea cita automáticamente"] VERIFY -- "No" --> SEARCH{"Hay alternativas?"} SEARCH -- "Sí" --> OFFER["Ofrece hasta 3 opciones próximos 7 días"] SEARCH -- "No" --> SORRY["Disculpa y redirige al centro"] OFFER --> CHOOSE["Cliente elige opción"] CHOOSE --> CREATE CREATE --> CONFIRM["Mensaje de confirmación con todos los datos"] style ACCEPT fill:#D1FAE5,stroke:#065F46,color:#065F46 style CREATE fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style CONFIRM fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style OFFER fill:#FEF3C7,stroke:#92400E,color:#92400E style SORRY fill:#FEE2E2,stroke:#991B1B,color:#991B1B
Mensaje de confirmación enviado al cliente:

"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!"
Si el hueco ya está ocupado — opciones alternativas:

"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".

Un no es un no. El agente aplica un cooldown de 48 horas para ese cliente y registra el rechazo para ajustar el scoring futuro. No se insiste. No se envía un segundo mensaje de seguimiento. Si el cliente usa lenguajes muy directos ("Déjame en paz", "No me molestes más"), se activa un cooldown extendido de 30 días.

Sin respuesta — el cliente no contesta en 12 horas

La propuesta expira silenciosamente. No se envía ningún mensaje de seguimiento. No se registra como rechazo. El cliente puede volver a ser contactado en el siguiente ciclo si su puntuación lo justifica. El hueco queda liberado para proponer a otro cliente.

Cuando el equipo reserva manualmente

Si un miembro del equipo ocupa un hueco manualmente mientras hay una propuesta activa para ese hueco, el agente detecta el conflicto en el siguiente ciclo de 5 minutos. Cancela la propuesta automáticamente y, si el cliente ya había confirmado, le envía un aviso: "Tu cita ha sido ajustada. El equipo se pondrá en contacto contigo para confirmar los detalles."

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.

CRM BeBeauty — Panel de propuestas
Pendientes (3)
Enviadas
Confirmadas
Rechazadas
María López 87 HOT
Pendiente
Servicio: Facial hidratante  |  Hueco: Miércoles 16 — 11:00 — Laura
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?"
Ana García 92 HOT
Confirmada
Servicio: Manicura gel  |  Hueco: Miércoles 16 — 12:30 — Carmen
Respuesta cliente: "Sí, perfecto!"
Cita creada: Miércoles 16 de abril a las 12:30 con Carmen — confirmación enviada.
Carmen Ruiz 74 WARM
Necesita revisión
Servicio: Depilación láser  |  Hueco: Jueves 17 — 10:00 — Sofía
Respuesta cliente: "A ver, depende... ¿puedo llamar mañana?"
Motivo: Respuesta ambigua. Se requiere seguimiento manual del equipo.
El sidebar del CRM muestra un badge en tiempo real con el número de propuestas pendientes, actualizándose cada 30 segundos sin necesidad de recargar la página.

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.

Diagrama 5 — Estados y transiciones de una propuesta
flowchart TD PENDING["PENDIENTE"] -->|"Equipo aprueba"| APPROVED["APROBADA"] PENDING -->|"Equipo rechaza"| REJECTED_TEAM["RECHAZADA"] PENDING -->|"No contactar"| BLACKLIST["RECHAZADA + Lista negra"] APPROVED -->|"Agente envía cada 5 min"| SENT["ENVIADA"] SENT -->|"Cliente acepta"| CHECK_SLOT{"Hueco libre?"} SENT -->|"Cliente rechaza"| REJECTED_CLIENT["RECHAZADA + Cooldown 48h"] SENT -->|"Sin respuesta 12h"| EXPIRED["EXPIRADA silenciosa"] SENT -->|"Respuesta no clara"| REVIEW["NECESITA REVISIÓN MANUAL"] CHECK_SLOT -->|"Sí"| CONFIRMED["CONFIRMADA — Cita creada"] CHECK_SLOT -->|"No"| ALT{"Hay alternativas?"} ALT -->|"Sí"| SEARCHING["BUSCANDO ALTERNATIVA"] ALT -->|"No"| OCCUPIED["HUECO OCUPADO — Redirige al centro"] SEARCHING -->|"Cliente elige"| CONFIRMED MANUAL["Staff reserva hueco manualmente"] -->|"En cualquier momento"| CANCELLED["CANCELADA con aviso al cliente"] style PENDING fill:#FEF3C7,stroke:#92400E,color:#92400E style APPROVED fill:#DBEAFE,stroke:#1E40AF,color:#1E40AF style SENT fill:#F3E8FF,stroke:#6B21A8,color:#6B21A8 style CONFIRMED fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style REJECTED_TEAM fill:#FEE2E2,stroke:#991B1B,color:#991B1B style REJECTED_CLIENT fill:#FEE2E2,stroke:#991B1B,color:#991B1B style EXPIRED fill:#FFE4E6,stroke:#9F1239,color:#9F1239 style REVIEW fill:#FFF7ED,stroke:#9A3412,color:#9A3412 style CANCELLED fill:#FEE2E2,stroke:#991B1B,color:#991B1B style BLACKLIST fill:#1D1D1D,stroke:#1D1D1D,color:#FFFFFF style OCCUPIED fill:#FEE2E2,stroke:#991B1B,color:#991B1B style SEARCHING fill:#FEF3C7,stroke:#92400E,color:#92400E

Disparadores del agente

El agente puede activarse de tres formas distintas, cada una con un comportamiento específico.

Automático (CRON)

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.

Cancelación (reactivo)

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.

Manual (admin)

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 WhatsApp

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

Consultar disponibilidad

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.

Consultar servicios y precios

El agente conoce el catálogo completo del centro: servicios, duración, precio y profesionales disponibles para cada tratamiento.

Consultar historial

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.

Consultar bonos activos

Si el cliente tiene bonos de sesiones, puede preguntar cuántas le quedan y cuándo caducan. El agente lo consulta en tiempo real.

Reservar cita

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.

Preguntas generales

Horario del centro, dirección, aparcamiento, normas de cancelación, métodos de pago. El agente responde desde una base de conocimiento configurable.

Escalado a humano

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ámetroValor
NombreAna (configurable por centro)
CentroNombre del centro configurado en el CRM
IdiomaEspañol (con detección automática de idioma del cliente)
TratoTuteo si el cliente ya tiene historial, usted si es primera interacción
TonoCercano, profesional, breve. Sin tecnicismos innecesarios.
BrevedadMáximo 4 opciones por mensaje. Nunca párrafos largos en WhatsApp.
LímiteNo inventa información. Si no sabe algo, lo reconoce y escala.

Reglas de reserva conversacional

  1. El agente siempre confirma el servicio, profesional, fecha y hora antes de crear la cita.
  2. Si el cliente no indica profesional, el agente sugiere el habitual o el disponible más próximo.
  3. Si hay múltiples huecos, el agente ofrece un máximo de 4 opciones ordenadas por proximidad.
  4. La cita solo se crea tras una confirmación explícita del cliente ("Sí", "Confirmo", "Ese" + número de opción).
  5. Siempre envía un mensaje de confirmación con todos los datos tras crear la cita.

Ejemplo de conversación

Ana — Centro Belleza Aurora
Cliente
Hola, quiero reservar un facial
Ana
Hola, María. Tenemos varios tipos de facial disponibles:
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?
Cliente
La hidratación, ¿tenéis hueco esta semana?
Ana
Para Facial hidratante esta semana tengo:
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?
Cliente
El jueves con Laura
Ana
RESERVA CONFIRMADA
— 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é recuerdaCómo lo usa
Profesional preferidaSi hay varias opciones disponibles, el agente prioriza la profesional con la que el cliente ha tenido más citas.
Tratamientos habitualesAl proponer un hueco, el agente selecciona el servicio con mayor afinidad en el historial del cliente.
Franja horaria habitualSi el cliente siempre viene por la mañana, el agente evita proponer huecos de tarde aunque sean más urgentes.
Notas especialesAlergias, preferencias de contacto o cualquier anotación del equipo visible al agente durante la conversación.
Resumen de conversaciones previasEl agente recuerda si el cliente comentó algo relevante en conversaciones anteriores, como preferencias de servicio o fechas a evitar.
La memoria se extrae automáticamente del CRM y de los hilos de conversación. No requiere configuración manual por parte del equipo.

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.

Modo manual (por defecto)

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.

Modo auto-aprobación

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.

Por defecto está desactivado. La filosofía es construir confianza primero: que el equipo vea cómo trabaja el agente durante las primeras semanas antes de delegar la aprobación automática.

Números clave del agente

ParámetroValor
Detección
Horizonte de búsqueda de huecos48 horas desde el momento de ejecución
Huecos máximos por ciclo20 huecos
Huecos mínimos para ejecutar1 hueco
Análisis
Clientes analizados por cicloHasta 200 (ordenados por score previo)
Variables del scoring7 variables base + 5 ajustes contextuales
Umbral mínimo para contactarScore mayor o igual a 50
Controles de seguridad8 (todos obligatorios)
Envío
Frecuencia de ciclo proactivoCada 15 minutos
Frecuencia de envío de aprobadasCada 5 minutos
Ventana horaria de contacto09:00 – 21:00
Máximo de propuestas activas por cliente1
Máximo de contactos por cliente por semana2
Respuestas
Tiempo de expiración de propuesta enviada12 horas sin respuesta
Cooldown tras rechazo48 horas
Cooldown extendido (lenguaje de rechazo fuerte)30 días
Alternativas ofrecidas si el hueco está ocupadoHasta 3 opciones en los próximos 7 días
Conversacional
Disponibilidad modo conversacional24/7 sin horario
Hilos activos simultáneos por cliente1
Caducidad de hilo inactivo24 horas
Opciones máximas por mensaje4
Tiempos de ciclo
Tiempo medio de ejecución del pipelineMenos de 30 segundos
Tiempo de reacción a cancelaciónMenos de 1 minuto
Actualización del badge del CRMCada 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".
Ideal para:

  • 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.

MedidaCó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 olvidoEl 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 datosEl 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 comunicacionesTodos los mensajes identifican claramente el remitente (nombre del centro). No se usan números anónimos ni remitentes ocultos.
Trazabilidad completaCada 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 datosEl 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

Diagrama 6 — Arquitectura del sistema
flowchart TB subgraph VPS["VPS Docker"] subgraph CRM["BeBeauty CRM — Node.js"] CRM1["Agenda"] CRM2["Clientes"] CRM3["Citas"] CRM4["Propuestas"] CRM5["Profesionales"] end subgraph AGENT["BeBeauty Agent — Python"] AG1["FastAPI"] AG2["LangGraph"] AG3["Scoring RFM+"] AG4["LLM Claude Sonnet"] AG5["APScheduler"] AG6["Modo Conversacional"] end DB[("PostgreSQL")] end subgraph CHANNELS["Canales Externos"] CH1["WhatsApp Meta API"] CH2["Telegram Bot API"] CH3["SMS LabsMobile"] end CRM <-- "REST API" --> AGENT CRM --> DB AGENT --> DB AGENT --> CH1 AGENT --> CH2 AGENT --> CH3 style VPS fill:#F5F5F5,stroke:#1D1D1D,color:#1D1D1D style CRM fill:#DBEAFE,stroke:#1E40AF,color:#1E40AF style AGENT fill:#C1D11E,stroke:#1D1D1D,color:#1D1D1D style CHANNELS fill:#FEF3C7,stroke:#92400E,color:#92400E style DB fill:#1D1D1D,stroke:#1D1D1D,color:#FFFFFF

Stack tecnológico

ComponenteTecnologíaFunción
CRMNode.js + Express + PostgreSQLGestión de agenda, clientes, citas y propuestas
AgentePython + FastAPIAPI del agente, webhooks de canales
OrquestaciónLangGraphPipeline de 6 fases, gestión de estados
LLMClaude Sonnet (Anthropic)Generación de mensajes, clasificación de respuestas
PlanificadorAPSchedulerCRON de 15 minutos, envío de aprobadas cada 5 min
WhatsAppMeta Business APIEnvío y recepción de mensajes WhatsApp
TelegramTelegram Bot APICanal de fallback secundario
SMSLabsMobile APICanal de fallback terciario
Base de datosPostgreSQLAlmacenamiento compartido CRM y agente
InfraestructuraDocker + VPSDespliegue en contenedores, proxy Traefik
Modo ConversacionalLangGraph + Claude SonnetAtención entrante 24/7, gestión de hilos, escalado