All diagrams //5 of 5

Open Untitled Diagram
🗃️
Untitled Diagram
02 Oct, 2026
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"]:::bad
Open 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"]:::terminal
Open 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