> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ouraicalling.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Descripción general del generador de Flow

> Convierte una llamada en un grafo de agentes, herramientas y decisiones

El generador de Flow es un lienzo visual donde diseñas una llamada como un **grafo**: los nodos hacen el trabajo, los bordes definen a dónde puede ir la conversación después. Internamente, cada nodo `agent` es un agente conversacional completo, y avanzar por un borde es un **traspaso** entre agentes.

## El modelo mental

* Los **nodos** son pasos: saludar, conversar, decidir, llamar a una API, recopilar datos, transferir, finalizar.
* Los **bordes** son caminos posibles. Un nodo de agente con tres bordes de salida puede pasar la conversación a tres pasos siguientes distintos.
* **El LLM elige el camino**, basándose en la conversación y, sobre todo, en tus **etiquetas de borde**.

## Por qué importan las etiquetas de borde y de agente

Este es el concepto más importante del generador de Flow:

<Warning>
  **Las etiquetas de borde no son decoración.** Cada borde saliente de un nodo `agent` se convierte en una *herramienta de traspaso* que el LLM puede invocar, y la etiqueta del borde pasa a ser la descripción de esa herramienta. El LLM decide hacia dónde dirigir la conversación leyendo tus etiquetas. Las etiquetas vagas producen un enrutamiento vago.
</Warning>

Compara:

| Etiqueta débil | Etiqueta fuerte                                   |
| -------------- | ------------------------------------------------- |
| `next`         | `caller wants to book an appointment`             |
| `option 2`     | `caller asks about pricing or invoices`           |
| `transfer`     | `caller explicitly asks for a human, or is angry` |

Lo mismo ocurre con los nodos `condition`: la **descripción** del nodo le indica al LLM qué se está decidiendo, y cada etiqueta de borde describe un resultado posible. El LLM está obligado a elegir exactamente un borde, así que las etiquetas deben ser mutuamente excluyentes y cubrir todos los casos que esperas.

Los **nombres** de los nodos de agente también importan: aparecen en las herramientas de traspaso y en los registros, así que `Qualification agent` es mejor que `Agent 2`.

## Un Flow mínimo y útil

```text theme={null}
[start: greeting]
      │
[agent: Reception]
  ├─ "caller wants an appointment" ──► [collect: name] ─► [collect: phone] ─► [end: confirm & goodbye]
  ├─ "caller has a billing question" ─► [agent: Billing FAQ] ─► [end]
  └─ "caller asks for a human" ───────► [warm_transfer: +49...]
```

## Variables

Los nodos `collect` y `dtmf` guardan sus resultados en **variables de Flow** (por ejemplo, `customer_phone`). Las variables se incluyen en el webhook `call.completed` y en los detalles de la llamada, así que los sistemas externos reciben datos estructurados, no solo una transcripción.

## Comportamiento de fallback

* Un nodo `agent` con **instrucciones vacías** usa el prompt del sistema del asistente (Prompt avanzado) como base; si el nodo tiene texto propio, ese texto se **añade** al final. El Flow nunca ejecuta un agente sin instrucciones.
* Un nodo `collect` que falla tras agotar sus reintentos toma el borde saliente etiquetado `failed` si existe; si no, toma el borde normal.
* Las configuraciones de Flow rotas nunca bloquean una llamada: el motor recurre a una pila segura y registra un evento `flow_node_error`.

Continúa con la [referencia de nodos](/flow-builder/nodes) y las [mejores prácticas](/flow-builder/best-practices).
