> 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

## Overzicht

Agent Workflows bieden een krachtige visuele interface voor het ontwerpen van complexe gespreksstromen in ElevenAgents. In plaats van lineaire gesprekspaden te gebruiken, kun je met workflows geavanceerde, vertakkende gespreksgrafieken maken die zich dynamisch aanpassen aan de behoeften van gebruikers.

![Workflowoverzicht](/docs/_fern-img/0b5b2cf9754c67ef469c08af5d13786f70ca8e0018d10e92595861abb4ed32cb.webp)

## Workflows bouwen

Het dashboard is de aanbevolen manier om workflows te ontwerpen dankzij de visuele grafiekeditor. Workflows worden opgeslagen in het `workflow`-veld op het hoogste niveau van de agent, dus je kunt de JSON ook ophalen, bewerken en pushen via de CLI, of bijwerken via de SDK — handig voor versiebeheer en CI/CD.

#### Bouwen via het dashboard

Open je agent in het dashboard, ga naar het tabblad **Workflow** en gebruik de visuele editor om nodes toe te voegen, het gedrag van subagents te configureren en edges te verbinden. Sla je wijzigingen op.

#### Bijwerken via de CLI

#### De agentconfiguratie ophalen

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

#### \`agent\_configs/\<agent-name>.json\` bewerken

De workflowgrafiek staat onder de sleutel `workflow` op het hoogste niveau. `nodes` en `edges` zijn objecten met ID's als sleutel. Hieronder staat een minimale workflow met drie nodes die de startnode naar een support-subagent en vervolgens naar een eindnode stuurt:

```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."
        }
      }
    }
  }
}
```

De meeste teams ontwerpen workflows eerst in het dashboard en committen de resulterende JSON vervolgens naar versiebeheer.

#### Je wijzigingen pushen

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

#### Bijwerken via de 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.",
        },
      },
    },
  },
});
```

## Nodetypen

Workflows bestaan uit verschillende nodetypen, die elk een specifiek doel hebben in je gespreksstroom.

![Nodetypen](/docs/_fern-img/b169065e0f229623a4cd57861802fa30ecd463a142599f5fd60f6fc1b8a6223e.webp)

### Subagent-nodes

Met subagent-nodes kun je het gedrag van een agent op specifieke punten in je workflow aanpassen. Deze aanpassingen worden toegepast boven op de basisconfiguratie van de agent, of kunnen de configuratie van de huidige agent volledig overschrijven, zodat je gedetailleerde controle hebt over elke gespreksfase.
Je kunt de configuratie van een agent, beschikbare tools en gekoppelde kennisbankitems bijwerken of overschrijven.

#### Algemeen

![Extra agentconfiguratie voor subagent](/docs/_fern-img/8ca72df8768a03adc0064281c906ab0f5710153249d17f7e7d51f465da7e9e94.webp)

Pas de kerninstellingen van de agent voor deze specifieke node aan:

* **Systeemprompt**: Voeg system instructions toe of overschrijf ze om het gedrag van de agent te sturen
* **LLM-selectie**: Kies een ander taalmodel (bijvoorbeeld: schakel van Gemini 2.0 Flash over naar een krachtiger model voor complexe redeneertaken)
* **Stemconfiguratie**: Wijzig steminstellingen, zoals snelheid en toon, of schakel zelfs over naar een andere stem

**Toepassingen:**

* Gebruik een krachtiger LLM voor nodes met complexe besluitvorming
* Pas strengere gespreksrichtlijnen toe tijdens het verzamelen van gevoelige informatie
* Wijzig stemkenmerken voor verschillende gespreksfasen
* Pas de persoonlijkheid van de agent aan voor specifieke interactietypen

#### Kennisbank

![Extra kennisbank voor subagent](/docs/_fern-img/168a56fc316596983275999c53bbbe391c4c30a05abedc17cb6a4566eff7773f.webp)

Voeg nodespecifieke kennis toe zonder gevolgen voor de algemene kennisbank:

* **Algemene kennisbank opnemen**: Bepaal of je de hoofdkennisbank van de agent wilt opnemen
* **Extra documenten**: Voeg documenten toe die specifiek zijn voor deze gespreksfase
* **Dynamische kennis**: Voeg contextuele informatie toe op basis van de workflowstatus

**Toepassingen:**

* Voeg productspecifieke documentatie toe tijdens verkoopgesprekken
* Neem compliancerichtlijnen op tijdens authenticatie
* Bied gidsen voor probleemoplossing voor supportstromen
* Voeg prijsinformatie pas toe na kwalificatie

#### Tools

![Extra tools voor subagent](/docs/_fern-img/9af53c3227661fd88bec57cb21197eb289760d33a874b56152d507373e51bac1.webp)

Beheer welke tools beschikbaar zijn voor de agent bij deze node:

* **Algemene tools opnemen**: Bepaal of je tools uit de hoofdconfiguratie van de agent wilt opnemen
* **Extra tools**: Voeg tools toe die specifiek zijn voor deze workflownode (bijvoorbeeld webhooktools zoals `book_meeting`)
* **Tooltype**: Geef aan of tools webhooks, API-calls of andere integraties zijn

**Toepassingen:**

* Voeg authenticatietools pas toe na de eerste kwalificatie
* Schakel tools voor betalingsverwerking in bij afrekennoden
* Geef toegang tot CRM na gebruikersverificatie
* Voeg planningstools toe voor fasen waarin afspraken worden ingepland
* Neem webhooktools op voor specifieke acties, zoals afspraken boeken

### Say-node

Een say-node laat de agent op een specifiek punt in de workflow één bericht uitspreken en gaat vervolgens verder via de uitgaande edges. Gebruik deze wanneer de formulering van een bericht belangrijk is en niet aan een subagent moet worden overgelaten, bijvoorbeeld bij een begroeting, een juridische melding of een bevestiging die aan de gebruiker wordt voorgelezen.

Elke say-node verstuurt zijn bericht in een van twee modi:

* **Letterlijk**: de agent spreekt de exacte tekst uit die je invoert, met een optionele vertaling voor elke geconfigureerde taal.
* **Prompt**: de LLM genereert het bericht op basis van een beschrijving die je schrijft.

### Dispatch tool-node

Tool-nodes voeren een specifieke tool-call uit tijdens de gespreksstroom. Anders dan tools binnen subagents zijn tool-nodes vaste uitvoeringspunten die garanderen dat de tool wordt aangeroepen.

![Resultaat-edges van tool-node](/docs/_fern-img/6b60603e56dfb25e89cdfe4223826f635af874e034af8936d74d3b428611e17b.webp)

**Speciale edgeconfiguratie:**
Tool-nodes hebben een uniek edgetype waarmee je op basis van het resultaat van de tooluitvoering naar een nieuwe node kunt routeren. Je kunt het volgende definiëren:

* **Succespad**: Waarheen moet worden gerouteerd als de tool succesvol wordt uitgevoerd
* **Foutpad**: Waarheen moet worden gerouteerd als de tool mislukt of een fout retourneert

In de toekomst worden meer vertakkingsvoorwaarden toegevoegd.

### Node voor status bijwerken

Een node voor status bijwerken wijst elke keer dat de workflow erdoorheen loopt een of meer [dynamische variabelen](/docs/nl/eleven-agents/customization/personalization/dynamic-variables) toe, met dezelfde expressies als de tool Update state. Anders dan de tool, die wordt uitgevoerd wanneer de LLM besluit deze aan te roepen, past de node zijn updates op dat punt in de grafiek altijd toe en gaat vervolgens verder via de uitgaande edges.

Lees [hier](/docs/nl/eleven-agents/customization/tools/system-tools/update-state) meer.

### Agent transfer-node

Een agent transfer-node faciliteert de overdracht van het gesprek tussen verschillende conversationele agents. Lees [hier](/docs/nl/eleven-agents/customization/tools/system-tools/agent-transfer) meer.

### Transfer to number-node

Transfer to number-nodes schakelen van een gesprek met een AI-agent over naar een menselijke agent via telefoonsystemen. Lees [hier](/docs/nl/eleven-agents/customization/tools/system-tools/transfer-to-number) meer.

### End-node

End call-nodes beëindigen de gespreksstroom netjes. Lees [hier](/docs/nl/eleven-agents/customization/tools/system-tools/transfer-to-number#:~:text=System%20tools-,End%20call,-Language%20detection) meer.

## Edges en stroombeheer

Edges bepalen hoe gesprekken tussen nodes in je workflow verlopen. Ze ondersteunen geavanceerde routeringslogica die dynamische, contextbewuste gesprekspaden mogelijk maakt.

![Workflow-edges](/docs/_fern-img/02d664c9211bb8cf5452b80ab865f26b8d0b723a6acff75141ea1e9c43f7dbab.webp)

#### Voorwaartse edges

Voorwaartse edges verplaatsen het gesprek naar volgende nodes in de workflow. Ze vormen de hoofdstroom van je gesprek.

![Configuratie van voorwaartse edge](/docs/_fern-img/2400c66bf6f60b0d4262ecd828dea93847197f7cc00d9c8964e6486419bc90be.webp)

#### Achterwaartse edges

Met achterwaartse edges kunnen gesprekken terugkeren naar eerdere nodes, waardoor iteratieve interacties en logica voor nieuwe pogingen mogelijk worden.

![Configuratie van achterwaartse edge](/docs/_fern-img/e211da75e56c826fd763ae4d8149604a866d3ec63271c572e177d52bb9a80e14.webp)

**Toepassingen:**

* Mislukte authenticatiepogingen opnieuw proberen
* Teruggaan om aanvullende informatie te verzamelen
* Opnieuw kwalificeren na wijzigingen in gebruikersvereisten
* Iteratieve processen voor probleemoplossing

#### LLM-voorwaarde

Gebruik LLM-voorwaarden om dynamische gespreksstromen te maken op basis van evaluatie in natuurlijke taal. De LLM evalueert voorwaarden realtime om het juiste pad te bepalen.

![LLM-voorwaarde voor agentoverdracht](/docs/_fern-img/507885879d781f291ab35b7dda84e760767a5544ffb6bf7b455e7a1cc19b78b7.webp)

**Configuratieopties:**

* **Label**: Leesbare beschrijving van de edgevoorwaarde (wordt niet verwerkt door de LLM)
* **LLM-voorwaarde**: Voorwaarde in natuurlijke taal die door de LLM wordt geëvalueerd

#### Expressie

Gebruik expressies om voorwaardelijke logica te maken op basis van variabelen en gestructureerde gegevens.

![Expressie voor agentoverdracht](/docs/_fern-img/712fc40d707906a7c6ccb4b0a76f0fd3857278176606d441bfb5245f5f6e0ffe.webp)

**Configuratieopties:**

* **Label**: Leesbare beschrijving van de edgevoorwaarde (wordt niet verwerkt door de LLM)
* **Expressie**: Deterministische evaluatiecriteria op basis van de gegevensstructuur

#### Geen

Onvoorwaardelijke overgangen verplaatsen het gesprek automatisch naar de volgende node zonder voorwaarden.

![Onvoorwaardelijke agentoverdracht](/docs/_fern-img/73b70ce7c783277e64ba533f6d69c84e2ed3120f1fd03dbdebcd4d4f5358eb5b.webp)

**Toepassingen:**

* Opeenvolgende stappen die elkaar altijd volgen
* Automatische voortgang na het voltooien van een actie
* Standaard terugvalpaden

## Analytics

![Tabblad voor workflowanalytics met items per node, duur, beëindigingen en edgestroom op de workflowgrafiek
weergegeven](/docs/_fern-img/a758029a005f0327c1e6319708577efd617399c72cec63d5c342d3af2f0db2a3.webp)

Zodra een workflow live is, toont het tabblad **Workflow** in het [analyticsdashboard](/docs/nl/eleven-agents/dashboard#workflow-analytics) gebruiksgegevens op de grafiek: items per node, gemiddelde bestede tijd en beëindigingen, plus de verdeling van inkomende en uitgaande edges voor elke node. Vanuit de node-inspector kun je via het filter **Node entered** ook rechtstreeks naar de bijbehorende gesprekken in de geschiedenis gaan.