> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Workflows

## Vue d’ensemble

Les Agent Workflows offrent une interface visuelle puissante pour concevoir des flux de conversation complexes dans ElevenAgents. Au lieu de vous appuyer sur des parcours de conversation linéaires, les workflows vous permettent de créer des graphes de conversation sophistiqués, à embranchements, qui s’adaptent dynamiquement aux besoins des utilisateurs.

![Vue d’ensemble des workflows](/docs/_fern-img/0b5b2cf9754c67ef469c08af5d13786f70ca8e0018d10e92595861abb4ed32cb.webp)

## Créer des workflows

Le Dashboard est la méthode recommandée pour concevoir des workflows grâce à l’éditeur de graphes visuel. Les workflows sont stockés dans le champ `workflow` de niveau supérieur de l’agent. Vous pouvez donc également extraire, modifier et envoyer le JSON via la CLI, ou le mettre à jour via le SDK, ce qui est utile pour le contrôle de version et l’intégration et le déploiement continus.

#### Créer via le Dashboard

Ouvrez votre agent dans le Dashboard, accédez à l’onglet **Workflow**, puis utilisez l’éditeur visuel pour ajouter des nœuds, configurer le comportement des sous-agents et connecter les arêtes. Enregistrez vos modifications.

#### Mettre à jour via la CLI

#### Extraire la configuration de l’agent

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### Modifier \`agent_configs/\<agent-name>.json\`

Le graphe du workflow se trouve sous la clé `workflow` de niveau supérieur. `nodes` et `edges` sont des objets indexés par ID. Voici un workflow minimal à trois nœuds qui dirige le nœud de départ vers un sous-agent de support, puis vers un nœud de fin :

```json
{
  "workflow": {
    "nodes": {
      "start_node": {
        "type": "start",
        "edge_order": ["start_to_support"]
      },
      "support_agent": {
        "type": "override_agent",
        "label": "Support agent",
        "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
        "edge_order": ["support_to_end"]
      },
      "end_node": {
        "type": "end"
      }
    },
    "edges": {
      "start_to_support": {
        "source": "start_node",
        "target": "support_agent",
        "forward_condition": { "type": "unconditional" }
      },
      "support_to_end": {
        "source": "support_agent",
        "target": "end_node",
        "forward_condition": {
          "type": "llm",
          "condition": "The support request has been resolved."
        }
      }
    }
  }
}
```

La plupart des équipes conçoivent d’abord les workflows dans le Dashboard, puis enregistrent le JSON obtenu dans leur système de contrôle de version.

#### Envoyer vos modifications

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### Mettre à jour via l’API

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    workflow={
        "nodes": {
            "start_node": {
                "type": "start",
                "edge_order": ["start_to_support"],
            },
            "support_agent": {
                "type": "override_agent",
                "label": "Support agent",
                "additional_prompt": "Help the user with their support request, then transition to the end node when resolved.",
                "edge_order": ["support_to_end"],
            },
            "end_node": {"type": "end"},
        },
        "edges": {
            "start_to_support": {
                "source": "start_node",
                "target": "support_agent",
                "forward_condition": {"type": "unconditional"},
            },
            "support_to_end": {
                "source": "support_agent",
                "target": "end_node",
                "forward_condition": {
                    "type": "llm",
                    "condition": "The support request has been resolved.",
                },
            },
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  workflow: {
    nodes: {
      start_node: {
        type: "start",
        edgeOrder: ["start_to_support"],
      },
      support_agent: {
        type: "override_agent",
        label: "Support agent",
        additionalPrompt:
          "Help the user with their support request, then transition to the end node when resolved.",
        edgeOrder: ["support_to_end"],
      },
      end_node: { type: "end" },
    },
    edges: {
      start_to_support: {
        source: "start_node",
        target: "support_agent",
        forwardCondition: { type: "unconditional" },
      },
      support_to_end: {
        source: "support_agent",
        target: "end_node",
        forwardCondition: {
          type: "llm",
          condition: "The support request has been resolved.",
        },
      },
    },
  },
});
```

## Types de nœuds

Les workflows sont composés de différents types de nœuds, chacun ayant un rôle précis dans votre flux de conversation.

![Types de nœuds](/docs/_fern-img/b169065e0f229623a4cd57861802fa30ecd463a142599f5fd60f6fc1b8a6223e.webp)

### Nœuds de sous-agent

Les nœuds de sous-agent vous permettent de modifier le comportement de l’agent à des points précis de votre workflow. Ces modifications s’appliquent en plus de la configuration de l’agent de base ou peuvent remplacer entièrement la configuration de l’agent actuel, ce qui vous donne un contrôle précis de chaque phase de conversation.
Vous pouvez mettre à jour ou remplacer toute configuration de l’agent, les outils disponibles et les éléments de la base de connaissances associés.

#### Général

![Configuration supplémentaire du sous-agent](/docs/_fern-img/8ca72df8768a03adc0064281c906ab0f5710153249d17f7e7d51f465da7e9e94.webp)

Modifiez les paramètres essentiels de l’agent pour ce nœud spécifique :

* **Prompt système** : ajoutez ou remplacez des instructions système pour guider le comportement de l’agent
* **Sélection du LLM** : choisissez un autre modèle de langage, par exemple passez de Gemini 2.0 Flash à un modèle plus puissant pour les tâches de raisonnement complexes
* **Configuration vocale** : modifiez les paramètres vocaux, notamment la vitesse et le ton, ou choisissez une autre voix

**Cas d’utilisation :**

* Utiliser un LLM plus puissant pour les nœuds de prise de décision complexes
* Appliquer des directives de conversation plus strictes lors de la collecte d’informations sensibles
* Modifier les caractéristiques vocales selon les phases de conversation
* Modifier la personnalité de l’agent pour certains types d’interaction

#### Base de connaissances

![Base de connaissances supplémentaire du sous-agent](/docs/_fern-img/168a56fc316596983275999c53bbbe391c4c30a05abedc17cb6a4566eff7773f.webp)

Ajoutez des connaissances propres au nœud sans modifier la base de connaissances globale :

* **Inclure la base de connaissances globale** : activez ou désactivez l’inclusion de la base de connaissances principale de l’agent
* **Documents supplémentaires** : ajoutez des documents propres à cette phase de conversation
* **Connaissances dynamiques** : injectez des informations contextuelles en fonction de l’état du workflow

**Cas d’utilisation :**

* Ajouter une documentation spécifique au produit lors des conversations commerciales
* Inclure des directives de conformité lors de l’authentification
* Fournir des guides de dépannage pour les flux de support
* Ajouter des informations tarifaires uniquement après qualification

#### Outils

![Outils supplémentaires du sous-agent](/docs/_fern-img/9af53c3227661fd88bec57cb21197eb289760d33a874b56152d507373e51bac1.webp)

Gérez les outils disponibles pour l’agent dans ce nœud :

* **Inclure les outils globaux** : activez ou désactivez l’inclusion des outils de la configuration principale de l’agent
* **Outils supplémentaires** : ajoutez des outils propres à ce nœud de workflow, par exemple des outils webhook comme `book_meeting`
* **Type d’outil** : indiquez si les outils sont des webhooks, des appels d’API ou d’autres intégrations

**Cas d’utilisation :**

* Ajouter des outils d’authentification uniquement après la qualification initiale
* Activer les outils de traitement des paiements aux nœuds de paiement
* Fournir un accès CRM après vérification de l’utilisateur
* Ajouter des outils de planification pour les phases de prise de rendez-vous
* Inclure des outils webhook pour des actions spécifiques comme la prise de rendez-vous

### Nœud de message

Un nœud de message fait prononcer à l’agent un message à un point précis du workflow, puis poursuit par ses arêtes sortantes. Utilisez-le lorsque la formulation d’un message est importante et ne doit pas être laissée à un sous-agent, par exemple pour une salutation, une mention légale ou une confirmation lue à l’utilisateur.

Chaque nœud de message envoie son message selon l’un des deux modes suivants :

* **Littéral** : l’agent prononce exactement le texte que vous saisissez, avec une traduction facultative pour chaque langue configurée.
* **Prompt** : le LLM génère le message à partir d’une description que vous rédigez.

### Nœud d’outil de distribution

Les nœuds d’outil exécutent un appel d’outil spécifique dans le flux de conversation. Contrairement aux outils des sous-agents, les nœuds d’outil sont des points d’exécution dédiés qui garantissent l’appel de l’outil.

![Arêtes de résultat du nœud d’outil](/docs/_fern-img/6b60603e56dfb25e89cdfe4223826f635af874e034af8936d74d3b428611e17b.webp)

**Configuration spéciale des arêtes :**
Les nœuds d’outil disposent d’un type d’arête unique permettant d’acheminer la conversation vers un nouveau nœud selon le résultat de l’exécution de l’outil. Vous pouvez définir :

* **Chemin de réussite** : où acheminer la conversation lorsque l’outil s’exécute correctement
* **Chemin d’échec** : où acheminer la conversation lorsque l’outil échoue ou renvoie une erreur

D’autres conditions d’embranchement seront disponibles à l’avenir.

### Nœud de mise à jour d’état

Un nœud de mise à jour d’état attribue une ou plusieurs [variables dynamiques](/docs/fr/eleven-agents/customization/personalization/dynamic-variables) chaque fois que le workflow le traverse, à l’aide des mêmes expressions que l’outil Mettre à jour l’état. Contrairement à l’outil, qui s’exécute lorsque le LLM décide de l’appeler, le nœud applique toujours ses mises à jour à cet endroit du graphe, puis poursuit par ses arêtes sortantes.

En savoir plus [ici](/docs/fr/eleven-agents/customization/tools/system-tools/update-state).

### Nœud de transfert d’agent

Les nœuds de transfert d’agent facilitent le transfert de la conversation entre différents agents conversationnels. En savoir plus [ici](/docs/fr/eleven-agents/customization/tools/system-tools/agent-transfer).

### Nœud de transfert vers un numéro

Les nœuds de transfert vers un numéro permettent de passer d’une conversation avec un agent IA à un agent humain via des systèmes téléphoniques. En savoir plus [ici](/docs/fr/eleven-agents/customization/tools/system-tools/transfer-to-number)

### Nœud de fin

Les nœuds de fin d’appel terminent le flux de conversation de façon fluide. En savoir plus [ici](/docs/fr/eleven-agents/customization/tools/system-tools/transfer-to-number#:~:text=System%20tools-,End%20call,-Language%20detection)

## Arêtes et contrôle du flux

Les arêtes définissent le parcours des conversations entre les nœuds de votre workflow. Elles prennent en charge une logique d’acheminement sophistiquée qui permet des parcours de conversation dynamiques et contextuels.

![Arêtes du workflow](/docs/_fern-img/02d664c9211bb8cf5452b80ab865f26b8d0b723a6acff75141ea1e9c43f7dbab.webp)

#### Arêtes avant

Les arêtes avant déplacent la conversation vers les nœuds suivants du workflow. Elles représentent le flux principal de votre conversation.

![Configuration des arêtes avant](/docs/_fern-img/2400c66bf6f60b0d4262ecd828dea93847197f7cc00d9c8964e6486419bc90be.webp)

#### Arêtes arrière

Les arêtes arrière permettent aux conversations de revenir à des nœuds précédents, ce qui permet des interactions itératives et une logique de nouvelle tentative.

![Configuration des arêtes arrière](/docs/_fern-img/e211da75e56c826fd763ae4d8149604a866d3ec63271c572e177d52bb9a80e14.webp)

**Cas d’utilisation :**

* Réessayer les tentatives d’authentification échouées
* Revenir en arrière pour collecter des informations supplémentaires
* Nouvelle qualification après modification des exigences de l’utilisateur
* Processus de dépannage itératifs

#### Condition LLM

Utilisez les conditions LLM pour créer des flux de conversation dynamiques reposant sur une évaluation en langage naturel. Le LLM évalue les conditions en temps réel afin de déterminer le chemin approprié.

![Transfert d’agent avec condition LLM](/docs/_fern-img/507885879d781f291ab35b7dda84e760767a5544ffb6bf7b455e7a1cc19b78b7.webp)

**Options de configuration :**

* **Libellé** : description lisible par un humain de la condition de l’arête, non traitée par le LLM
* **Condition LLM** : condition en langage naturel évaluée par le LLM

#### Expression

Utilisez des expressions pour créer une logique conditionnelle fondée sur des variables et des données structurées.

![Transfert d’agent avec expression](/docs/_fern-img/712fc40d707906a7c6ccb4b0a76f0fd3857278176606d441bfb5245f5f6e0ffe.webp)

**Options de configuration :**

* **Libellé** : description lisible par un humain de la condition de l’arête, non traitée par le LLM
* **Expression** : critères d’évaluation déterministes basés sur la structure des données

#### Aucune

Les transitions inconditionnelles font automatiquement passer la conversation au nœud suivant, sans condition.

![Transfert d’agent inconditionnel](/docs/_fern-img/73b70ce7c783277e64ba533f6d69c84e2ed3120f1fd03dbdebcd4d4f5358eb5b.webp)

**Cas d’utilisation :**

* Étapes séquentielles qui se suivent toujours
* Progression automatique après l’exécution d’une action
* Chemins de repli par défaut

## Analyses

![Onglet d’analyse des workflows affichant les entrées, durées, terminaisons et flux d’arêtes par nœud superposés
au graphe du workflow](/docs/_fern-img/a758029a005f0327c1e6319708577efd617399c72cec63d5c342d3af2f0db2a3.webp)

Une fois le workflow actif, l’onglet **Workflow** du [Dashboard d’analyse](/docs/fr/eleven-agents/dashboard#workflow-analytics) superpose les données d’utilisation au graphe : entrées par nœud, temps moyen passé et terminaisons, ainsi que la répartition des arêtes entrantes et sortantes pour chaque nœud. Depuis l’inspecteur de nœud, vous pouvez également accéder directement aux conversations correspondantes dans l’historique via le filtre **Nœud saisi**.