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

# Flow-Builder-Übersicht

> Verwandle einen Anruf in einen Graphen aus Agenten, Tools und Entscheidungen

Der Flow Builder ist ein visuelles Canvas, auf dem du einen Anruf als **Graphen** gestaltest: Knoten erledigen die Arbeit, Kanten legen fest, wohin sich die Konversation als Nächstes bewegen kann. Jeder Agent-Knoten übernimmt einen Teil des Gesprächs; eine Kante führt zum nächsten Schritt.

## Knoten und Kanten

* **Knoten** sind Schritte: begrüßen, unterhalten, entscheiden, eine API aufrufen, Daten sammeln, weiterleiten, beenden.
* **Kanten** sind mögliche Pfade. Ein Agent-Knoten mit drei ausgehenden Kanten kann die Konversation an drei verschiedene nächste Schritte übergeben.
* **Der Assistent wählt den Pfad** – basierend auf dem Gespräch und, entscheidend, auf deinen **Kantenbezeichnungen**.

## Mit einer Use-Case-Vorlage starten

Wenn du einen Assistenten mit Conversational Flow erstellst, bietet die Vorlagengalerie vollständige Baupläne für typische Ziele wie Rückrufannahme, Lead-Qualifizierung, Umfragen, Concierge-Erlebnisse und Website-Assistenten. Ein Bauplan kann Folgendes enthalten:

* einen direkt bearbeitbaren Flow-Graphen, Basis-Prompt und erste Nachricht;
* das erwartete Ergebnis und die unterstützten Oberflächen, etwa eingehende oder ausgehende Telefonie, Web-Voice oder KI-Avatar;
* eine Einrichtungs-Checkliste für alles, was der Use Case noch benötigt, etwa Wissensdatenbank, Kalender, Weiterleitungsziel oder Web-Widget.

Die Badges in der Galerie zeigen dir vor dem Erstellen die Flow-Größe, unterstützte Oberflächen und erforderliche Einrichtung. Beim Anwenden wird der Bauplan in den neuen Assistenten kopiert. Er ist ein Ausgangspunkt und keine Live-Verknüpfung: Spätere Änderungen an der Vorlage überschreiben deinen Assistenten nicht.

<Note>
  Ein **Avatar-ready**-Bauplan bereitet das Gespräch auf einen sprechenden virtuellen Avatar im Web vor. Der Avatar gehört zur Darstellung der Web-Session und ist kein Knoten im Flow-Graphen. Verbinde den Assistenten nach dem Erstellen mit einem Web-Widget und wähle dort den virtuellen Avatar. Das Bild auf einer Vorlagen- oder Assistentenkarte ist nur ein Porträt und aktiviert keinen animierten Avatar.
</Note>

## Warum Edge- und Agent-Labels wichtig sind

Das ist das wichtigste Konzept im Flow Builder:

<Warning>
  **Kantenbezeichnungen sind keine Dekoration.** Der Assistent nutzt jede ausgehende Bezeichnung, um zu entscheiden, wohin das Gespräch weitergeleitet wird. Vage Bezeichnungen führen zu vagem Routing.
</Warning>

Zum Vergleich:

| Schwaches Label | Starkes Label                                     |
| --------------- | ------------------------------------------------- |
| `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` |

Das Gleiche gilt für Bedingungs-Knoten: Die **description** des Knotens erklärt, worüber entschieden wird, und jede Kantenbezeichnung beschreibt ein mögliches Ergebnis. Der Assistent muss genau eine Kante wählen – die Bezeichnungen sollten sich daher gegenseitig ausschließen und alle erwarteten Fälle abdecken.

Auch die **names** von Agent-Knoten spielen eine Rolle: Sie tauchen in Übergaben und Anrufdetails auf – `Qualification agent` ist also klarer als `Agent 2`.

## Ein kleiner, aber nützlicher Flow

```mermaid theme={null}
flowchart TD
  Start(["Start: Begrüßung"]) --> Reception["Agent: Empfang"]
  Reception -->|"Anrufer möchte einen Termin"| CollectName["Collect: Name"]
  CollectName --> CollectPhone["Collect: Telefonnummer"]
  CollectPhone --> EndA(["Ende: Bestätigung & Verabschiedung"])
  Reception -->|"Anrufer hat eine Abrechnungsfrage"| Billing["Agent: Abrechnungs-FAQ"]
  Billing --> EndB(["Ende"])
  Reception -->|"Anrufer bittet um einen Menschen"| Warm["Warm Transfer: +49..."]
  Warm --> EndC(["Ende"])
```

## Flow-Variablen

Collect- und DTMF-Knoten speichern Ergebnisse in **Flow-Variablen** (z. B. `customer_phone`). Die Variablen sind Teil des `call.completed`-Webhooks und der Anrufdetails, sodass nachgelagerte Systeme strukturierte Daten bekommen – nicht nur ein Transkript.

## Fallback-Verhalten

* Ein Agent-Knoten mit **leeren Anweisungen** nutzt den Advanced prompt des Assistenten als Basis. Knotenspezifische Anweisungen werden dieser Basis hinzugefügt.
* Ein Collect-Knoten, der nach Ausschöpfung seines Retry-Budgets scheitert, nimmt die ausgehende Kante mit dem Label **Failed**, falls vorhanden – andernfalls die normale Kante.
* Wenn ein Flow-Schritt nicht ausgeführt werden kann, folgt der Anruf dem verfügbaren Fallback-Pfad und das Problem erscheint in den Anrufdetails.

Weiter geht's mit der [Knotenreferenz](/de/flow-builder/nodes) und den [Best Practices](/de/flow-builder/best-practices). Wann sich ein Flow statt eines einfachen Prompts lohnt, erklärt [System-Prompt vs. Flow Builder](/de/assistants/overview).
