All diagrams //5 of 5
Open Inicio BOT - Alfin
🌊
Inicio BOT - Alfin
24 Sep, 2026
%% Titulo: 01 - Vista general
%% Descripcion: Vista general del bot: clasificacion del contacto, ruteo a los modulos y salidas principales.
%% Leyenda: verde = inicio o fin normal · rojo (circulo doble) = fin por error o sin respuesta · ambar (rombo) = decision o menu · azul (doble borde) = modulo detallado en otro diagrama del set · morado = derivacion o salida del bot.
%%{init: {'flowchart': {'curve': 'stepAfter'}}}%%
flowchart TD
inicio(["Cliente escribe por WhatsApp"])
intentNlu(["Intencion reconocida por lenguaje natural"])
subgraph etapaInicio["Inicio y clasificacion"]
canalWsp{"Canal WhatsApp?"}
esPromotor{"Celular registrado como promotor?"}
bienvenidaGen["Bienvenida generica y pedido de celular"]
end
subgraph etapaCliente["Cliente"]
aliado[["Aliado Comercial"]]
interes[["Bienvenida al cliente"]]
identificacion[["Identificacion, consentimientos y registro"]]
end
subgraph etapaMenu["Menu principal"]
menuPrincipal{"Menu principal: 8 opciones"}
op1[["1 Prestamo"]]
op2[["2 Ahorro Meta"]]
op3[["3 Deposito a Plazo"]]
op4[["4 Donde pagar"]]
op5[["5 Agencias"]]
op6[["6 Productos y servicios"]]
op7[["7 Otras consultas"]]
op8[["8 Asesor: Banca Telefonica"]]
end
subgraph etapaIntenciones["Intenciones"]
intents[["DPF, Prestamo al toque, Solicitar producto, Quejas"]]
end
colaAsesores(["Cola Derivacion Digital Asesores"])
salidaAsesor(["Salida del bot a asesor o cola indicada"])
salidaCierre(["Salida del bot: cierre"])
finConv(["Fin de la conversacion"])
finError((("Fin por error, sin respuesta u opcion invalida")))
inicio --> canalWsp
canalWsp -->|"Si"| esPromotor
canalWsp -->|"No"| bienvenidaGen
esPromotor -->|"Si"| aliado
esPromotor -->|"No"| interes
aliado --> finConv
interes --> identificacion
bienvenidaGen --> identificacion
identificacion -->|"Rechaza datos personales"| finConv
identificacion --> menuPrincipal
menuPrincipal -->|"1"| op1
menuPrincipal -->|"2"| op2
menuPrincipal -->|"3"| op3
menuPrincipal -->|"4"| op4
menuPrincipal -->|"5"| op5
menuPrincipal -->|"6"| op6
menuPrincipal -->|"7"| op7
menuPrincipal -->|"8"| op8
menuPrincipal -->|"Invalida o sin respuesta"| finError
op1 -->|"Quiere asesor"| colaAsesores
op1 -->|"Falla del servicio"| finError
op3 -->|"No quiere ubicacion"| salidaCierre
op7 -->|"Constancia o asesor en horario"| salidaAsesor
intentNlu --> intents
intents --> salidaAsesor
classDef terminal fill:#166534,color:#fff
classDef errorTerminal fill:#7f1d1d,color:#fff
classDef decision fill:#a16207,color:#fff
classDef action fill:#1e3a5f,color:#fff
classDef transfer fill:#4c1d95,color:#fff
class inicio,intentNlu,finConv terminal
class finError errorTerminal
class canalWsp,esPromotor,menuPrincipal decision
class bienvenidaGen,aliado,interes,identificacion,op1,op2,op3,op4,op5,op6,op7,op8,intents action
class colaAsesores,salidaAsesor,salidaCierre transfer
Open Bot Oftalmo Confirma Cita
🔶
Bot Oftalmo Confirma Cita
21 Sep, 2026
flowchart TD
classDef start fill:#90EE90,stroke:#333,stroke-width:2px,color:darkgreen
classDef step fill:#87CEEB,stroke:#333,stroke-width:2px,color:darkblue
classDef decision fill:#FFD700,stroke:#333,stroke-width:2px,color:black
classDef ext fill:#E6E6FA,stroke:#333,stroke-width:2px,color:darkblue
classDef bad fill:#FFB6C1,stroke:#DC143C,stroke-width:2px,color:black
classDef ok fill:#C8F7C5,stroke:#333,stroke-width:2px,color:darkgreen
classDef outcome fill:#FFDAB9,stroke:#333,stroke-width:2px,color:black
S(["📞 Persona en vivo entra al<br/>OB_BOT_CONFIRMACION_CITA"]):::start
S --> INI["⚙️ Init: cargar Call.Contact<br/>Repeticiones=0, Invalidos=0"]:::step
INI --> P1["🔊 Saludo grabado + TTS datos<br/>+ menú grabado"]:::step
P1 --> DTMF{"⌨️ Collect Input<br/>1 dígito"}:::decision
DTMF -->|"1"| DAC["🔌 WS_CONFIRMAR_ANULAR_CITA<br/>secuencia=cod_cita, estado=Confirma"]:::ext
DTMF -->|"2"| DAA["🔌 WS_CONFIRMAR_ANULAR_CITA<br/>secuencia=cod_cita, estado=Anula"]:::ext
DTMF -->|"3"| M3["🔊 Permanezca en línea"]:::step
DTMF -->|"9"| R9{"¿Repeticiones ≤ 2?"}:::decision
DTMF -->|"Otro / timeout"| INV{"¿Invalidos ≤ 2?"}:::decision
R9 -->|Sí| P1
R9 -->|No| WSR
INV -->|"Sí: repetir menú"| P2["🔊 Solo menú grabado"]:::step
P2 --> DTMF
INV -->|No| WSR["🏷️ Wrap-up SIN_RESPUESTA_DTMF<br/>Colgar sin llamar al WS"]:::bad
DAC --> OKC{"¿Éxito?"}:::decision
OKC -->|Sí| FOC["🎯 Flow Outcome<br/>CALL_OUT_CONFIRMA_CITA = Success"]:::outcome
FOC --> M1["🔊 Mensaje de confirmación"]:::step
M1 --> WC["🏷️ Wrap-up CITA_CONFIRMADA<br/>Colgar"]:::ok
OKC -->|No| FOCF["🎯 Flow Outcome<br/>CALL_OUT_CONFIRMA_CITA = Failure"]:::outcome
FOCF --> ERR["🔊 Disculpa"]:::step
DAA --> OKA{"¿Éxito?"}:::decision
OKA -->|Sí| FOA["🎯 Flow Outcome<br/>CALL_OUT_ANULA_CITA = Success"]:::outcome
FOA --> M2["🔊 Mensaje de anulación"]:::step
M2 --> WA["🏷️ Wrap-up CITA_ANULADA<br/>Colgar"]:::ok
OKA -->|No| FOAF["🎯 Flow Outcome<br/>CALL_OUT_ANULA_CITA = Failure"]:::outcome
FOAF --> ERR
ERR --> WE["🏷️ Wrap-up ERROR_WS_CITA<br/>Colgar"]:::bad
M3 --> SPD["📝 Set Participant Data<br/>cod_cita, nombre"]:::step
SPD --> FOR["🎯 Flow Outcome<br/>CALL_OUT_REPROGRAMA_CITA = Success"]:::outcome
FOR --> ACD{"👥 Transfer to ACD<br/>cola 1- general"}:::ext
ACD -->|Transferida| AG["🧑💼 Asesor reprograma<br/>y fija el wrap-up"]:::ok
ACD -->|Falla| ERD["🔊 Disculpa"]:::step
ERD --> WD["🏷️ Wrap-up ERROR_DERIVACION<br/>Colgar"]:::badOpen OPC2 IVR Calidda Nuevo
▪️
OPC2 IVR Calidda Nuevo
18 Sep, 2026
flowchart TD
classDef decision fill:#FFD700,stroke:#333,stroke-width:2px,color:black
classDef dataAction fill:#90EE90,stroke:#333,stroke-width:2px,color:darkgreen
classDef terminal fill:#D3D3D3,stroke:#333,stroke-width:2px,color:black
classDef audio fill:#FFE4B5,stroke:#333,stroke-width:1px,color:#333
classDef open fill:#FFB6C1,stroke:#DC143C,stroke-width:2px,color:black
START["▶️ (continúa desde Solicitar Codigo cliente, sin cambios)"] --> DA_IVR["🔧 Consulta IVR - PROD"]:::dataAction
DA_IVR -->|"Failure/Timeout"| T_CONS["🔀 Jump to Reusable Task: Transferencia Consultas"]:::terminal
DA_IVR -->|"Success"| D_DEUDA{{"❓ ToNumber(MONTO_DEUDA) > 0"}}:::decision
D_DEUDA -->|"No"| CT_CEL["📋 Call Task: Solicitar celular"]:::dataAction
D_DEUDA -->|"Sí"| D_RECIBOS{{"❓ ToInt(NRO_RECIBOS_PEND) >= 2"}}:::decision
D_RECIBOS -->|"Sí"| PA_SUSP["🔊 Audio: servicio suspendido"]:::audio --> DISC1["📵 Disconnect"]:::terminal
D_RECIBOS -->|"No"| PA_ERR["🔊 Audio: error y corte"]:::audio --> DISC2["📵 Disconnect"]:::terminal
CT_CEL -->|"Correcto"| DA_RECON["🔧 Reconexion - PROD"]:::dataAction
DA_RECON -->|"Failure/Timeout"| T_CONS2["🔀 Jump to Reusable Task: Transferencia Consultas"]:::terminal
DA_RECON -->|"Success"| SW_ESTADO{{"🔀 Switch ESTADO_OPERACION"}}:::decision
SW_ESTADO -->|"DENTRO"| PA_OK["🔊 Audio éxito reconexión"]:::audio --> T_DESP1["👋 Jump to Reusable Task: Despedida"]:::terminal
SW_ESTADO -->|"FUERA"| DERIVA["📞 Transfer to ACD<br/>⚠️ falta definir cola"]:::open --> END1["🏁 Fin"]:::terminal
SW_ESTADO -->|"Default (vacío/no existe)"| PA_CREA["🔊 Audio orden creada"]:::audio
PA_CREA --> TTS_ORDEN["🗣️ TTS: NRO_ORDEN"]:::audio
TTS_ORDEN --> PA_TIEMPO["🔊 Audio tiempo de atención"]:::audio
PA_TIEMPO --> DA_SMS["🔧 Envio SMS"]:::dataAction
DA_SMS -->|"Success"| PA_SMS["🔊 Audio confirmación SMS"]:::audio --> T_DESP2["👋 Jump to Reusable Task: Despedida"]:::terminal
DA_SMS -->|"Failure/Timeout"| T_CONS3["🔀 Jump to Reusable Task: Transferencia Consultas"]:::terminalOpen 6149000
🌙
6149000
10 Sep, 2026
flowchart TD
subgraph S_Inicio["1. Entrada y Validación"]
Start(["Inicio (Llamada Entrante)"]):::terminal --> DA_Validacion["Validar Riesgo / Afectación"]:::action
DA_Validacion -->|Con afectación| Audio_Riesgo["Audio Riesgo / Afectación"]:::action
DA_Validacion -->|Normal| Menu_Principal
Audio_Riesgo --> Menu_Principal
end
subgraph S_Principal["2. Menú Principal"]
Menu_Principal{"Menú Principal"}:::decision
end
%% Rutas Críticas
Menu_Principal -->|"1: Emergencia"| T_Emergencia[["1. Emergencia"]]:::subroutine
Menu_Principal -->|"2: Reconexión"| T_Reconexion[["2. Reconexión"]]:::subroutine
Menu_Principal -->|"5: Manipulación"| T_Manipulacion[["Manipulación Clandestina"]]:::subroutine
%% Submenús
Menu_Principal -->|"3: Ventas"| Menu_Ventas{"Menú Ventas"}:::decision
Menu_Principal -->|"4: Servicios"| Menu_Servicios{"Menú Servicios"}:::decision
Menu_Principal -->|"6: Asesor"| Menu_Asesor{"Menú Asesor"}:::decision
subgraph S_Servicios["Servicios (Autoservicio)"]
Menu_Servicios --> T_Deuda["Deuda"]:::action
Menu_Servicios --> T_Recibo["Recibo"]:::action
Menu_Servicios --> T_CodCli["Código Cliente"]:::action
Menu_Servicios --> T_Centros["Centros de Atención"]:::action
Menu_Servicios --> T_ConsSol["Consultar Solicitud"]:::action
Menu_Servicios --> T_MantQ["Mantenimiento Quinquenal"]:::action
end
subgraph S_Ventas["Comercial"]
Menu_Ventas --> T_Req["Requisitos Instalación"]:::action
Menu_Ventas --> T_Fin["Financiamiento (Gaso Más)"]:::action
Menu_Ventas --> T_Seg["Seguros y Asistencias"]:::action
end
subgraph S_Asesor["Atención Asesor"]
Menu_Asesor --> T_ConsGen["Consultas Generales"]:::action
Menu_Asesor --> T_Comercios["Comercios / Pymes"]:::action
end
subgraph S_Colas["Transferencias ACD"]
Q_Consultas[("Cola: Consultas")]:::queue
Q_CPNO[("Cola: CPNO")]:::queue
Q_GrandesClientes[("Cola: Grandes Clientes")]:::queue
Despedida(["Despedida / Fin"]):::terminal
end
T_ConsGen --> Q_Consultas
T_Deuda --> Q_Consultas
T_Recibo --> Q_Consultas
T_Reconexion --> Q_Consultas
T_Manipulacion --> Q_CPNO
T_Comercios --> Q_GrandesClientes
T_Emergencia --> Despedida
Q_Consultas --> Despedida
Q_CPNO --> Despedida
Q_GrandesClientes --> Despedida
classDef terminal fill:#166534,stroke:#14532d,color:#fff
classDef decision fill:#a16207,stroke:#713f12,color:#fff
classDef action fill:#1e3a5f,stroke:#1e293b,color:#fff
classDef subroutine fill:#4c1d95,stroke:#2e1065,color:#fff
classDef queue fill:#0f766e,stroke:#115e59,color:#fff