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

# Workflow

## Panoramica

I workflow degli agenti offrono una potente interfaccia visiva per progettare flussi di conversazione complessi in ElevenAgents. Invece di basarti su percorsi di conversazione lineari, con i workflow puoi creare grafi di conversazione sofisticati e ramificati che si adattano dinamicamente alle esigenze degli utenti.

![Panoramica del workflow](/docs/_fern-img/0b5b2cf9754c67ef469c08af5d13786f70ca8e0018d10e92595861abb4ed32cb.webp)

## Creare workflow

La dashboard è il metodo consigliato per progettare workflow grazie all'editor grafico visivo. I workflow sono archiviati nel campo `workflow` di primo livello dell'agente, quindi puoi anche recuperarne, modificarne e inviarne il JSON tramite la CLI oppure aggiornarlo tramite l'SDK: è utile per il controllo versione e il CI/CD.

#### Crea dalla dashboard

Apri il tuo agente nella dashboard, vai alla scheda **Workflow** e usa l'editor visivo per aggiungere nodi, configurare il comportamento dei subagenti e collegare gli archi. Salva le modifiche.

#### Aggiorna tramite CLI

#### Recupera la configurazione dell'agente

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

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

Il grafo del workflow si trova nella chiave `workflow` di primo livello. `nodes` e `edges` sono oggetti indicizzati per ID. Di seguito trovi un workflow minimo a tre nodi che indirizza il nodo iniziale a un subagente di supporto e poi a un nodo finale:

```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 maggior parte dei team progetta prima i workflow nella dashboard, quindi salva il JSON risultante nel controllo versione.

#### Invia le modifiche

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

#### Aggiorna tramite 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.",
        },
      },
    },
  },
});
```

## Tipi di nodo

I workflow sono composti da diversi tipi di nodo, ciascuno con uno scopo specifico nel flusso di conversazione.

![Tipi di nodo](/docs/_fern-img/b169065e0f229623a4cd57861802fa30ecd463a142599f5fd60f6fc1b8a6223e.webp)

### Nodi subagente

I nodi subagente ti consentono di modificare il comportamento dell'agente in punti specifici del workflow. Queste modifiche si applicano alla configurazione dell'agente di base oppure possono sostituire completamente la configurazione dell'agente corrente, offrendoti un controllo granulare su ogni fase della conversazione.
Puoi aggiornare o sovrascrivere qualsiasi configurazione dell'agente, gli strumenti disponibili e gli elementi della knowledge base collegati.

#### Generale

![Configurazione aggiuntiva dell'agente subagente](/docs/_fern-img/8ca72df8768a03adc0064281c906ab0f5710153249d17f7e7d51f465da7e9e94.webp)

Modifica le impostazioni principali dell'agente per questo nodo specifico:

* **Prompt di sistema**: aggiungi o sostituisci le istruzioni di sistema per guidare il comportamento dell'agente
* **Selezione LLM**: scegli un modello linguistico diverso (ad esempio, passa da Gemini 2.0 Flash a un modello più potente per attività di ragionamento complesse)
* **Configurazione della voce**: modifica le impostazioni vocali, inclusi velocità e tono, oppure passa a una voce diversa

**Casi d'uso:**

* Usa un LLM più potente per i nodi che richiedono decisioni complesse
* Applica linee guida di conversazione più rigide durante la raccolta di informazioni sensibili
* Modifica le caratteristiche della voce per le diverse fasi della conversazione
* Modifica la personalità dell'agente per tipi di interazione specifici

#### Knowledge Base

![Knowledge Base aggiuntiva del subagente](/docs/_fern-img/168a56fc316596983275999c53bbbe391c4c30a05abedc17cb6a4566eff7773f.webp)

Aggiungi conoscenze specifiche del nodo senza influire sulla knowledge base globale:

* **Includi la Knowledge Base globale**: attiva o disattiva l'inclusione della knowledge base principale dell'agente
* **Documenti aggiuntivi**: aggiungi documenti specifici per questa fase della conversazione
* **Conoscenza dinamica**: inserisci informazioni contestuali in base allo stato del workflow

**Casi d'uso:**

* Aggiungi documentazione specifica del prodotto durante le conversazioni di vendita
* Includi linee guida di conformità durante l'autenticazione
* Fornisci guide alla risoluzione dei problemi per i flussi di assistenza
* Aggiungi informazioni sui prezzi solo dopo la qualificazione

#### Strumenti

![Strumenti aggiuntivi del subagente](/docs/_fern-img/9af53c3227661fd88bec57cb21197eb289760d33a874b56152d507373e51bac1.webp)

Gestisci gli strumenti disponibili per l'agente in questo nodo:

* **Includi gli strumenti globali**: attiva o disattiva l'inclusione degli strumenti dalla configurazione dell'agente principale
* **Strumenti aggiuntivi**: aggiungi strumenti specifici per questo nodo del workflow (ad esempio, strumenti webhook come `book_meeting`)
* **Tipo di strumento**: specifica se gli strumenti sono webhook, chiamate API o altre integrazioni

**Casi d'uso:**

* Aggiungi strumenti di autenticazione solo dopo la qualificazione iniziale
* Abilita strumenti di elaborazione dei pagamenti nei nodi di checkout
* Fornisci l'accesso al CRM dopo la verifica dell'utente
* Aggiungi strumenti di pianificazione per le fasi di prenotazione degli appuntamenti
* Includi strumenti webhook per azioni specifiche come la prenotazione di riunioni

### Nodo Say

Un nodo Say fa pronunciare all'agente un messaggio in un punto specifico del workflow, quindi prosegue lungo gli archi in uscita. Usalo quando la formulazione di un messaggio è importante e non deve essere lasciata a un subagente, ad esempio per un saluto, un'informativa legale o una conferma letta all'utente.

Ogni nodo Say invia il messaggio in una delle due modalità:

* **Letterale**: l'agente pronuncia il testo esatto che inserisci, con una traduzione facoltativa per ogni lingua configurata.
* **Prompt**: l'LLM genera il messaggio a partire da una descrizione che scrivi.

### Nodo strumento di dispatch

I nodi strumento eseguono una chiamata a uno strumento specifico durante il flusso della conversazione. A differenza degli strumenti nei subagenti, i nodi strumento sono punti di esecuzione dedicati che garantiscono la chiamata dello strumento.

![Archi dei risultati del nodo strumento](/docs/_fern-img/6b60603e56dfb25e89cdfe4223826f635af874e034af8936d74d3b428611e17b.webp)

**Configurazione speciale degli archi:**
I nodi strumento dispongono di un tipo di arco univoco che consente di instradare a un nuovo nodo in base al risultato dell'esecuzione dello strumento. Puoi definire:

* **Percorso di successo**: dove instradare quando lo strumento viene eseguito correttamente
* **Percorso di errore**: dove instradare quando lo strumento non riesce o restituisce un errore

In futuro saranno disponibili ulteriori condizioni di ramificazione.

### Nodo di aggiornamento dello stato

Un nodo di aggiornamento dello stato assegna una o più [variabili dinamiche](/docs/it/eleven-agents/customization/personalization/dynamic-variables) ogni volta che il workflow lo attraversa, usando le stesse espressioni dello strumento Update state. A differenza dello strumento, che viene eseguito quando l'LLM decide di chiamarlo, il nodo applica sempre gli aggiornamenti in quel punto del grafo e poi continua lungo gli archi in uscita.

Scopri di più [qui](/docs/it/eleven-agents/customization/tools/system-tools/update-state).

### Nodo di trasferimento dell'agente

Il nodo di trasferimento dell'agente facilita il passaggio della conversazione tra diversi agenti conversazionali; scopri di più [qui](/docs/it/eleven-agents/customization/tools/system-tools/agent-transfer).

### Nodo di trasferimento a un numero

I nodi di trasferimento a un numero passano da una conversazione con un agente IA a un operatore umano tramite sistemi telefonici; scopri di più [qui](/docs/it/eleven-agents/customization/tools/system-tools/transfer-to-number)

### Nodo finale

I nodi di fine chiamata terminano il flusso di conversazione in modo ordinato; scopri di più [qui](/docs/it/eleven-agents/customization/tools/system-tools/transfer-to-number#:~:text=System%20tools-,End%20call,-Language%20detection)

## Archi e controllo del flusso

Gli archi definiscono il modo in cui le conversazioni scorrono tra i nodi del workflow. Supportano una logica di instradamento sofisticata che consente percorsi di conversazione dinamici e sensibili al contesto.

![Archi del workflow](/docs/_fern-img/02d664c9211bb8cf5452b80ab865f26b8d0b723a6acff75141ea1e9c43f7dbab.webp)

#### Archi in avanti

Gli archi in avanti spostano la conversazione verso i nodi successivi del workflow. Rappresentano il flusso principale della conversazione.

![Configurazione dell'arco in avanti](/docs/_fern-img/2400c66bf6f60b0d4262ecd828dea93847197f7cc00d9c8964e6486419bc90be.webp)

#### Archi all'indietro

Gli archi all'indietro consentono alle conversazioni di tornare ai nodi precedenti, permettendo interazioni iterative e logiche di nuovo tentativo.

![Configurazione dell'arco all'indietro](/docs/_fern-img/e211da75e56c826fd763ae4d8149604a866d3ec63271c572e177d52bb9a80e14.webp)

**Casi d'uso:**

* Riprova i tentativi di autenticazione non riusciti
* Torna indietro per raccogliere ulteriori informazioni
* Ripeti la qualificazione dopo modifiche ai requisiti dell'utente
* Processi iterativi di risoluzione dei problemi

#### Condizione LLM

Usa le condizioni LLM per creare flussi di conversazione dinamici basati sulla valutazione del linguaggio naturale. L'LLM valuta le condizioni in tempo reale per determinare il percorso appropriato.

![Trasferimento dell'agente con condizione LLM](/docs/_fern-img/507885879d781f291ab35b7dda84e760767a5544ffb6bf7b455e7a1cc19b78b7.webp)

**Opzioni di configurazione:**

* **Etichetta**: descrizione leggibile dall'uomo della condizione dell'arco (non elaborata dall'LLM)
* **Condizione LLM**: condizione in linguaggio naturale valutata dall'LLM

#### Espressione

Usa le espressioni per creare logica condizionale basata su variabili e dati strutturati.

![Trasferimento dell'agente con espressione](/docs/_fern-img/712fc40d707906a7c6ccb4b0a76f0fd3857278176606d441bfb5245f5f6e0ffe.webp)

**Opzioni di configurazione:**

* **Etichetta**: descrizione leggibile dall'uomo della condizione dell'arco (non elaborata dall'LLM)
* **Espressione**: criteri di valutazione deterministici basati sulla struttura dei dati

#### Nessuno

Le transizioni incondizionate spostano automaticamente la conversazione al nodo successivo senza condizioni.

![Trasferimento dell'agente incondizionato](/docs/_fern-img/73b70ce7c783277e64ba533f6d69c84e2ed3120f1fd03dbdebcd4d4f5358eb5b.webp)

**Casi d'uso:**

* Passaggi sequenziali che si susseguono sempre
* Avanzamento automatico dopo il completamento di un'azione
* Percorsi di fallback predefiniti

## Analisi

![Scheda di analisi del workflow che mostra accessi, durate e terminazioni per nodo, nonché il flusso degli archi sovrapposto
al grafo del workflow](/docs/_fern-img/a758029a005f0327c1e6319708577efd617399c72cec63d5c342d3af2f0db2a3.webp)

Quando un workflow è attivo, la scheda **Workflow** nella [dashboard di analisi](/docs/it/eleven-agents/dashboard#workflow-analytics) sovrappone al grafo i dati di utilizzo: accessi per nodo, tempo medio trascorso e terminazioni, oltre alla distribuzione degli archi in entrata e in uscita per ogni nodo. Dall'ispettore dei nodi puoi anche passare direttamente alle conversazioni corrispondenti nella cronologia tramite il filtro **Nodo inserito**.