> ## 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.

# Présentation du générateur de flux

> Transformez un appel en un graphe d'agents, d'outils et de décisions

Le générateur de flux est un canevas visuel où vous concevez un appel sous la forme d'un **graphe** : les nœuds effectuent le travail, les bords définissent les directions possibles de la conversation. Sous le capot, chaque nœud `agent` est un agent conversationnel à part entière, et emprunter un bord correspond à un **transfert** entre agents.

## Le modèle mental

* Les **nœuds** sont des étapes : saluer, dialoguer, décider, appeler une API, collecter des données, transférer, terminer.
* Les **bords** sont des chemins possibles. Un nœud agent avec trois bords sortants peut orienter la conversation vers trois étapes suivantes différentes.
* **Le LLM choisit le chemin** — en fonction de la conversation et, surtout, de vos **étiquettes de bord**.

## Pourquoi les étiquettes de bord et d'agent sont importantes

C'est le concept le plus important du générateur de flux :

<Warning>
  **Les étiquettes de bord ne sont pas de la décoration.** Chaque bord sortant d'un nœud `agent` devient un *outil de transfert* que le LLM peut appeler — et l'étiquette du bord devient la description de cet outil. Le LLM décide où diriger la conversation en lisant vos étiquettes. Des étiquettes vagues produisent un routage imprécis.
</Warning>

Comparez :

| Étiquette faible | Étiquette forte                                   |
| ---------------- | ------------------------------------------------- |
| `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` |

Le même principe s'applique aux nœuds `condition` : la **description** du nœud indique au LLM ce qui est en train d'être décidé, et chaque étiquette de bord décrit un résultat possible. Le LLM est contraint de choisir exactement un bord — vos étiquettes doivent donc être mutuellement exclusives et couvrir tous les cas que vous anticipez.

Les **noms** des nœuds agent comptent aussi : ils apparaissent dans les outils de transfert et dans les journaux — mieux vaut donc `Agent de qualification` que `Agent 2`.

## Un flux minimal utile

```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

Les nœuds `collect` et `dtmf` stockent leurs résultats dans des **variables de flux** (par exemple `customer_phone`). Ces variables sont incluses dans le webhook `call.completed` et dans le détail de l'appel, afin que les systèmes en aval reçoivent des données structurées — pas seulement une transcription.

## Comportement de repli

* Un nœud `agent` dont les **instructions sont vides** utilise le prompt système de l'assistant (Prompt avancé) comme base — si le nœud contient du texte, celui-ci est **ajouté** à la suite. Le flux ne fait jamais tourner un agent sans instructions.
* Un nœud `collect` qui échoue après avoir épuisé son budget de nouvelles tentatives emprunte le bord sortant étiqueté `failed` s'il en existe un, sinon le bord normal.
* Une configuration de flux cassée ne fait jamais planter un appel : le moteur se rabat sur une pile de secours et enregistre un événement `flow_node_error`.

Poursuivez avec la [référence du nœud](/flow-builder/nodes) et les [meilleures pratiques](/flow-builder/best-practices).
