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

EstadoRecepción, en horarioAndrea, fuera de horarioSeguimiento
FríoSolo saluda, manda la pregunta del anuncio o pregunta una sola cosa (precio, ubicación) y no sigueLe respondió sus primeras dudas y no volvió a escribir (Frío al responder la primera duda)Pauta: 2 automáticos. Orgánico: ninguno
TibioMenciona 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ánico2 automáticos, pauta y orgánico
CalienteYa eligió fecha y hora; solo falta el anticipo por YapeSabe 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-andreaPersonal, con llamada. Alerta si pasan 24 h sin contacto
RecontactarPide expresamente que lo contacten más adelanteNo lo marca: deja la tarjeta en Atendido por Andrea con nota de la fechaManual: 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…AndreaQué haceTarjeta
Saluda, pide información, ubicación u horarioRespondeSaluda y pregunta el tratamiento; da la dirección con el mapa y el horarioFrío si no vuelve a escribir
Pregunta cómo es el tratamientoRespondeExplicación corta y general de su base de informaciónFrío si no vuelve a escribir
Pregunta precio o promocionesRespondeSolo el precio "desde" y las promos aprobadas; el precio final se da en la evaluaciónFrío si no vuelve a escribir
Quiere una cita o pregunta disponibilidadResponde, sin agendarExplica el anticipo por Yape [monto por confirmar] y pide nombre completo, DNI y qué día podría venir. No confirma horasTibio al pedir la cita; Caliente al dar los datos
Pregunta por el pago o el YapeSolo explicaSe reserva con anticipo; los datos de pago y la hora los envía la asesoraSegún lo que haya dado
Es de provincia o de fuera de LimaRespondeMenciona la evaluación virtual [precio y cómo funciona: por confirmar]Según la regla general
Dolor, urgencia, fotos o caso clínicoSe detieneNo opina. Deriva con el mensaje de urgenciasUrgencias
Paciente antiguo, reclamo o reprogramación, pide descuento, pregunta fuera de su listaSe detieneDeriva a la asesoraAtendido por Andrea (reclamo: Urgencias)
Sigue preguntando después de 4 respuestasTopeCierra con el mensaje de derivaciónSegú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

EtapaEntraTiempo o recibeSale aQuién la mueve
NuevoEl lead escribe por primera vez (automático)Debe estar en cero. En horario, respuesta en menos de 5 min; si pasa, alertaFrío, Tibio, Caliente, Recontactar o UrgenciasAutomático al entrar
Atendido por AndreaPaciente antiguo, descuento, consulta fuera de su lista o fecha futuraRecepción lo revisa a las 9:00, después de Urgencias y de los Calientes de AndreaLa que correspondaAndrea entra; Recepción saca
FríoRecepción en horario o Andrea fuera de horarioPauta: 2 seguimientos cada 3 h. Orgánico: ningunoTibio si responde; si no, se queda con sin respuesta hasta el barridoRecepción o Andrea
TibioRecepción en horario o Andrea fuera de horario2 seguimientos cada 3 h, pauta y orgánicoCaliente al dar los datos o elegir hora; si no, se queda con sin respuestaRecepción o Andrea
CalienteRecepción: eligió fecha y hora. Andrea: nombre, DNI y fecha posible, con caliente-andreaAtención personal y llamada, sin automáticos. Alerta a las 24 h sin contactoAgendado al validar el YapeRecepción o Andrea
RecontactarSolo Recepción, con tarea con fecha en GHLEl día acordado: plantilla 2 o llamadaTibio o CalienteRecepción
UrgenciasRecepción, o Andrea fuera de horario con el mensaje de urgencias. Alerta inmediataEl mismo día, con llamada. Nota de a quién se derivóAgendado si termina en cita; si no, etiqueta resueltoRecepción o Andrea
AgendadoRecepción valida el YapeSe cortan los seguimientos [Propuesta NONDA: recordatorio 48 h antes, plantilla 4]Última etapa de leadsRecepción
Atendió, Venta, No ShowLa clínicaPipeline de pacientesRecepción
PerdidoSolo el barrido de fin de mesDurante 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 leadTarjeta a Nuevo, lo más reciente arriba
Andrea responde fuera de horarioFrí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 horarioAlerta a Recepción
Tarjeta en Tibio, o en Frío si vino de pautaEntra a la cadencia de seguimiento
El lead responde un seguimientoSale 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:00Andrea en silencio; Recepción lo ve a las 9:00. Un lead nuevo antes de las 9:00 lo atiende Andrea
2 seguimientos sin respuestaEtiqueta sin respuesta y temperatura. La etapa se queda igual
Andrea deja un Calientecaliente-andrea y tarea a Recepción a las 9:00: confirmar hora y enviar el Yape
Caliente sin contacto en 24 hAlerta a Recepción
Se valida el YapeTarjeta a Agendado y se cortan los seguimientos
El lead pide una fecha futuraRecontactar y tarea con fecha (Recepción)
Último día hábil del mesBarrido por etiqueta de motivo y temperatura
Seguimiento a más de 24 h del último mensaje del leadSale como plantilla
Dolor, urgencia o reclamoTarjeta 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)

OrdenBloqueQué hacer
1UrgenciasLlamar el mismo día y anotar a quién se derivó
2Calientes de AndreaNombre, DNI, fecha y turno preferidos: ofrecer las horas libres de ese día, confirmar una y enviar el Yape
3Atendido por AndreaRevisar y poner la etapa que corresponda
4Nuevos sin respuestaMás de 5 minutos de horario sin contestar: responder ya
5Recontactar con tarea para hoyPlantilla 2 o llamada
6Lo que Andrea calificó desde el último cierreConfirmar o corregir la etapa y marcar Corregido

0.6 Cadencia según el origen

ReglaDetalle
Primera respuestaMenos de 5 minutos
Seguimientos2, 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 cuentaDesde el último mensaje del lead
Quién recibeTibio siempre; Frío solo si vino de pauta. Orgánico frío: ninguno. Sin plantilla del día 7
TextoFijo, distinto en cada seguimiento, sin IA, con "Responde NO si ya no deseas recibir mensajes"
Más de 24 hSale 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.

PiezaCómo quedó
Modo v2Se 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
HorarioSale 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 asesoraLa 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 fijosG3.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ónFrí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
DerivacionesUrgencias: 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 derivarG3.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
TopeA la quinta respuesta del episodio (desde el último silencio de 24 h), G3.12 con tarea; la etapa queda en su temperatura
Etiquetasatendido por andrea (la andrea del manual), caliente-andrea, pauta u organico, y las de derivación (handoff jennifer, derivar humano, caso-soporte)
Campos de GHLFuente, 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
TarjetaEl 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 confirmaranticipo_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.

PiezaCómo quedó
Quién recibeTibio 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ándo3 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
Textoseguimiento_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"
RespondeSale 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:00Etiqueta seguimiento-8am-AAAA-MM-DD: Andrea muda, lo ve Recepción a las 9:00
Sin respuesta3 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 BAJAAndrea 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
AlertasNuevo 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úaSolo 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 miravigia_sombra (qué decidió, modo, si se ejecutó y el plan), vigia_seguimientos (cada cadencia), vigia_alertas, vigia_latido (última corrida)
Pruebanode 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:

  1. 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.
  2. Un arreglo, un caso de prueba. Si no se puede probar, no se da por cerrado.
  3. 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).
  4. 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:

escribe. Qué se dice, a qué etapa va la tarjeta y si se deriva lo decide código con reglas que se pueden probar.

para los casos que el Lector falla (fecha de cita, "para mi hija", "pásame con una persona").

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)

TemaRegla vigente
EvaluacionesGeneral 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ónLimpieza 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
PromosSe 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 asesoraDolor · reclamo · devolución · libro de reclamaciones · pide hablar con una persona · cita sin cupo a la vista
Responde sin derivarHistoria clínica: por correo a administración, 5 días hábiles · diferencia corona e implante con el texto de la clínica
GarantíaLamenta lo sucedido y coordina la cita de revisión
AgendaMá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ónPró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):

ToqueEnviadosContestaron%
Primer toque a las 3 h2182210%
Toque a las 6 h8245%
Segundo toque el mismo día2900%
Recordatorio a las 24 h172148%
Plantilla de 48 h (a quien ya tenía precio, medido el 15-set)18422%
Toque del día 7nunca salió
Cola manual de Prospección (medido el 2-set)219 encolados2 enviados
Campaña de aniversario a la base179137%

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:

y la del 28-set ninguna, contra 375 por semana antes. El tablero ya no refleja la demanda.

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.

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

RescateCuándoA quiénCómoPor qué este
13 h de silencio (30 min si quería cita hoy)TodosMensaje libre dentro de la ventana de 24 h, sin costoRinde 10%, el mejor de los mensajes libres
2Día 2Solo quien ya recibió precio o pidió citaPlantilla aprobada por MetaRinde 22% en ese grupo; a quien no calificó no se le paga plantilla
3Fin de mesToda la base fríaCampaña con la promo del mes7% 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

ActivoDóndeHoyPropuesta
Andrea v4 (orquestador + Lector + Redactor + guardas)n8nEn pruebaSe queda: es el bot
Bot v3 (flujo 1)n8nApagadoSe reemplaza por la v4
Dentalink · 2 · cuposn8nPrendidoSe queda
Vigía (toques y etapas por hora)n8nEn pruebaSe queda: reemplaza a los flujos 3, 8, 11, 12, 14 y 15
Flujo 3 · rescate 30 min / 3 h / 6 hn8nApagadoLo absorbe el Vigía (solo rescate 1)
Flujo 12 · recordatorio 6 h y Recontactarn8nApagadoSe apaga
Flujo 14 · cola manual de Prospecciónn8nApagadoSe apaga
Flujo 15 · 48 h / día 7 / día 30n8nApagadoLo absorbe el Vigía (solo rescate 2)
Flujo 8 · enfriar y reactivarn8nPrendidoLo absorbe el Vigía
Flujo 11 · archivar a Perdidon8nPrendidoSe pausa hasta que vuelvan los rescates
Flujos 2, 4, 5, 6, 13 · derivar, verificar entrega, audio e imagen, mover y crear tarjetan8nPrendidosSe quedan: los usa el bot
Flujos 9, 10, 16 · reporte diario, citas en el chat, foto del tableron8nPrendidosSe quedan: miden
48h Recontact WhatsAppGHLPublicadoSe queda: rescate 2
7-Day Reactivation MessageGHLPublicadoSe apaga
Monthly Remarketing Drip y Remarketing (9,000)GHLPublicadosUno solo: rescate 3, la campaña del mes
Seis workflows del snapshot inicialGHLBorradorSe 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

  1. 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.
  2. Pausar el flujo 11 (archivar a Perdido) mientras los rescates estén apagados: hoy se archivan unas 245 personas por semana sin haberlas buscado.
  3. Aprobar la ruta de tres rescates y el tablero de dos columnas para Recepción (cambia el pipeline de GHL).
  4. Confirmar la plantilla del rescate 2: la que ya manda el workflow 48h Recontact WhatsApp de GHL.