Andrea y los leads: el mapa v2 (27-oct) y la historia de octubre
Versión vigente. Se genera desde bot/MAPA-ANDREA-Y-RESCATES.md; lo anterior quedó clasificado en DOCUMENTACION.md.
0. Lo vigente desde la v2 (27-oct)
Sale del manual "Sistema de leads y seguimiento v2" (NONDA, 27-oct), transcrito regla por regla en bot/CRITERIOS-ACEPTACION-V2.md (sección G). Cuando algo de las secciones 1 a 5 choca con esto, manda esto. Lo marcado [Propuesta NONDA] o [por confirmar] sigue así hasta que la clínica lo confirme.
Ninguna tarjeta cambia de etapa por tiempo. Lunes 9:00: Recepción revisa Urgencias, luego los Calientes de Andrea, luego lo demás que dejó Andrea. Andrea informa, califica y deja listo; no agenda, no confirma horas, no envía datos de pago y no opina de casos clínicos. En horario de Recepción, Andrea no responde.
flowchart LR
N["Nuevo<br/>escribe por primera vez"] --> F["Frío<br/>respondió sus dudas<br/>y no volvió"]
N --> T["Tibio<br/>pide una cita"]
N --> C["Caliente<br/>Recepción: fecha y hora<br/>Andrea: nombre, DNI y fecha"]
N --> A["Atendido por Andrea<br/>antiguo, descuento,<br/>fuera de su lista"]
N --> U["Urgencias<br/>dolor, emergencia, reclamo"]
N --> R["Recontactar<br/>pide más adelante<br/>tarea con fecha"]
F -->|responde| T
T -->|da sus datos| C
R --> T & C
A -->|Recepción decide| T & C & R
C -->|valida el Yape| AG["Agendado"]
U -->|termina en cita| AG
AG --> AT["Atendió"] --> V["Venta"]
AG --> NS["No Show"]
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
0.1 Cómo se califica: por lo que el lead hace, nunca por impresión; con duda, la temperatura más baja
| Estado | Recepción, en horario | Andrea, fuera de horario | Seguimiento |
|---|---|---|---|
| Frío | Solo saluda, manda la pregunta del anuncio o pregunta una sola cosa (precio, ubicación) y no sigue | Le respondió sus primeras dudas y no volvió a escribir (Frío al responder la primera duda) | Pauta: 2 automáticos. Orgánico: ninguno |
| Tibio | Menciona un tratamiento y hace otra pregunta, o responde a un seguimiento. También si pide una cita sin elegir fecha [Propuesta NONDA] | Pide una cita, venga de pauta u orgánico | 2 automáticos, pauta y orgánico |
| Caliente | Ya eligió fecha y hora; solo falta el anticipo por Yape | Sabe que se reserva con anticipo y su tratamiento, y dio nombre, DNI y la fecha en que podría venir. Llega con la etiqueta caliente-andrea | Personal, con llamada. Alerta si pasan 24 h sin contacto |
| Recontactar | Pide expresamente que lo contacten más adelante | No lo marca: deja la tarjeta en Atendido por Andrea con nota de la fecha | Manual: tarea con fecha en GHL |
Un Caliente de Andrea tiene un día posible, sin hora. A primera hora Recepción le ofrece las horas libres de ese día, confirma una y envía los datos del Yape; al validar el pago, la tarjeta pasa a Agendado. Si el último mensaje del lead tiene más de 24 h, llamada; si no contesta, plantilla 2 "Retomar tu consulta" [Propuesta NONDA]. Control de Andrea [Propuesta NONDA]: Recepción revisa a las 9:00, confirma o corrige la etapa y marca Corregido (botón de la pestaña Hoy del panel, campo "Corregido por Jennifer" en GHL). Si en 2 semanas corrige más de 1 de cada 10, revisión con Hernán.
0.2 Hasta dónde responde Andrea
| El lead… | Andrea | Qué hace | Tarjeta |
|---|---|---|---|
| Saluda, pide información, ubicación u horario | Responde | Saluda y pregunta el tratamiento; da la dirección con el mapa y el horario | Frío si no vuelve a escribir |
| Pregunta cómo es el tratamiento | Responde | Explicación corta y general de su base de información | Frío si no vuelve a escribir |
| Pregunta precio o promociones | Responde | Solo el precio "desde" y las promos aprobadas; el precio final se da en la evaluación | Frío si no vuelve a escribir |
| Quiere una cita o pregunta disponibilidad | Responde, sin agendar | Explica el anticipo por Yape [monto por confirmar] y pide nombre completo, DNI y qué día podría venir. No confirma horas | Tibio al pedir la cita; Caliente al dar los datos |
| Pregunta por el pago o el Yape | Solo explica | Se reserva con anticipo; los datos de pago y la hora los envía la asesora | Según lo que haya dado |
| Es de provincia o de fuera de Lima | Responde | Menciona la evaluación virtual [precio y cómo funciona: por confirmar] | Según la regla general |
| Dolor, urgencia, fotos o caso clínico | Se detiene | No opina. Deriva con el mensaje de urgencias | Urgencias |
| Paciente antiguo, reclamo o reprogramación, pide descuento, pregunta fuera de su lista | Se detiene | Deriva a la asesora | Atendido por Andrea (reclamo: Urgencias) |
| Sigue preguntando después de 4 respuestas | Tope | Cierra con el mensaje de derivación | Según lo que haya dado |
Los mensajes fijos dicen cuándo escribe la asesora según la hora de Lima: de lunes a sábado entre 0:00 y 8:59, "hoy a las 9am"; de lunes a viernes después de las 18:00, "mañana a las 9am"; sábado desde las 15:00 y domingo, "el lunes a las 9am"; feriado, el siguiente día hábil.
0.3 Las etapas, una por una
| Etapa | Entra | Tiempo o recibe | Sale a | Quién la mueve |
|---|---|---|---|---|
| Nuevo | El lead escribe por primera vez (automático) | Debe estar en cero. En horario, respuesta en menos de 5 min; si pasa, alerta | Frío, Tibio, Caliente, Recontactar o Urgencias | Automático al entrar |
| Atendido por Andrea | Paciente antiguo, descuento, consulta fuera de su lista o fecha futura | Recepción lo revisa a las 9:00, después de Urgencias y de los Calientes de Andrea | La que corresponda | Andrea entra; Recepción saca |
| Frío | Recepción en horario o Andrea fuera de horario | Pauta: 2 seguimientos cada 3 h. Orgánico: ninguno | Tibio si responde; si no, se queda con sin respuesta hasta el barrido | Recepción o Andrea |
| Tibio | Recepción en horario o Andrea fuera de horario | 2 seguimientos cada 3 h, pauta y orgánico | Caliente al dar los datos o elegir hora; si no, se queda con sin respuesta | Recepción o Andrea |
| Caliente | Recepción: eligió fecha y hora. Andrea: nombre, DNI y fecha posible, con caliente-andrea | Atención personal y llamada, sin automáticos. Alerta a las 24 h sin contacto | Agendado al validar el Yape | Recepción o Andrea |
| Recontactar | Solo Recepción, con tarea con fecha en GHL | El día acordado: plantilla 2 o llamada | Tibio o Caliente | Recepción |
| Urgencias | Recepción, o Andrea fuera de horario con el mensaje de urgencias. Alerta inmediata | El mismo día, con llamada. Nota de a quién se derivó | Agendado si termina en cita; si no, etiqueta resuelto | Recepción o Andrea |
| Agendado | Recepción valida el Yape | Se cortan los seguimientos [Propuesta NONDA: recordatorio 48 h antes, plantilla 4] | Última etapa de leads | Recepción |
| Atendió, Venta, No Show | La clínica | Pipeline de pacientes | Recepción | |
| Perdido | Solo el barrido de fin de mes | Durante el mes es una etiqueta por temperatura (frío-perdido, tibio-perdido, caliente-perdido) con su motivo; la tarjeta se queda donde está | Barrido (Jorge y Miguel) |
Los renombres conservan el ID de la etapa: Lead en Prospección pasa a Frío, Lead Caliente (Hoy) a Caliente, Leads Calientes Por Recontactar a Recontactar y Sporte a Urgencias. Tibio y Atendido por Andrea son etapas nuevas.
0.4 Reglas fijas del sistema
| Cuando… | Pasa esto |
|---|---|
| Entra un lead | Tarjeta a Nuevo, lo más reciente arriba |
| Andrea responde fuera de horario | Frío al responder la primera duda; Tibio si pide cita; Caliente si da nombre, DNI y fecha. Etiqueta andrea [Propuesta NONDA]. Sin calificar: Atendido por Andrea; reclamo o urgencia: Urgencias |
| Tarjeta en Nuevo más de 5 min en horario | Alerta a Recepción |
| Tarjeta en Tibio, o en Frío si vino de pauta | Entra a la cadencia de seguimiento |
| El lead responde un seguimiento | Sale de la automatización y aviso a Recepción |
| Un lead en la cadencia responde al seguimiento de las 8:00 antes de las 9:00 | Andrea en silencio; Recepción lo ve a las 9:00. Un lead nuevo antes de las 9:00 lo atiende Andrea |
| 2 seguimientos sin respuesta | Etiqueta sin respuesta y temperatura. La etapa se queda igual |
| Andrea deja un Caliente | caliente-andrea y tarea a Recepción a las 9:00: confirmar hora y enviar el Yape |
| Caliente sin contacto en 24 h | Alerta a Recepción |
| Se valida el Yape | Tarjeta a Agendado y se cortan los seguimientos |
| El lead pide una fecha futura | Recontactar y tarea con fecha (Recepción) |
| Último día hábil del mes | Barrido por etiqueta de motivo y temperatura |
| Seguimiento a más de 24 h del último mensaje del lead | Sale como plantilla |
| Dolor, urgencia o reclamo | Tarjeta a Urgencias y alerta inmediata |
| Responde "NO" o "BAJA" | Motivo "Pidió no ser contactado" y No Molestar en WhatsApp |
0.5 La mañana de Recepción en el panel (pestaña Hoy)
| Orden | Bloque | Qué hacer |
|---|---|---|
| 1 | Urgencias | Llamar el mismo día y anotar a quién se derivó |
| 2 | Calientes de Andrea | Nombre, DNI, fecha y turno preferidos: ofrecer las horas libres de ese día, confirmar una y enviar el Yape |
| 3 | Atendido por Andrea | Revisar y poner la etapa que corresponda |
| 4 | Nuevos sin respuesta | Más de 5 minutos de horario sin contestar: responder ya |
| 5 | Recontactar con tarea para hoy | Plantilla 2 o llamada |
| 6 | Lo que Andrea calificó desde el último cierre | Confirmar o corregir la etapa y marcar Corregido |
0.6 Cadencia según el origen
| Regla | Detalle |
|---|---|
| Primera respuesta | Menos de 5 minutos |
| Seguimientos | 2, cada 3 h, dentro del horario (lunes a viernes cierra 18:00; sábado 15:00; domingo cerrado) y nunca a menos de 2 h del cierre. Si cae fuera, al siguiente día hábil a las 8:00 |
| Desde cuándo se cuenta | Desde el último mensaje del lead |
| Quién recibe | Tibio siempre; Frío solo si vino de pauta. Orgánico frío: ninguno. Sin plantilla del día 7 |
| Texto | Fijo, distinto en cada seguimiento, sin IA, con "Responde NO si ya no deseas recibir mensajes" |
| Más de 24 h | Sale como plantilla (1 o 1B); a un lead de pauta no se paga si cae dentro de las 72 h del anuncio |
| [Por confirmar] | Si un lead que Recepción ya calificó escribe fuera de horario, Andrea responde sin cambiar la etapa, salvo urgencias |
| Horas de los 2 toques (lunes a viernes) | 9:00 → 12:00 y 15:00 · 10:00 → 13:00 y 16:00 · lunes a jueves 12:00 → 15:00 y día siguiente 8:00 · desde 15:00 → día siguiente 8:00 y 11:00 · viernes igual, con sábado |
| Horas de los 2 toques (fin de semana) | Sábado 9:00 → 12:00 y lunes 8:00 · sábado desde 12:00 y domingo → lunes 8:00 y 11:00 |
0.7 Cómo lo aplica Andrea (código, desde el 29-oct)
El bloque ANDREA V2 de bot/orquestador/crear_sombra.py (nodo Atención), con la etapa en Movimiento, las etiquetas en Etiquetas y los campos en Cerrar turno. Bitácora 137. Corre en n8n y en el servicio en código.
| Pieza | Cómo quedó |
|---|---|
| Modo v2 | Se activa cuando Andrea no ofrece horarios (v4_agenda_proponer = no, o solo_en_horario fuera de horario). Con la agenda encendida sigue el flujo de cupos de octubre y solo cambian la etapa, las etiquetas y los campos |
| Horario | Sale de horario_lv y horario_sabado (sábado 09:00 a 15:00, pendiente de Jorge) y de la tabla feriados. v4_cuando_atiende = fuera_de_horario calla a Andrea de lunes a viernes de 9 a 18 y el sábado de 9 a 15 |
| Cuándo escribe la asesora | La próxima apertura: "hoy a las 9am", "mañana a las 9am", "el lunes a las 9am" o el día por su nombre después de un feriado. En horario, "en unos minutos" |
| Textos fijos | G3.10 a G3.14 salen tal cual y sin Redactor. Si el lead preguntó el precio, la primera frase es el precio de la tabla. Con datos a medias: "solo nos falta…". Pregunta por el pago: el texto de G3.5 |
| Calificación | Frío al responder; Tibio al pedir cita; Caliente con nombre completo, DNI, día posible y tratamiento. Solo sube dentro de Nuevo → Frío → Tibio → Caliente; a Atendido por Andrea solo desde Nuevo o Frío; a Urgencias desde cualquiera salvo Agendado, Atendió y Venta. Las etapas de Recepción no se tocan |
| Derivaciones | Urgencias: dolor, emergencia, foto de la boca, garantía, post-operatorio, reclamo, libro de reclamaciones, devolución. Atendido por Andrea: descuento, reprogramación, paciente antiguo, pedido de persona o consulta sin dato, gestante, propuesta comercial, cuotas, pago reportado, fecha futura |
| Después de derivar | G3.13 una vez; el siguiente mensaje no se contesta. Una pregunta de dato (dirección, precio) se sigue respondiendo. Una urgencia nueva sube a Urgencias |
| Tope | A la quinta respuesta del episodio (desde el último silencio de 24 h), G3.12 con tarea; la etapa queda en su temperatura |
| Etiquetas | atendido por andrea (la andrea del manual), caliente-andrea, pauta u organico, y las de derivación (handoff jennifer, derivar humano, caso-soporte) |
| Campos de GHL | Fuente, Canal, Motivo de contacto, Tratamiento y DNI solo si están vacíos; Fecha preferida y Turno con el último día pedido; Calificó Andrea con la etapa que puso; el nombre del contacto cuando da el completo |
| Tarjeta | El ejecutor la mueve por nombre (sub-flujo 6) y la toca en cada mensaje, también en los turnos mudos, para que GHL la ordene por última actualización |
| Datos por confirmar | anticipo_reserva, urgencias_indicacion, evaluacion_virtual_texto y direccion_mapa están vacíos: el mensaje sale completo sin ellos y los usa apenas se llenan |
0.8 Los seguimientos v2: el Vigía (desde el 29-oct)
El flujo de n8n JQJYXWOfos92vz6c (código en bot/orquestador/vigia_v2_decidir.js, publicado por crear_sombra.py) corre cada 5 minutos con las reglas v2 de vigia_cadencias y le pasa cada acción al mismo Ejecutor de Andrea. Bitácora 138. Ninguna regla mueve una tarjeta de etapa. El reloj del servicio en código sigue armando la ficha del lead para el panel y ya no actúa.
| Pieza | Cómo quedó |
|---|---|
| Quién recibe | Tibio siempre; Frío solo de pauta (etiqueta pauta o atribución de Meta de la tarjeta). Nada a Nuevo, Caliente, Recontactar, Urgencias, Agendado ni Atendido por Andrea. Solo quien escribió desde vigia_v2_desde |
| Cuándo | 3 h desde el último mensaje del lead y 3 h más para el 2.º, entre las 8:00 y 2 h antes del cierre (L-V 16:00, sábado 13:00); si cae fuera, siguiente día hábil a las 8:00. Domingo y feriados cerrados. Pasada la tolerancia de 90 min, no se manda tarde |
| Texto | seguimiento_frio_1/2 y seguimiento_tibio_1/2 en bot_datos_operativos, fijos, con "Responde NO si ya no deseas recibir mensajes" (por aprobar). A más de 24 h: etiqueta plantilla-seguimiento-1-enviar / -1b-enviar si plantilla_seguimiento_1 / _1b tiene valor; vacío, tarea a Recepción "mandar plantilla 1" |
| Responde | Sale de la automatización: se quitan las etiquetas de seguimiento y nace la tarea "Respondió al seguimiento". No vuelve a la cadencia hasta que Recepción cambie la etapa |
| Responde al de las 8:00 antes de las 9:00 | Etiqueta seguimiento-8am-AAAA-MM-DD: Andrea muda, lo ve Recepción a las 9:00 |
| Sin respuesta | 3 h después del 2.º: sin respuesta + frío-perdido o tibio-perdido, Motivo de pérdida "No respondió". La tarjeta se queda |
| NO o BAJA | Andrea pone no contactar (BAJA siempre; NO justo después de un seguimiento, también en horario); el Vigía completa temperatura-perdido, motivo "Pidió no ser contactado" y No Molestar en WhatsApp |
| Alertas | Nuevo con 5 min de horario sin respuesta y Caliente sin contacto en 24 h: tarea a Recepción, una vez por mensaje |
| Quién actúa | Solo con reloj_modo = vivo y v4_ejecutor_modo = vivo, y solo contactos de v4_ejecutor_permitidos o dentro de v4_ejecutor_pct. El resto queda anotado en vigia_sombra |
| Dónde se mira | vigia_sombra (qué decidió, modo, si se ejecutó y el plan), vigia_seguimientos (cada cadencia), vigia_alertas, vigia_latido (última corrida) |
| Prueba | node bot/orquestador/probar_vigia_v2.mjs (reloj simulado, 41 verificaciones, sin n8n ni GHL) y el webhook Prueba (webhook) del Vigía con {ahora, solo, ancla} |
Para prenderlo en vivo, en este orden: (1) la clínica aprueba los cuatro textos; (2) en GHL se crean las etapas Tibio y Atendido por Andrea; (3) si ya hay plantillas 1 y 1B aprobadas, su nombre en plantilla_seguimiento_1 / _1b y un workflow de GHL por etiqueta que las mande y quite la etiqueta; (4) reloj_modo = vivo en Encendido: con v4_ejecutor_pct = 0 actúa solo con los 4 contactos de prueba; (5) a los pacientes los alcanza cuando Hernán suba v4_ejecutor_pct (lo mismo que prende a Andrea v2). Volver atrás: reloj_modo = sombra.
Desde acá, el mapa de octubre (5-oct), como historia: la arquitectura de Andrea v4, sus guardrails y la ruta de rescates anterior a la v2.
Corte 5-oct-2026, con la versión que Jennifer probó del 22-set al 3-oct (43 casos de prueba en verde). Todo lo que dice este documento está leído del sistema vivo: código de bot/orquestador/crear_sombra.py, tablas del Supabase del bot, flujos de n8n, workflows de GHL y una muestra de 400 conversaciones de septiembre.
1. Cómo se trabaja
Ningún arreglo se hace alargando el prompt. Cada corrección de la clínica termina en una de cinco palancas y queda como caso de prueba que se vuelve a correr antes de publicar.
flowchart LR
A["Jennifer prueba en el panel<br/>pestaña Probar"] --> B["Marca 👎 y escribe<br/>lo que esperaba"]
B --> C["Se clasifica la corrección<br/>familia y palanca<br/>orquestador_correcciones"]
C --> D{"¿Qué palanca?"}
D -->|"un dato"| E["Fila de tabla<br/>catálogo · promos · datos operativos"]
D -->|"un texto que la clínica escribió"| F["Respuesta aprobada<br/>bot_respuestas_clinica"]
D -->|"una regla de negocio"| G["Hecho o regla en código<br/>Atención"]
D -->|"algo que nunca debe salir"| H["Guarda que bloquea"]
D -->|"lo leyó mal"| I["Campo del Lector"]
E & F & G & H & I --> J["Caso nuevo en<br/>casos-resueltos.json"]
J --> K["Suite completa<br/>43 de 43 en verde"]
K -->|"rojo"| D
K -->|"verde"| L["Se publica la sombra<br/>+ bitácora + respaldo + commit"]
L --> M["Mensaje corto a la clínica<br/>qué se corrigió y cómo re-probarlo"]
M --> A
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
Reglas del ciclo:
- La clínica escribe el texto, el sistema lo usa tal cual. Si Jennifer sugiere una respuesta, entra como respuesta aprobada y la guarda exige que salga.
- Un arreglo, un caso de prueba. Si no se puede probar, no se da por cerrado.
- Se corre la suite completa antes de publicar, porque un arreglo puede romper otro (pasó con "Lamento" contra "Lamentamos", y con "hija" que mandaba a odontopediatría).
- Todo cambio cierra con bitácora (
bot/estado-actual-andrea.md, secciones 71 a 75 para esta etapa), respaldo (python3 bot/backup_workflows.py) y commit.
2. La arquitectura
flowchart TB
subgraph CANAL["Canal"]
WA["WhatsApp +51 946 887 452"] --> GHL["GHL<br/>contactos · tarjetas · tags"]
IG["Instagram / Messenger"] --> GHL
PANEL["Panel · Probar<br/>la clínica escribe como paciente"]
end
subgraph N8N["n8n"]
F1["Flujo 1 · bot vivo v3<br/>APAGADO desde el 21-set"]
ORQ["Orquestador v4"]
VIG["Vigía · cada hora<br/>decide toques y etapas"]
DL["Dentalink · 2<br/>cupos reales, solo lee"]
end
subgraph V4["Un turno de Andrea v4"]
direction TB
CTX["1 · Contexto<br/>tablas + estado de la conversación"] --> LEC["2 · Lector<br/>modelo lee TODO el hilo<br/>y devuelve datos, no texto"]
LEC --> ATE["3 · Atención · código<br/>elige el carril y arma los hechos"]
ATE --> AG{"¿Pide o acepta cita?"}
AG -->|"sí"| CUP["4 · Cupos de Dentalink<br/>sillón 1 · doctora pedida · día pedido"]
AG -->|"no"| MOV
CUP --> MOV["5 · Movimiento<br/>etapa y tarea de la tarjeta"]
MOV --> ETQ["6 · Etiquetas"]
ETQ --> RED["7 · Redactor · modelo<br/>escribe SOLO con los hechos"]
RED --> GUA["8 · Guardas<br/>bloquean, no reescriben"]
GUA -->|"falla"| REP["9 · Reparar<br/>segundo intento con la falla dicha"]
REP --> GUA2["Guardas 2"]
GUA2 -->|"vuelve a fallar"| FB["Respaldo<br/>respuesta aprobada o texto fijo"]
GUA -->|"pasa"| OUT["10 · Cerrar turno<br/>saludo de la clínica · registro"]
GUA2 -->|"pasa"| OUT
FB --> OUT
end
subgraph DATOS["Supabase · lo que la clínica cambia sin código"]
T1["bot_catalogo<br/>precios y evaluaciones"]
T2["promociones<br/>con fecha de fin"]
T3["orquestador_carriles<br/>qué decir en cada situación"]
T4["bot_respuestas_clinica<br/>textos aprobados"]
T5["bot_datos_operativos<br/>horario · voz · frases vetadas · perillas"]
T6["agenda_doctoras / agenda_ruteo<br/>quién atiende qué"]
end
WA -.-> F1 --> ORQ
PANEL --> ORQ
ORQ --> CTX
CUP <--> DL
DATOS --> CTX
OUT --> GHL
VIG --> GHL
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
Lo que importa de este diseño:
- El modelo no decide nada. El Lector solo lee (¿pidió precio?, ¿quiere cita?, ¿para quién?) y el Redactor solo
escribe. Qué se dice, a qué etapa va la tarjeta y si se deriva lo decide código con reglas que se pueden probar.
- Nada se decide por texto literal. La intención sale de la lectura de toda la conversación, con redes de código
para los casos que el Lector falla (fecha de cita, "para mi hija", "pásame con una persona").
- Toda cifra sale de una tabla. Si un precio no está en los hechos del turno, la guarda bloquea el mensaje.
El orden en que se elige qué decir (carriles)
flowchart TD
S(["Mensaje del paciente"]) --> M{"¿Silencio?<br/>no contactar · en pausa<br/>ya derivado · Recepción escribió"}
M -->|"sí"| MU["mudo: Andrea no contesta"]
M -->|"no"| D{"¿Se despide?"}
D -->|"sí"| DE["despedida: una frase cálida"]
D -->|"no"| RA{"¿Respuesta aprobada<br/>que deriva?<br/>reclamo · devolución · libro · dolor"}
RA -->|"sí"| DA["deriva-asesora"]
RA -->|"no"| G{"¿Garantía o queja<br/>de un trabajo hecho?"}
G -->|"sí"| GQ["garantía: lamenta y coordina revisión"]
G -->|"no"| PP{"¿Pide una persona?"}
PP -->|"sí"| PE["pide-persona: deriva"]
PP -->|"no"| FA{"¿Algo que no hacemos<br/>o propuesta comercial?"}
FA -->|"sí"| FX["fuera-de-alcance"]
FA -->|"no"| PA{"¿Reportó un pago?"}
PA -->|"sí"| PG["pago: Recepción valida"]
PA -->|"no"| FL{"¿Está fuera de Lima?"}
FL -->|"sí"| FV["evaluación virtual"]
FL -->|"no"| CI{"¿Pide o acepta la cita<br/>con el precio ya dado?"}
CI -->|"sí"| AGE["agenda: cupos reales<br/>o una asesora confirma"]
CI -->|"no"| RH{"¿Prótesis, piezas faltantes,<br/>trabajo previo?"}
RH -->|"sí"| RE["rehabilitación: evaluación<br/>especializada, sin estética"]
RH -->|"no"| AN{"¿Vino por un anuncio?"}
AN -->|"botón reservar"| PB["pregunta el tratamiento"]
AN -->|"promo"| PR["da la promo con su precio"]
AN -->|"no"| TR{"¿Dijo el tratamiento?"}
TR -->|"pidió precio"| PC["precio + evaluación"]
TR -->|"sin pedir precio"| GE["presenta el servicio sin cifras"]
TR -->|"pregunta concreta"| PD["pregunta-directa"]
TR -->|"nada aún"| SA["saludo: ¿qué tratamiento buscas?"]
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
3. Los guardrails
Cada uno bloquea el mensaje y obliga a reescribirlo; si el segundo intento falla, sale la respuesta aprobada o el texto fijo del carril. Nunca sale un mensaje que viole uno de estos.
mindmap
root((Guardas))
Precios
Solo cifras de las tablas
No repetir un precio ya dicho
No dar precio si no lo pidió
Promo con su precio regular como antes
Promo con sus condiciones
Nada es gratis
No cobrar aparte la evaluación incluida
Agenda
Solo horas de los cupos reales
Domingo cerrado
Nunca dice que no hay cupos, se valida
Sillón 1 para todas las doctoras
Máximo 4 pacientes por hora
Solo confirma el cupo elegido
Día u hora sin cupo se dice
Derivación
Paso de mano solo si deriva
Una sola vez por mensaje
Una de nuestras asesoras, nunca Jennifer
Clínico
Sin estética en rehabilitación
Servicios que no existen
Plazos solo de las tablas
Respuesta aprobada se usa literal
Tono
Máximo 420 caracteres
Sin muletillas ni frases vetadas
Sin listas de tratamientos
No habla del sistema
Saludo de la clínica al inicio
Negocio
Propuestas comerciales a Dirección
Ubicación no se pregunta
Cerca solo con distrito vecino
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
Lo que quedó establecido con las pruebas de la clínica (22-set al 3-oct)
| Tema | Regla vigente |
|---|---|
| Evaluaciones | General S/ 80 (lo general: dolor, limpieza, blanqueamiento, placa) · brackets van a la especializada S/ 150 · estética y especializada S/ 150 · ortodoncia invisible S/ 400 · odontopediátrica S/ 150 solo con edad de 12 años o menos |
| Incluyen evaluación | Limpieza y blanqueamiento |
| Precios con "desde" | Endodoncia desde S/ 600 · control de brackets desde S/ 200 según el tipo · invisible entre S/ 5,000 y S/ 10,000 |
| Promos | Se dicen "S/ 900 (antes S/ 1,200)" con sus condiciones · carillas, piezas faltantes e implantes hasta el 30-oct · el pack venció el 30-set |
| Pasan a una asesora | Dolor · reclamo · devolución · libro de reclamaciones · pide hablar con una persona · cita sin cupo a la vista |
| Responde sin derivar | Historia clínica: por correo a administración, 5 días hábiles · diferencia corona e implante con el texto de la clínica |
| Garantía | Lamenta lo sucedido y coordina la cita de revisión |
| Agenda | Máximo 4 pacientes por hora en toda la clínica (cuenta Dentalink; no cuentan anuladas, cambio de fecha ni no asiste) · solo se confirma el cupo que el paciente eligió y ahí van los datos de pago de la reserva · Sillón 1 para todas · domingo cerrado · sábado de 9 a 1 · si pide una doctora se miran sus cupos · si el día pedido no tiene cupo se dice y se ofrecen los más cercanos · la fecha de la cita nunca pausa la conversación |
| Rehabilitación | Prótesis o piezas faltantes van a evaluación especializada, sin ofrecer estética · si la cita es para un familiar, manda el tratamiento del familiar |
| Voz | "Por supuesto, realizamos…" · saludo fijo en el primer mensaje · "una de nuestras asesoras" |
4. La ruta del lead con sus rescates
4.1 Cómo está diseñada hoy
stateDiagram-v2
direction LR
[*] --> NuevoLead: escribe por primera vez
NuevoLead --> LeadCaliente: pide cita o acepta precio
NuevoLead --> NuevoLead: toque 1 a las 3 h<br/>30 min si quiso agendar hoy
NuevoLead --> NuevoLead: toque 2 a las 6 h
NuevoLead --> Prospeccion: 48 h callado
LeadCaliente --> Recontactar: 24 h callado
Recontactar --> Recontactar: plantilla 48 h<br/>día 7 · día 30
Recontactar --> LeadCaliente: vuelve a escribir
Prospeccion --> Prospeccion: cola manual para Recepción
Prospeccion --> NuevoLead: vuelve a escribir
Prospeccion --> Perdido: 14 días callado
LeadCaliente --> Agendado: cita creada
Agendado --> Atendio
Agendado --> NoShow
Atendio --> Venta
Perdido --> [*]: campaña mensual a la base
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
Nueve etapas, siete toques distintos y una cola manual. Es más de lo que la clínica puede seguir, y la auditoría dice que la mitad no rinde.
4.2 Lo que encontró la auditoría
a) Cuánto contesta la gente a cada toque (muestra de 400 leads de septiembre, respuesta dentro de 48 h):
| Toque | Enviados | Contestaron | % |
|---|---|---|---|
| Primer toque a las 3 h | 218 | 22 | 10% |
| Toque a las 6 h | 82 | 4 | 5% |
| Segundo toque el mismo día | 29 | 0 | 0% |
| Recordatorio a las 24 h | 172 | 14 | 8% |
| Plantilla de 48 h (a quien ya tenía precio, medido el 15-set) | 18 | 4 | 22% |
| Toque del día 7 | nunca salió | ||
| Cola manual de Prospección (medido el 2-set) | 219 encolados | 2 enviados | |
| Campaña de aniversario a la base | 179 | 13 | 7% |
El primer toque y la plantilla a quien ya tenía precio rinden. El segundo toque del mismo día rinde 0 y la cola manual nunca funcionó: se generaba y nadie la abría.
b) Lo que pasa hoy, con el bot apagado desde el 21-set:
- Los leads nuevos no tienen tarjeta. La tarjeta la creaba el flujo 1. La semana del 21-set nacieron 55 tarjetas
y la del 28-set ninguna, contra 375 por semana antes. El tablero ya no refleja la demanda.
- Recepción contesta a mano, tarde. Muestra de 60 leads del 23-set al 1-oct: 49 contestados en el día, 8 después y
2 nunca. Mediana: 11.5 horas desde el primer mensaje. Con el bot eran segundos, y en agosto, cuando Recepción contestaba al derivado en menos de 2 h, cerraba el 59% contra 29% después.
- Los rescates están apagados y el archivo sigue prendido. Los flujos de toques (3, 12, 14, 15) están apagados; el 8
(enfriar) y el 11 (archivar a Perdido) siguen corriendo. Prospección bajó de 676 tarjetas a 185 en dos semanas: unas 490 personas salieron del tablero sin un solo intento de rescate.
4.3 La ruta propuesta: tres rescates y nada más
stateDiagram-v2
direction LR
[*] --> Conversando: escribe · Andrea contesta al instante
Conversando --> QuiereCita: pide cita o acepta precio
Conversando --> Seguimiento: se queda callado
state Seguimiento {
direction LR
R1: Rescate 1 · a las 3 h<br/>mensaje libre
R2: Rescate 2 · día 2<br/>plantilla, solo si ya tenía precio
R3: Rescate 3 · fin de mes<br/>campaña de la promo del mes
R1 --> R2: sigue callado
R2 --> R3: sigue callado
}
Seguimiento --> Conversando: contesta
Seguimiento --> Frio: 14 días sin respuesta
QuiereCita --> Agendado: cupo elegido o Recepción confirma
Agendado --> Atendio
Atendio --> Venta
Frio --> [*]: queda en la base para campañas
Rueda para acercar, arrastra para moverte, doble clic para ajustar.
| Rescate | Cuándo | A quién | Cómo | Por qué este |
|---|---|---|---|---|
| 1 | 3 h de silencio (30 min si quería cita hoy) | Todos | Mensaje libre dentro de la ventana de 24 h, sin costo | Rinde 10%, el mejor de los mensajes libres |
| 2 | Día 2 | Solo quien ya recibió precio o pidió cita | Plantilla aprobada por Meta | Rinde 22% en ese grupo; a quien no calificó no se le paga plantilla |
| 3 | Fin de mes | Toda la base fría | Campaña con la promo del mes | 7% y no carga a nadie de tareas manuales |
Se apaga: el toque de 6 h, el segundo toque del mismo día, el día 7, el día 30 y la cola manual de Prospección. Se fusionan Recontactar y Prospección en una sola etapa automática, Seguimiento, que Recepción no tiene que mirar. Recepción solo ve dos columnas: Quiere cita y Agendado.
4.4 Inventario de activos: qué queda y qué se apaga
| Activo | Dónde | Hoy | Propuesta |
|---|---|---|---|
| Andrea v4 (orquestador + Lector + Redactor + guardas) | n8n | En prueba | Se queda: es el bot |
| Bot v3 (flujo 1) | n8n | Apagado | Se reemplaza por la v4 |
| Dentalink · 2 · cupos | n8n | Prendido | Se queda |
| Vigía (toques y etapas por hora) | n8n | En prueba | Se queda: reemplaza a los flujos 3, 8, 11, 12, 14 y 15 |
| Flujo 3 · rescate 30 min / 3 h / 6 h | n8n | Apagado | Lo absorbe el Vigía (solo rescate 1) |
| Flujo 12 · recordatorio 6 h y Recontactar | n8n | Apagado | Se apaga |
| Flujo 14 · cola manual de Prospección | n8n | Apagado | Se apaga |
| Flujo 15 · 48 h / día 7 / día 30 | n8n | Apagado | Lo absorbe el Vigía (solo rescate 2) |
| Flujo 8 · enfriar y reactivar | n8n | Prendido | Lo absorbe el Vigía |
| Flujo 11 · archivar a Perdido | n8n | Prendido | Se pausa hasta que vuelvan los rescates |
| Flujos 2, 4, 5, 6, 13 · derivar, verificar entrega, audio e imagen, mover y crear tarjeta | n8n | Prendidos | Se quedan: los usa el bot |
| Flujos 9, 10, 16 · reporte diario, citas en el chat, foto del tablero | n8n | Prendidos | Se quedan: miden |
48h Recontact WhatsApp | GHL | Publicado | Se queda: rescate 2 |
7-Day Reactivation Message | GHL | Publicado | Se apaga |
Monthly Remarketing Drip y Remarketing (9,000) | GHL | Publicados | Uno solo: rescate 3, la campaña del mes |
| Seis workflows del snapshot inicial | GHL | Borrador | Se borran |
4.5 Cómo se le explica a la clínica
Andrea contesta al instante a cada persona que escribe. Si la persona se queda callada, la buscamos tres veces: a las 3 horas, al día siguiente si ya le dimos precio, y en la campaña del mes. Recepción solo ve a quien quiere cita. Todo lo demás corre solo.
5. Lo que hay que decidir, en orden
- Encender la v4 en vivo. Es la palanca más grande: hoy cada lead espera una mediana de 11.5 horas y no tiene tarjeta.
- Pausar el flujo 11 (archivar a Perdido) mientras los rescates estén apagados: hoy se archivan unas 245 personas por semana sin haberlas buscado.
- Aprobar la ruta de tres rescates y el tablero de dos columnas para Recepción (cambia el pipeline de GHL).
- Confirmar la plantilla del rescate 2: la que ya manda el workflow
48h Recontact WhatsAppde GHL.