> ## 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-Best-Practices

> Muster, die Flows in der Produktion zuverlässig machen

Praktische Muster für zuverlässige [Flows](/de/flow-builder/overview): Kanten beschriften, Agenten strukturieren, Daten validieren und vor dem Livegang testen.

## Kantenbezeichnungen klar formulieren

Formuliere Kantenbezeichnungen als klare **Bedingungen aus Sicht des Anrufers**:

* ✅ `caller confirms they are an existing customer`
* ✅ `caller wants to cancel or reschedule`
* ❌ `yes`, `path A`, `continue`

Achte darauf, dass Labels auf derselben Ebene sich **gegenseitig ausschließen** und alle realistischen Fälle abdecken. Überschneiden sich zwei Labels, wird das Routing zum Münzwurf.

## Halte Agenten klein und fokussiert

Ein Agent = ein Job (qualifizieren, Abrechnungsfragen beantworten, Termine buchen). Kurze, gezielte Anweisungen pro Agent schlagen einen Mega-Agenten mit einer Textwand um Längen. Übergaben sind günstig – nutze sie.

## Validiere Daten mit Collect-Knoten, nicht mit Prompts

Per Sprache übertragene E-Mail-Adressen und Telefonnummern sind fehleranfällig. [`collect`](/de/flow-builder/nodes#collect)-Knoten bestätigen und validieren sie („War das m-e-y-e-r?“) und fahren erst bei Erfolg fort. Benenne die **Variable** immer eindeutig (`callback_phone`, nicht `var1`) – diese Namen tauchen später in Webhooks und Anrufdetails auf.

## Plane die Fehlerpfade mit

* Gib `collect`-Knoten eine `failed`-Kante, die zu etwas Sinnvollem führt (eine Weiterleitung an einen Menschen oder eine höfliche Verabschiedung).
* Setze das `fallback`-Verhalten beim Warm Transfer bewusst: `continue` für optionale Übergaben, `cold_transfer`, wenn der Anrufer jemanden *unbedingt* erreichen muss.
* Beende jeden Zweig mit einem `end`-Knoten und einer passenden Verabschiedung.

## Teste mit Web-Anrufen und beobachte die Events

Führe nach jeder Änderung [Testanrufe im Browser](/de/quickstart#2-teste-ihn-im-browser) durch. In der Anrufdetailansicht zeigt das Ereignisprotokoll Knoten-Übergänge, Tool-Aufrufe, Collect-Ergebnisse und Transfer-Ausgänge. So findest du schnell den Schritt, der sich nicht wie erwartet verhält.

## Nutze asynchrone Tools für langsamere Anfragen

Aktiviere bei langsamen Webhooks **Run asynchronously** und richte Füllphrasen ein – der Assistent bleibt reaktionsfähig, während die Anfrage im Hintergrund läuft. Siehe den [Tool-Knoten](/de/flow-builder/nodes#tool).

## Starte beim Prompt, wachse in den Flow hinein

Prototype das Verhalten zuerst mit einem einfachen [System-Prompt](/de/assistants/overview). Sobald der Anruf klar unterscheidbare Phasen bekommt oder eine garantierte Datenerfassung braucht, überführe diese Struktur in einen Flow – Agent-Knoten mit leeren Anweisungen erben den System-Prompt, wodurch die Migration schrittweise erfolgen kann.
