> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://naturgy-comer-documentation-p5mde.vercel.app/api/mcp` to find what you need.

# Handoff humano

Hay dos saltos distintos:

* **Route handoff:** el Dispatcher elige un workflow especialista mediante una
  Workflow Function;
* **Human handoff:** el especialista deja de resolver y entrega el caso a una
  persona o cola.

El primero no debe llevar permisos de negocio. El segundo debe llevar solo el
contexto necesario para continuar y debe respetar el mecanismo del canal.

## Diferencia por canal

```mermaid
flowchart TD
    conversation["Conversación Super App"] --> channel{"Canal"}
    channel -->|"Voz"| voice["Especialista de voz"]
    channel -->|"Texto"| text["Especialista de texto"]

    voice -->|"Resuelve"| voiceClose["Actualizar caso y cerrar"]
    voice -->|"Necesita persona"| connect["Connect: transferir a cola"]
    connect --> voiceHuman["Persona de voz"]

    text -->|"Resuelve"| textClose["Actualizar caso y cerrar"]
    text -->|"Necesita persona"| teleo["TeLeo: crear ticket"]
    teleo --> textHuman["Agente de texto"]
    text -->|"Tema ajeno"| phone["Facilitar teléfono y cerrar"]

    voiceClose --> result["Resultado confirmado"]
    voiceHuman --> result
    textClose --> result
    textHuman --> result
    phone --> result
```

## Voz

En voz, Connect gestiona la llamada, la cola y la transferencia. El workflow de
voz puede actualizar el caso, terminar su tramo y dejar que Connect entregue la
llamada al equipo correspondiente. El contexto de la transferencia debe incluir
motivo, resumen, correlación y estado de autenticación, nunca credenciales.

La telefonía tradicional puede entrar directamente en un especialista de voz;
no se debe asumir que pasa por el Dispatcher de Super App.

## Texto

En texto, un escalado de Operaciones se envía a TeLeo mediante la herramienta de
handoff disponible. TeLeo representa la sesión humana y conserva el contexto que
el agente necesita. El workflow no hace una transferencia telefónica de la
conversación.

Si el tema no pertenece a Operaciones, el recorrido documentado facilita un
número o destino de contacto y cierra el caso. No se debe enviar a TeLeo solo
porque el usuario pida una ruta que pertenece a otro dominio.

### TeLeo como consola de atención

TeLeo materializa el escalado en una jerarquía **run/sesión → ticket →
mensajes** almacenada en Twin. La ingesta conserva el histórico y el resumen del
bot; el agente responde desde la consola y la respuesta pública vuelve al
workflow por webhook. La app también puede registrar señales de inicio y fin del
escalado para que el bot y la observabilidad conozcan el estado.

La consola separa agente, supervisión y administración. La asignación depende de
la disponibilidad real —estado online, pausa, horario, vacaciones y capacidad—,
no solo de que el usuario haya iniciado sesión. Los casos abiertos asignados a
otro agente pueden permanecer privados; cola, Pendientes y cerrados tienen reglas
de visibilidad distintas que deben confirmarse en el tenant.

El ciclo implementado distingue cierre permanente, de-escalado, cola y
Pendientes. La inactividad del cliente aparca el ticket y libera capacidad; no
lo cierra automáticamente. Un mensaje posterior puede reabrirlo. El detalle del
modelo, las interfaces y las notas privadas está en [TeLeo: consola de escalado
de texto](/use-cases/super-app/teleo).

## Cuándo hacer handoff

| Situación | Acción esperada |
|---|---|
| Especialista puede resolver | Completar la gestión y confirmar el resultado del backend. |
| Gestión del dominio, pero no resoluble | Escalar a la persona o cola del mismo dominio. |
| Tema de otro dominio | Transferir en voz o facilitar el canal correcto en texto, según el contrato. |
| Emergencia o riesgo | Priorizar la ruta de seguridad definida por el owner, sin retrasar por preguntas innecesarias. |
| Canal o especialista no disponible | Aplicar fallback aprobado; nunca fingir que el destino existe. |
| Fallo de backend o estado ambiguo | Informar sin prometer resultado y escalar cuando la política lo requiera. |

La condición exacta de cada especialista debe estar respaldada por sus UCD/E2E y
por el contrato del backend. El Dispatcher no inventa esas condiciones.

## Payload mínimo

Un handoff humano puede transportar:

* canal y motivo;
* resumen breve y subintención;
* `session_id`, `run_id` o correlación;
* identificador de caso cuando ya existe;
* estado de autenticación, sin el token que lo produjo;
* resultado parcial y siguiente acción esperada.

No debe transportar API keys, tokens, cookies, transcripts completos por defecto,
DNIs o IBAN completos, ni datos que el agente humano no necesite.

## Handoff y ciclo del caso

En Operaciones voz, el caso puede haber sido creado antes de la llamada y quedar
actualizado o cerrado por el workflow. En Operaciones texto, el workflow crea el
caso al iniciar la conversación; un escalado conserva el caso abierto mientras
TeLeo continúa la atención. El estado definitivo lo devuelve Salesforce,
Mulesoft, Carolina, Connect o TeLeo, según el recorrido.

## Gaps que deben cerrarse

* contrato común de route handoff para voz y texto;
* respuesta y timeout de cada Workflow Function;
* destino de ATC texto;
* asignación de agentes en TeLeo;
* fallback si falla la creación del ticket o falta `session_id`;
* fuente del transcript y reglas de retención por canal;
* UCD/E2E de emergencia, tema ajeno, backend caído y handoff sin autenticación.

Consulta [Dispatcher y enrutado](/use-cases/super-app/explanations/dispatcher) para
el salto entre workflows y [Matriz de canales y handoff](/use-cases/super-app/reference/channel-matrix)
para la vista de referencia.
