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

# Automation-Knotenreferenz

> Jeder Auslöser und Schritt im Automation Builder, mit Feldern und Verhalten

Das ist die Feld-für-Feld-Referenz für den Automation Builder – jeder Auslöser, jeder Schritt und wie Daten zwischen ihnen fließen. Wofür Automations gedacht sind, wie Läufe abgerechnet werden und durchgerechnete Beispiele findest du in der [Automations-Übersicht](/de/automations/overview).

## Tabs der Automations-Liste

Die Listenseite `/automations` hat drei Tabs:

| Tab             | Zeigt                                                                                                                                                                                                                                                                                                  |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Automations** | Jeden Workflow im Workspace – Icons der verbundenen Apps, Name (mit seinem Auslöser und dem gebundenen Assistenten, falls der Auslöser einen hat), Tags, Anzahl Läufe, letzter Ausführungszeitpunkt und Status. Suche, filtere nach Tag und aktiviere/pausiere/lösche über das Zeilenmenü.             |
| **Runs**        | Jeden Lauf über alle Automatisierungen hinweg – welche Automatisierung, welcher Auslöser, Status, berechnete Credits, Zeitpunkt und der Fehler, falls er fehlgeschlagen ist. Dieselbe Liste, auf eine Automatisierung eingegrenzt, lebt auch im eigenen **Runs**-Tab dieser Automatisierung im Editor. |
| **Connections** | Gespeicherte, wiederverwendbare Zugangsdaten für CRMs, SMTP und MCP-Server. Jede Zeile zeigt ein Anbieter-Icon, ein Typ-Badge (API oder MCP) und eine Status-Pille (ok / pending / error) – teste oder bearbeite eine, ohne die Automatisierungen zu berühren, die sie nutzen.                         |

## Auslöser

Jeder Auslöser startet aus einem bestimmten Ereignis. Assistentengebundene Auslöser (**On Call Completed**, **On Inbound Call**, **Inject input variables**) verlangen die Auswahl eines bestimmten Assistenten. Booking-, Conversation- und E-Mail-Auslöser bieten stattdessen ein optionales **Assistant filter**; Conversation-Auslöser lassen sich zusätzlich auf eine einzelne Messaging-Verbindung oder Plattform eingrenzen, Booking-Auslöser auf eine einzelne Buchungsseite.

| Auslöser                                      | Feuert, wenn                                                                                                                                                                                                                  |
| --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **On Call Completed**                         | Ein Sprachanruf endet und seine Post-Call-Analyse vorliegt.                                                                                                                                                                   |
| **On Inbound Call**                           | Ein eingehender Anruf beginnt zu klingeln, bevor er angenommen oder analysiert wird.                                                                                                                                          |
| **Inject input variables**                    | Ein Anruf des gewählten Assistenten beginnt – das ersetzt den Variablen-Webhook dieses Assistenten, solange diese Automatisierung Live ist. Kombiniere es mit **Return variables**.                                           |
| **Conversation started**                      | Eine neue Messaging-Konversation öffnet sich, auf einem beliebigen Kanal.                                                                                                                                                     |
| **Conversation ended**                        | Eine Messaging-Konversation schließt sich oder läuft in ein Timeout.                                                                                                                                                          |
| **Message received**                          | Jede eingehende Nachricht auf einem Kanal, nicht nur die erste – optional nach Plattform filterbar.                                                                                                                           |
| **Email received**                            | Eine eingehende E-Mail kommt auf einer Workspace-Adresse an.                                                                                                                                                                  |
| **Booking created / cancelled / rescheduled** | Ein Ereignis auf einer Buchungsseite tritt ein.                                                                                                                                                                               |
| **Contact created**                           | Ein neuer Audience-Kontakt wird hinzugefügt. Wähle, welche **Quellen** zählen – manuell angelegt (standardmäßig aktiv), CSV-/Datei-Import, API, CRM sync – damit ein Massenimport nicht versehentlich Tausende Läufe auslöst. |
| **Manual**                                    | Läuft nur, wenn du auf **Run now** klickst, die API aufrufst oder Milian bittest.                                                                                                                                             |
| **Schedule**                                  | Cron-basiert, auf eine Zeitzone bezogen (demnächst – heute schon für Entwürfe wählbar).                                                                                                                                       |

Ein generischer oder ein CRM-Webhook-Auslöser bekommt eine eigene eingehende URL und ein eigenes Secret, direkt in den Auslöser-Einstellungen angezeigt, sobald die Automatisierung gespeichert ist. HighLevel und verbundene Apps liefern Ereignisse stattdessen über einen gemeinsamen, vorautorisierten Endpunkt – einmal für den Workspace eingerichtet, nicht pro Automatisierung:

| Auslöser                                                                                                  | Feuert, wenn                                                                                                                                                                                                                                                                                              |
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Incoming Webhook**                                                                                      | Etwas sendet JSON per POST an die eingehende URL dieser Automatisierung, mit dem Secret der Automatisierung im Header `X-Automation-Secret`.                                                                                                                                                              |
| **Airtable / HubSpot / Salesforce / Close.io / Pipedrive / Zoho CRM / Attio / Keap / Twenty CRM webhook** | Das verbundene CRM sendet ein Ereignis per POST an die eigene eingehende URL dieses Auslösers – dieselbe Mechanik wie Incoming Webhook, nur im Katalog unter diesem Anbieter einsortiert.                                                                                                                 |
| **HighLevel webhook**                                                                                     | HighLevel sendet ein signiertes CRM- oder Termin-Ereignis aus seiner Marketplace-App. Eine einzige **Marketplace webhook URL** wird für jede HighLevel-Automatisierung wiederverwendet; du grenzt jede Automatisierung ein, indem du eine **HighLevel connection** und ein **HighLevel event** auswählst. |
| **App event (Beta)**                                                                                      | Eine verbundene App liefert ein signiertes Ereignis – ein neuer Commit, eine Posteingangsnachricht und so weiter. Wähle App und Ereignis aus dem Katalog. Erfordert Workspace-**Beta Features**.                                                                                                          |

## Schritte

### Logic & flow control

Diese sprechen mit nichts außerhalb der Automatisierung – sie bestimmen, welchen Pfad ein Lauf nimmt, oder pausieren ihn.

| Schritt            | Was er tut                                                                                                                                                                                                | Wichtige Felder                                                         | Beispiel                                                                          |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| **Condition**      | Verzweigt wahr oder falsch anhand eines Werts aus dem Payload.                                                                                                                                            | Payload path, operator (equals / not equals / contains / exists), value | `data.analysis.success` equals `true` → Verzweigung zu einer Follow-up-Nachricht  |
| **Filter**         | Läuft nur weiter, wenn die Bedingung zutrifft; andernfalls endet der Lauf hier erfolgreich – nicht als Fehlschlag.                                                                                        | Wie bei Condition                                                       | Nur weiterlaufen, wenn `data.status` gleich `open` ist                            |
| **Switch**         | Vergleicht einen Wert mit einer Liste von Fällen – mehr als zwei mögliche Ausgänge.                                                                                                                       | Payload path, cases (JSON), default                                     | `data.pipeline_stage` je nach Stage zu einem anderen Schritt leiten               |
| **Random Outcome** | Wählt zufällig eine Verzweigung aus einer Liste – praktisch, um eine Nachricht A/B zu testen.                                                                                                             | Outcomes (kommagetrennt)                                                | Traffic zwischen `variant_a` und `variant_b` aufteilen                            |
| **Loop on Items**  | Wiederholt die verbundenen Schritte einmal pro Element einer Liste. Verbinde die Schritte, die sich wiederholen sollen, mit dem **Loop**-Anschluss, und alles, was nach der Schleife läuft, mit **Done**. | Items – ein Pfad zu einem Array, z. B. `{{steps.step1.records}}`        | Über `{{steps.list_records.records}}` iterieren und jedem eine Nachricht schicken |
| **Delay For**      | Pausiert den Lauf für eine feste Anzahl Sekunden.                                                                                                                                                         | Seconds                                                                 | 300 Sekunden warten, bevor nachgefasst wird                                       |
| **Delay Until**    | Pausiert bis zu einem absoluten Datum und einer Uhrzeit.                                                                                                                                                  | Until (ISO datetime)                                                    | Bis zum Tag vor einer Buchung warten                                              |
| **Set variable**   | Schreibt einen Wert in den Lauf, damit spätere Schritte darauf verweisen können.                                                                                                                          | Path, value                                                             | `{{last.text}}` unter `vars.summary` speichern                                    |
| **Run Code**       | Führt ein kleines, eingeschränktes JavaScript-Snippet aus und gibt dessen Wert zurück – keine Imports, kein Datei- oder Prozesszugriff.                                                                   | Code (muss einen Wert per `return` liefern)                             | Eine Telefonnummer in Großbuchstaben umwandeln, bevor sie weitergeleitet wird     |
| **Note**           | Schreibt eine Nachricht ins Ausführungsprotokoll; ändert nichts.                                                                                                                                          | Message                                                                 | `Call from {{data.from_number}}` fürs spätere Debugging loggen                    |

<Note>
  Loop on Items verarbeitet höchstens 100 Elemente pro Schleife, und Schleifen können bis zu 5 Ebenen tief verschachtelt werden.
</Note>

### Ending a run

Ein Lauf endet außerdem sauber, sobald ein Schritt keine ausgehende Verbindung hat. Diese drei beenden ihn explizit, und zwei davon liefern eine konkrete Antwort zurück.

| Schritt                | Was er tut                                                                                                                                                                                                             | Wichtige Felder                                                      | Beispiel                                                        |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------- |
| **Stop**               | Beendet den Lauf genau hier erfolgreich.                                                                                                                                                                               | Reason (optional, wird protokolliert)                                | Frühzeitig aussteigen, sobald ein Fall bereits erledigt ist     |
| **Return variables**   | Gibt Variablen an den Anruf zum Startzeitpunkt zurück – gehört zum Auslöser **Inject input variables**. Beendet den Lauf.                                                                                              | Variables (Key/Value-Map)                                            | `customer_name` und `tier` zurückgeben, bevor der Anruf beginnt |
| **Respond to webhook** | Beantwortet den Aufrufer eines **Incoming Webhook**-Auslösers mit einem Status und einem Body – der einzige Weg, wie dieser Aufrufer statt einer generischen Bestätigung eine echte Antwort bekommt. Beendet den Lauf. | Mode (JSON object / raw text / forward last step), status code, body | `{ "ok": true, "id": "{{last.id}}" }` zurückgeben               |

Ruft ein Assistent diese Automatisierung mitten im Gespräch auf, muss jeder Pfad bei **Respond to webhook** enden, ohne vorherigen Delay- oder Loop-Schritt.

### Time

| Schritt                          | Was er tut                                                        | Wichtige Felder            | Beispiel                                                  |
| -------------------------------- | ----------------------------------------------------------------- | -------------------------- | --------------------------------------------------------- |
| **Get Current Date and Time**    | Liest die aktuelle Zeit in einer Zeitzone.                        | Timezone                   | Eine Notiz mit der lokalen Anrufzeit stempeln             |
| **Convert Timezone**             | Wandelt einen Zeitpunkt in die Anzeige einer anderen Zeitzone um. | Datetime, target timezone  | Eine UTC-Buchungszeit in der Zeitzone des Kunden anzeigen |
| **Convert Date and Time Format** | Formatiert ein Datetime als reines Datum, reine Uhrzeit oder ISO. | Datetime, timezone, format | Eine Buchungszeit für eine Textnachricht formatieren      |

### AI

Im Katalog unter **Milian AI** gruppiert. Beide werden über Workspace-Credits für Token-Verbrauch plus eine Marge abgerechnet – der berechnete Betrag erscheint am Lauf und im Test-Panel des Schritts.

| Schritt            | Was er tut                                                                                                                                                            | Wichtige Felder                | Beispiel                                                   |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ | ---------------------------------------------------------- |
| **Custom Prompt**  | Führt einen freien Prompt gegen ein Transkript, eine Nachricht oder die Ausgabe eines vorherigen Schritts aus und gibt Text zurück.                                   | Prompt, optional system prompt | `{{data.transcript}}` in zwei Sätzen zusammenfassen        |
| **Extract Fields** | Zieht benannte, typisierte Felder aus einem Textblock. Jedes Feld ist eine Zeile im Panel: Name, Type (text / email / number / boolean / enum) und ob es Pflicht ist. | Input data, fields             | `email` und `budget` aus einem Chat-Transkript extrahieren |

### Messaging

Senden in einer bereits offenen Konversation, oder eine neue WhatsApp-Konversation mit einer genehmigten Vorlage starten.

| Schritt                                                                                                                                                                           | Was er tut                                                                                                                                                                          | Wichtige Felder                                                   | Beispiel                                                                          |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| **Send Channel Message**                                                                                                                                                          | Antwortet mit Text in einer offenen Konversation, auf welcher Plattform auch immer sie läuft.                                                                                       | Channel connection, conversation                                  | Auf dem Kanal antworten, über den der Auslöser gefeuert hat                       |
| **WhatsApp Send Message · Send Telegram · Send X (Twitter) · Send Teams Message · Send Slack Message · Send Discord Message · Send Messenger Message · Send Google Chat Message** | Wie Send Channel Message, aber auf eine Plattform festgelegt. Slack und Discord können auch direkt in einen **Channel** posten, statt auf eine Konversation zu antworten.           | Channel connection, conversation (oder channel bei Slack/Discord) | Eine Warnung in einen Slack-Channel posten, wenn ein Anruf einen Menschen braucht |
| **Send WhatsApp Template**                                                                                                                                                        | Sendet eine genehmigte WhatsApp-Business-Vorlage an eine Telefonnummer – als einziger Versand hier kann das eine brandneue Konversation außerhalb des 24-Stunden-Fensters eröffnen. | WhatsApp sender, template, recipient, variable mapping            | Eine Buchungsbestätigungs-Vorlage direkt nach **Booking created** senden          |
| **Send SMS**                                                                                                                                                                      | Sendet eine SMS von einer Workspace-Nummer mit aktiviertem SMS.                                                                                                                     | From number, to, message                                          | Ein Follow-up zu einem verpassten Anruf an `{{data.from_number}}` senden          |
| **Send Email**                                                                                                                                                                    | Sendet über den Plattform-Mailserver oder eine verifizierte Assistenten-Adresse.                                                                                                    | Sender, to, subject, body                                         | Das Transkript per E-Mail an einen Support-Posteingang schicken                   |
| **Send Email (SMTP)**                                                                                                                                                             | Sendet über dein eigenes gespeichertes SMTP-Relay statt über den Plattform-Mailserver.                                                                                              | SMTP connection, to, subject, body                                | Eine Quittung über den eigenen Mailserver deines Unternehmens senden              |

### Contacts, calls & compliance

Suppression-Aktionen sind idempotent – dieselbe Identität erneut hinzuzufügen oder zu entfernen lässt einen Lauf nie fehlschlagen.

| Schritt                         | Was er tut                                                                                         | Wichtige Felder                                                                | Beispiel                                                                   |
| ------------------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| **Create or Update Contact**    | Erstellt oder aktualisiert (Upsert) einen Audience-Lead anhand von Telefon und/oder E-Mail.        | Phone, email, name, attributes                                                 | Einen Anrufer direkt nach Anrufende als Lead speichern                     |
| **Get Contact by Phone Number** | Schlägt einen Lead per Telefonnummer nach.                                                         | Phone                                                                          | Prüfen, ob `{{data.from_number}}` bereits ein bekannter Lead ist           |
| **Get All Contacts**            | Listet aktuelle Leads (max. 100).                                                                  | Limit                                                                          | Die neuesten Leads für eine Digest-E-Mail abrufen                          |
| **Add Tags to Contact**         | Fügt einem Lead Tags hinzu.                                                                        | Contact ID, tags                                                               | Einen Lead nach einem qualifizierenden Anruf mit `hot` taggen              |
| **Add Attributes to Contact**   | Führt eigene Attributwerte mit einem Lead zusammen.                                                | Contact ID, attributes                                                         | Eine Deal-Größe am zugeordneten Lead speichern                             |
| **Add to blocklist**            | Sperrt ein Telefon oder eine E-Mail, sodass Kampagnen und ausgehende Nachrichten sie überspringen. | Phone, email, channel (optional – wählt automatisch Voice oder E-Mail), reason | Eine Nummer sperren, sobald jemand „stop“ sagt                             |
| **Remove from blocklist**       | Stellt ein zuvor gesperrtes Telefon oder eine E-Mail wieder her.                                   | Phone, email                                                                   | Nach einem frischen Opt-in die Sperre aufheben                             |
| **Call Phone Number**           | Startet einen ausgehenden Anruf mit einem gewählten Assistenten.                                   | Assistant, to (E.164)                                                          | Einen Lead nach einem verpassten eingehenden Anruf automatisch zurückrufen |

### Knowledge

| Schritt                     | Was er tut                                          | Wichtige Felder                | Beispiel                                                                                  |
| --------------------------- | --------------------------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------- |
| **Add Knowledge Source**    | Fügt einer Wissensdatenbank ein Textdokument hinzu. | Knowledge base, title, content | Eine abgerufene Richtlinien-Aktualisierung direkt in die Wissensdatenbank veröffentlichen |
| **Get Knowledge Source**    | Lädt die Metadaten eines Dokuments.                 | Knowledge base, document       | Prüfen, ob eine Quelle schon existiert, bevor sie hinzugefügt wird                        |
| **Delete Knowledge Source** | Entfernt ein Dokument.                              | Knowledge base, document       | Ein veraltetes FAQ-Dokument jede Nacht ausmustern                                         |

### HTTP & webhooks

Keiner dieser Schritte braucht eine gespeicherte Verbindung – URL einfügen, fertig.

| Schritt                       | Was er tut                                                                           | Wichtige Felder             | Beispiel                                                                          |
| ----------------------------- | ------------------------------------------------------------------------------------ | --------------------------- | --------------------------------------------------------------------------------- |
| **HTTP Request**              | Ruft jeden HTTPS-Endpunkt mit dem Auslöser-Payload oder einem eigenen JSON-Body auf. | URL, method, headers, body  | Die Anruf-Zusammenfassung per POST an einen internen Ops-Endpunkt senden          |
| **Slack (Webhook)**           | Postet über eine Incoming-Webhook-URL in einen Slack-Channel.                        | Webhook URL, message        | Eine einzeilige Warnung in einen Ops-Channel schreiben, wenn ein Lauf fehlschlägt |
| **Discord (Webhook)**         | Postet über eine Webhook-URL in einen Discord-Channel.                               | Webhook URL, message        | Bei jeder neuen Buchung einen Hinweis posten                                      |
| **Microsoft Teams (Webhook)** | Postet Text an einen Teams-Incoming-Webhook.                                         | Webhook URL, title, message | Einen Teams-Channel benachrichtigen, wenn ein hochwertiger Lead reinkommt         |

### External connections

CRM-, MCP- und Connected-App-Schritte lesen oder schreiben alle über gespeicherte Zugangsdaten in ein externes System – lege welche unter **Automations → Connections** an, bevor du sie nutzt. Jeder erscheint im Katalog als **Provider · Action** (zum Beispiel **Airtable · Create record**).

**CRM providers.** Die Einrichtung des wiederkehrenden Sync und den HighLevel-Autorisierungsablauf findest du unter [CRM sync](/de/automations/crm-sync) – diese Action-Knoten schreiben jeweils einen Datensatz auf einmal, unabhängig von einem Sync-Zeitplan.

| Provider       | Was du tun kannst                                                                                                                                                                                                                                                   |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Airtable**   | Datensätze auflisten, finden, suchen, per Find-or-create behandeln, abrufen, erstellen (einzeln oder bis zu 10 auf einmal), aktualisieren und löschen – Base-/Tabellen-/Feld-/View-Picker laden automatisch aus deinem Schema.                                      |
| **HubSpot**    | Kontakte abrufen, erstellen, aktualisieren und suchen; einen Deal erstellen; eine Notiz erstellen.                                                                                                                                                                  |
| **Salesforce** | Eine SOQL-Abfrage ausführen, oder jeden Objekt-Datensatz abrufen, erstellen und aktualisieren.                                                                                                                                                                      |
| **Close.io**   | Einen Lead erstellen oder aktualisieren, einen Kontakt erstellen, eine Opportunity erstellen, eine Notiz erstellen und suchen.                                                                                                                                      |
| **HighLevel**  | Kontakte auflisten/abrufen/erstellen/aktualisieren, eine Opportunity erstellen, eine Notiz erstellen, plus Kalender-Lesezugriffe und Termin-Schreibzugriffe – Kalender auflisten, freie Slots abrufen, Termine erstellen, aktualisieren/verschieben und stornieren. |
| **Pipedrive**  | Personen auflisten/suchen/abrufen/erstellen/aktualisieren, einen Deal erstellen, eine Notiz hinzufügen.                                                                                                                                                             |
| **Zoho CRM**   | Datensätze in jedem Modul auflisten, suchen, abrufen, erstellen und aktualisieren.                                                                                                                                                                                  |
| **Attio**      | Personen-, Firmen- oder Custom-Object-Datensätze auflisten/filtern, abrufen, erstellen und aktualisieren.                                                                                                                                                           |
| **Keap**       | Kontakte auflisten/suchen/abrufen/erstellen/aktualisieren, eine Opportunity erstellen, eine Notiz erstellen.                                                                                                                                                        |
| **Twenty CRM** | Datensätze auflisten/filtern, abrufen, erstellen und aktualisieren – gehostet oder selbst gehostet.                                                                                                                                                                 |

Beispiel: Nutze nach **On Call Completed** eine HubSpot-Update-Action, um `{{data.analysis.success}}` am zugeordneten Kontakt zu protokollieren, oder verzweige davor erst mit **Condition**.

**Vendor & Generic MCP.** Statt fester Felder übergeben diese einen Prompt und den Kontext des Laufs an einen Agenten, der selbst das passende Tool und die Argumente wählt – nützlich, wenn sich der genaue Aufruf von Lauf zu Lauf unterscheidet. Beide werden über Workspace-AI-Credits für das Reasoning des Agenten abgerechnet.

| Schritt                                                           | Was er tut                                                                                       | Wichtige Felder                                               | Beispiel                                                     |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- | ------------------------------------------------------------ |
| **Supabase / Neon / Brevo / Atlassian / Shopify · Call MCP tool** | Ruft den offiziellen MCP-Server dieses Anbieters über eine gespeicherte Verbindung auf.          | Connection, allowed tools (optionale Whitelist), agent prompt | „Liste überfällige Jira-Tickets auf und notiere das älteste“ |
| **MCP · Call tool**                                               | Dasselbe Muster – der Agent wählt das Tool –, für jeden als Connection gespeicherten MCP-Server. | Connection, allowed tools, agent prompt                       | „Füge `{{last.email}}` als neuen Kontakt zum CRM hinzu“      |

**Connected Apps (Beta).** Über die Plattformen oben hinaus führt der Katalog auch jede App, die dein Workspace per OAuth verbunden hat. Verbinde eine unter **Connections → Add Connection → Browse apps (Beta)** und wähle sie danach wie jede integrierte Plattform als Auslöser oder Aktion. Erfordert Workspace-**Beta Features**. Die vollständige Liste und wie das Verbinden funktioniert, findest du im [App Catalog](/de/automations/app-catalog).

| Schritt                           | Was er tut                                                                                         | Wichtige Felder         | Beispiel                                                 |
| --------------------------------- | -------------------------------------------------------------------------------------------------- | ----------------------- | -------------------------------------------------------- |
| **Execute app tool (Beta)**       | Führt ein Tool aus einer verbundenen App aus; seine Felder laden aus dem eigenen Schema des Tools. | App connection, tool    | Eine Zeile in einer verbundenen Tabelle erstellen        |
| **App event (Beta)** *(Auslöser)* | Feuert, wenn eine verbundene App ein signiertes Ereignis liefert.                                  | Aus dem Katalog gewählt | Einen Lauf bei einer neuen Posteingangsnachricht starten |

## Wie Daten zwischen Schritten fließen

Jedes mit ⚡ markierte Feld akzeptiert `{{ }}`-Templates, die aus den aktuellen Daten des Laufs gezogen werden.

| Pattern                      | Löst auf zu                                                                              |
| ---------------------------- | ---------------------------------------------------------------------------------------- |
| `{{data.from_number}}`       | Ein Feld aus dem Payload des Auslösers                                                   |
| `{{steps.<nodeId>.<field>}}` | Ein Ausgabefeld eines bestimmten früheren Schritts                                       |
| `{{last.<field>}}`           | Ein Ausgabefeld des unmittelbar vorangegangenen Schritts                                 |
| `{{item}}` / `{{index}}`     | Das aktuelle Element bzw. die aktuelle Position innerhalb eines **Loop on Items**-Rumpfs |

* **Extract Fields** liefert seine Werte doppelt zurück – verschachtelt unter `fields` (`{{steps.step1.fields.email}}`) und flach direkt am Schritt selbst (`{{steps.step1.email}}`) – nutze, was sich klarer liest.
* **Set variable** schreibt in den Lauf selbst statt in die eigene Ausgabe eines Schritts – referenziere den gewählten Pfad danach genauso, z. B. `{{vars.summary}}`.
* **Condition**, **Switch** und **Loop on Items** entscheiden außerdem, welcher verbundene Pfad als Nächstes läuft – zieh eigene Verbindungen aus ihren `true`/`false`-, Per-Case- oder **Loop**/**Done**-Anschlüssen.

<Tip>
  Nutze **Insert Variable**, um zu durchstöbern, was verfügbar ist, statt Pfade von Hand zu tippen. Das Test-Panel jedes Schritts hat zwei Stufen: **Connect Test** prüft nur, ob deine Felder gültig sind; **Run test** führt den Schritt wirklich aus und befüllt Insert Variable mit den Live-Ausgaben für jeden späteren Schritt.
</Tip>

<Warning>
  Run test ist eine echte Ausführung, keine Simulation – bei Connected-App-, E-Mail-, SMS-, HTTP- und CRM-Schritten kann es echte Daten anlegen oder ändern.
</Warning>

## Status

| Status       | Bedeutung                                                                     |
| ------------ | ----------------------------------------------------------------------------- |
| **Draft**    | Nicht live – Auslöser starten nie einen Lauf. Gefahrlos weiter bearbeitbar.   |
| **Live**     | Aktiv – passende Auslöser-Ereignisse starten echte Läufe.                     |
| **Paused**   | Vorübergehend aus. Schalte zurück auf Live, um fortzusetzen.                  |
| **Archived** | Ausgemustert. Reaktiviere sie genau wie Paused, falls du sie wieder brauchst. |

<Note>
  Eine Automatisierung, die fünf Läufe in Folge fehlschlägt, wird automatisch pausiert, damit ein defekter Graph nicht weiterfeuert. Sieh im **Runs**-Tab nach dem Fehler, behebe ihn und schalte dann zurück auf Live.
</Note>

So wechselt eine Automatisierung zwischen diesen Status:

```mermaid theme={null}
stateDiagram-v2
  [*] --> Draft
  Draft --> Live: Aktivieren
  Paused --> Live: Aktivieren
  Archived --> Live: Aktivieren
  Live --> Paused: Pausieren
  Live --> Paused: 5 fehlgeschlagene Läufe in Folge (automatisch)
```

## Automatisierungen mit Milian bauen

Öffne eine Automatisierung und bitte Milian, den KI-Copiloten, sie in normaler Sprache zu bauen oder zu ändern – einen Auslöser und Schritte hinzufügen, die true/false-Zweige einer Condition verdrahten, umbenennen oder neu taggen, auf Live schalten oder einen fehlgeschlagenen Lauf debuggen – dieselben Dinge, die du auch von Hand tun würdest. Probier „füge nach dem Auslöser einen E-Mail-Schritt hinzu“, „füge eine Condition-Verzweigung hinzu und verdrahte true/false“ oder „debugge den letzten fehlgeschlagenen Lauf“.

Wendet Milian eine Änderung direkt an, erscheint **Milian saved changes**; aktualisiert er die Canvas, ohne zu speichern, erscheint **Milian updated the canvas — click Save to persist**, und die Änderung bleibt ein Entwurf, bis du auf **Save** klickst.

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Automations-Übersicht" icon="diagram-project" href="/de/automations/overview">
    Konzepte, Abrechnung und durchgerechnete Beispiel-Automatisierungen
  </Card>

  <Card title="App Catalog" icon="grid-2" href="/de/automations/app-catalog">
    Apps für Auslöser und Aktionen durchstöbern und verbinden
  </Card>

  <Card title="CRM sync" icon="arrows-rotate" href="/de/automations/crm-sync">
    Audience und ein verbundenes CRM nach Zeitplan abgeglichen halten
  </Card>
</CardGroup>
