flowchart LR
START([📞 Llamada entrante]):::start --> ROUTER
ROUTER{{"Router · Recepción
identifica RUT + clasifica"}}:::router
ROUTER <--> TAR["💳 Tarjetas"]:::area
ROUTER <--> CTA["🏦 Cuentas y Transferencias"]:::area
ROUTER <--> INV["📈 Inversiones"]:::area
ROUTER <--> CRE["📄 Créditos"]:::area
ROUTER <--> BCI["🔐 BciPass / Seguridad"]:::area
ROUTER <--> SEG["🛡️ Seguros"]:::area
ROUTER <--> OTR["🅿️ Otros · general"]:::area
TAR --> SELF[["✅ Autoservicio
informa / guía la App Beceí"]]:::self
CTA --> SELF
INV --> SELF
CRE --> SELF
BCI --> SELF
SEG --> SELF
OTR --> SELF
TAR --> EXE(["🙋 Ejecutivo humano
end_call + contexto"]):::exe
CTA --> EXE
INV --> EXE
CRE --> EXE
BCI --> EXE
SEG --> EXE
OTR --> EXE
classDef start fill:#fbed00,stroke:#d6c900,color:#1a1a1a,font-weight:bold;
classDef router fill:#005a8c,stroke:#005a8c,color:#ffffff,font-weight:bold;
classDef area fill:#e6f3fb,stroke:#007ebf,color:#005a8c;
classDef self fill:#e7f7ee,stroke:#00a94b,color:#1a6b3a;
classDef exe fill:#ffffff,stroke:#6b7280,color:#4a5260;
Aristas bidireccionales
Router ↔ área: forward deriva por intención; backward devuelve al router cuando el cliente plantea otra cosa, y re-deriva.
Prompt base compartido
Identidad, tono, perfil del cliente y reglas viven en el prompt base que heredan los 8 nodos. Cada área solo agrega su additional_prompt.
Sin tools de datos
Toda la información sale del perfil simulado. La única herramienta es end_call, que en la demo modela el traspaso al ejecutivo.
Testing automatizado
Una suite de tests de simulación corre cada flujo y caso límite contra un usuario simulado, para validar el routing tras cada cambio de prompt.
Guardrails
Privacidad en voz (sin leer datos completos), anti-alucinación, resistencia a desvíos y salida siempre disponible a un ejecutivo humano.
Optimizado para voz
Voz consistente con producción, TTS de baja latencia y turn-taking afinado para que la respuesta se sienta inmediata.