{
  "id": "flujo_soporte_v2",
  "version": 2,
  "name": "Soporte tecnico",
  "activation": {
    "intents": ["prompt_soporte"]
  },
  "settings": {
    "entry_step": "pedir_documento"
  },
  "slots": {
    "documento": {
      "type": "string",
      "required": true,
      "description": "DNI o CUIT informado para identificar al cliente",
      "sources": ["detected.document"],
      "normalize": ["digits_only"]
    },
    "categoria": {
      "type": "enum",
      "required": true,
      "description": "Categoria principal del inconveniente tecnico",
      "sources": ["message.text"],
      "match_mode": "contains",
      "values": ["sin_servicio", "falla_servicio", "servicio_tv", "solicitud"],
      "aliases": {
        "sin_servicio": ["sin internet", "no tengo internet", "sin conexion", "no tengo conexion"],
        "falla_servicio": ["anda lento", "lentitud", "microcortes", "se corta"],
        "servicio_tv": ["problema con tv", "problema con sensa", "streaming"],
        "solicitud": ["cambiar contraseña", "cambiar la contraseña", "cambiar password", "cambiar el password", "ver dispositivos conectados"]
      }
    },
    "luz_roja": {
      "type": "boolean",
      "required": false,
      "description": "Si el modem presenta luz roja LOS"
    },
    "resultado_prueba": {
      "type": "enum",
      "required": false,
      "description": "Resultado luego de reiniciar el modem",
      "sources": ["message.text"],
      "match_mode": "contains",
      "values": ["resuelto", "no_resuelto"],
      "aliases": {
        "resuelto": ["se arregló", "se arreglo", "ya funciona", "funcionó", "funciono", "quedó resuelto", "quedo resuelto"],
        "no_resuelto": ["sigue igual", "sigue sin funcionar", "no funciona", "no se arregló", "no se arreglo", "continúa el problema", "continua el problema"]
      }
    },
    "horario_afectado": {
      "type": "string",
      "required": false,
      "description": "Horario en el que ocurre la falla"
    },
    "desde_cuando": {
      "type": "string",
      "required": false,
      "description": "Desde cuando ocurre la falla"
    },
    "cantidad_dispositivos": {
      "type": "string",
      "required": false,
      "description": "Cantidad o alcance de dispositivos afectados"
    },
    "aplicaciones": {
      "type": "string",
      "required": false,
      "description": "Aplicaciones donde ocurre la falla"
    },
    "tipo_solicitud": {
      "type": "enum",
      "required": false,
      "description": "Tipo de solicitud tecnica",
      "sources": ["message.text"],
      "match_mode": "contains",
      "values": ["cambio_password_wifi", "ver_dispositivos", "otra"],
      "aliases": {
        "cambio_password_wifi": ["cambiar contraseña", "cambiar la contraseña", "cambio de contraseña", "cambiar password", "cambiar el password", "cambio de password"],
        "ver_dispositivos": ["ver dispositivos", "dispositivos conectados", "quién está conectado", "quien esta conectado"],
        "otra": ["otra solicitud", "otro pedido"]
      }
    },
    "nueva_password": {
      "type": "string",
      "required": false,
      "description": "Nueva contraseña WiFi solicitada"
    }
  },
  "backend_facts": {
    "cliente_verificado": {
      "type": "boolean"
    },
    "dni_validado": {
      "type": "string"
    },
    "cliente": {
      "type": "object"
    },
    "transferencia_realizada": {
      "type": "boolean"
    },
    "area_transferencia": {
      "type": "string"
    }
  },
  "steps": [
    {
      "id": "pedir_documento",
      "type": "question",
      "slot": "documento",
      "instruction": "Solicitar DNI o CUIT para identificar la cuenta antes de iniciar el soporte.",
      "next_step": "buscar_cliente"
    },
    {
      "id": "buscar_cliente",
      "type": "action",
      "action": "buscar_cliente",
      "input": {
        "dni": {
          "$from": "slot.documento"
        }
      },
      "on_success": "pedir_categoria",
      "on_failure": {
        "target": "cliente_no_encontrado",
        "clear": ["slot.documento"]
      }
    },
    {
      "id": "cliente_no_encontrado",
      "type": "message",
      "instruction": "Informar que no fue posible encontrar la cuenta y solicitar otro DNI o CUIT.",
      "next_step": "pedir_documento"
    },
    {
      "id": "pedir_categoria",
      "type": "question",
      "slot": "categoria",
      "instruction": "Solicitar que describa el inconveniente para clasificar la consulta.",
      "next_step": "resolver_categoria"
    },
    {
      "id": "resolver_categoria",
      "type": "branch",
      "cases": [
        {
          "when": {
            "ref": "slot.categoria",
            "op": "eq",
            "value": "sin_servicio"
          },
          "go_to": "preguntar_luz_roja"
        },
        {
          "when": {
            "ref": "slot.categoria",
            "op": "eq",
            "value": "falla_servicio"
          },
          "go_to": "pedir_horario"
        },
        {
          "when": {
            "ref": "slot.categoria",
            "op": "eq",
            "value": "servicio_tv"
          },
          "go_to": "transferir_sensa"
        },
        {
          "when": {
            "ref": "slot.categoria",
            "op": "eq",
            "value": "solicitud"
          },
          "go_to": "pedir_tipo_solicitud"
        }
      ],
      "default_next": "transferir_tecnico"
    },
    {
      "id": "preguntar_luz_roja",
      "type": "question",
      "slot": "luz_roja",
      "instruction": "Preguntar si el modem presenta una luz roja identificada como LOS.",
      "next_step": "resolver_luz_roja"
    },
    {
      "id": "resolver_luz_roja",
      "type": "branch",
      "cases": [
        {
          "when": {
            "ref": "slot.luz_roja",
            "op": "eq",
            "value": true
          },
          "go_to": "transferir_los"
        },
        {
          "when": {
            "ref": "slot.luz_roja",
            "op": "eq",
            "value": false
          },
          "go_to": "reinicio_modem"
        }
      ],
      "default_next": "transferir_tecnico"
    },
    {
      "id": "reinicio_modem",
      "type": "message",
      "instruction": "Indicar desenchufar el modem durante 15 segundos, volver a conectarlo, esperar cinco minutos y probar nuevamente.",
      "next_step": "preguntar_resultado"
    },
    {
      "id": "preguntar_resultado",
      "type": "question",
      "slot": "resultado_prueba",
      "instruction": "Consultar si luego de la prueba el inconveniente fue resuelto.",
      "next_step": "resolver_resultado"
    },
    {
      "id": "resolver_resultado",
      "type": "branch",
      "cases": [
        {
          "when": {
            "ref": "slot.resultado_prueba",
            "op": "eq",
            "value": "resuelto"
          },
          "go_to": "cierre_resuelto"
        },
        {
          "when": {
            "ref": "slot.resultado_prueba",
            "op": "eq",
            "value": "no_resuelto"
          },
          "go_to": "transferir_tecnico"
        }
      ],
      "default_next": "transferir_tecnico"
    },
    {
      "id": "cierre_resuelto",
      "type": "message",
      "instruction": "Confirmar que el inconveniente quedo resuelto y cerrar cordialmente.",
      "next_step": "fin"
    },
    {
      "id": "pedir_horario",
      "type": "question",
      "slot": "horario_afectado",
      "instruction": "Consultar en que horario ocurre la falla.",
      "next_step": "pedir_desde_cuando"
    },
    {
      "id": "pedir_desde_cuando",
      "type": "question",
      "slot": "desde_cuando",
      "instruction": "Consultar desde cuando ocurre la falla.",
      "next_step": "pedir_dispositivos"
    },
    {
      "id": "pedir_dispositivos",
      "type": "question",
      "slot": "cantidad_dispositivos",
      "instruction": "Consultar en cuantos dispositivos ocurre la falla.",
      "next_step": "pedir_aplicaciones"
    },
    {
      "id": "pedir_aplicaciones",
      "type": "question",
      "slot": "aplicaciones",
      "instruction": "Consultar en que aplicaciones ocurre la falla.",
      "next_step": "transferir_falla_servicio"
    },
    {
      "id": "pedir_tipo_solicitud",
      "type": "question",
      "slot": "tipo_solicitud",
      "instruction": "Consultar si desea cambiar la contraseña WiFi, ver dispositivos conectados u otra solicitud.",
      "next_step": "resolver_solicitud"
    },
    {
      "id": "resolver_solicitud",
      "type": "branch",
      "cases": [
        {
          "when": {
            "ref": "slot.tipo_solicitud",
            "op": "eq",
            "value": "cambio_password_wifi"
          },
          "go_to": "pedir_password"
        },
        {
          "when": {
            "ref": "slot.tipo_solicitud",
            "op": "in",
            "value": ["ver_dispositivos", "otra"]
          },
          "go_to": "transferir_tecnico"
        }
      ],
      "default_next": "transferir_tecnico"
    },
    {
      "id": "pedir_password",
      "type": "question",
      "slot": "nueva_password",
      "instruction": "Solicitar la nueva contraseña WiFi indicando que debe tener al menos ocho caracteres.",
      "next_step": "transferir_cambio_password"
    },
    {
      "id": "transferir_falla_servicio",
      "type": "action",
      "action": "transferir_operador",
      "input": {
        "area": {
          "$literal": "tecnico"
        },
        "motivo": {
          "$literal": "Falla o degradación del servicio"
        },
        "resumen": {
          "$template": "Documento: {{slot.documento}}. Categoría: {{slot.categoria}}. Horario afectado: {{slot.horario_afectado}}. Desde cuándo: {{slot.desde_cuando}}. Dispositivos afectados: {{slot.cantidad_dispositivos}}. Aplicaciones: {{slot.aplicaciones}}."
        }
      },
      "on_success": "fin",
      "on_failure": "transferencia_fallida"
    },
    {
      "id": "transferir_cambio_password",
      "type": "action",
      "action": "transferir_operador",
      "input": {
        "area": {
          "$literal": "tecnico"
        },
        "motivo": {
          "$literal": "Cambio de contraseña WiFi"
        },
        "resumen": {
          "$template": "Documento: {{slot.documento}}. Solicitud: cambio de contraseña WiFi. Nueva contraseña solicitada: {{slot.nueva_password}}."
        }
      },
      "on_success": "fin",
      "on_failure": "transferencia_fallida"
    },
    {
      "id": "transferir_sensa",
      "type": "action",
      "action": "transferir_operador",
      "input": {
        "area": {
          "$literal": "sensa"
        },
        "motivo": {
          "$literal": "Falla de TV o streaming"
        },
        "resumen": {
          "$template": "Documento: {{slot.documento}}. Categoría: {{slot.categoria}}. Solicitud relacionada con TV o streaming."
        }
      },
      "on_success": "fin",
      "on_failure": "transferencia_fallida"
    },
    {
      "id": "transferir_los",
      "type": "action",
      "action": "transferir_operador",
      "input": {
        "area": {
          "$literal": "tecnico"
        },
        "motivo": {
          "$literal": "ONU LOS"
        },
        "resumen": {
          "$template": "Documento: {{slot.documento}}. Cliente informa falta de servicio y luz LOS roja."
        }
      },
      "on_success": "fin",
      "on_failure": "transferencia_fallida"
    },
    {
      "id": "transferir_tecnico",
      "type": "action",
      "action": "transferir_operador",
      "input": {
        "area": {
          "$literal": "tecnico"
        },
        "motivo": {
          "$literal": "Soporte tecnico"
        },
        "resumen": {
          "$template": "Documento: {{slot.documento}}. Categoría: {{slot.categoria}}."
        }
      },
      "on_success": "fin",
      "on_failure": "transferencia_fallida"
    },
    {
      "id": "transferencia_fallida",
      "type": "message",
      "instruction": "Informar que no fue posible realizar la transferencia en este momento, sin prometer una derivacion exitosa.",
      "next_step": "fin"
    },
    {
      "id": "fin",
      "type": "end"
    }
  ]
}
