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.
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.
Im Automation Builder startet On Call Completed dieses Beispiel; über das + an der Verbindung fügst du einen weiteren Schritt hinzu.
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.Bei Conversation-Auslösern zeigen Plattform und Kanal oder Widget nur aktive, verbundene Kanäle des gewählten Assistenten. Ohne Assistentenfilter erscheinen die verbundenen Kanäle des Workspaces. Webchat-Widgets sind für Conversation started verfügbar. Die Auswahl einer Verbindung setzt automatisch ihre Plattform. Gespeicherte Filter bleiben als nicht verfügbar sichtbar, wenn eine Verbindung entfernt, deaktiviert oder neu zugewiesen wird; prüfe sie vor dem Speichern. Ein leerer Verbindungsfilter schließt auch zukünftige passende Verbindungen ein. REST und MCP verwenden dieselben Assistenten-, Plattform- und Verbindungsfilter.
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- oder Webchat-Unterhaltung beginnt, auch in der Widget-Vorschau.
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.
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
Eine verbundene App liefert ein signiertes Ereignis – ein neuer Commit, eine Posteingangsnachricht und so weiter. Wähle App und Ereignis aus dem Katalog.
Diese sprechen mit nichts außerhalb der Automatisierung – sie bestimmen, welchen Pfad ein Lauf nimmt, oder pausieren ihn.
Öffne im Builder Add Node → Famulor, um eine Logik-Aktion wie Condition, Loop on Items, Filter oder Set variable auszuwählen.
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
Loop on Items verarbeitet höchstens 100 Elemente pro Schleife, und Schleifen können bis zu 5 Ebenen tief verschachtelt werden.
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.
Im Katalog unter Milian AI gruppiert. Diese Aktionen verbrauchen Workspace-Credits entsprechend der Token-Nutzung zu den Tarifen deines Workspace. Der abgebuchte Betrag erscheint am Lauf und im Test-Panel des Schritts.
Add Node → Milian AI zeigt die Analyse-Aktionen, darunter Classify Text, Custom Prompt und Extract Fields. Wähle eine Aktion, um ihre Eingaben zu konfigurieren.
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
Füge unter Automations → Milian AI einen Schritt hinzu, um Text zu klassifizieren, eine Bedingung zu prüfen, Inhalte zu bewerten, mehrere Labels zu erkennen oder eine benutzerdefinierte Analyse zu erstellen. Benutzerdefinierter Prompt und Felder extrahieren bleiben verfügbar.
Classify Text → Configure: Lege Input Data, Answer key, Question und Categories fest. Die gezeigten Werte sind bearbeitbare Beispiele.
Fünf neue Aktionen. Verwandle Transkripte, Nachrichten und Ergebnisse vorheriger Schritte in Kategorien, Ja/Nein-Entscheidungen, Bewertungen oder Labels.
Drei editierbare Vorlagen. Starte die benutzerdefinierte Analyse mit Anruf auswerten, Lead qualifizieren oder Nachricht priorisieren und passe die Fragen an.
Klare Unsicherheit. Bei unzureichenden Informationen bleibt die Antwort unklar. Prüfe den Ergebnisstatus mit einer Bedingung, bevor die Automation fortfährt.
Dein Workspace, dein Ablauf. Sieh dir Eingaben ohne Credit-Verbrauch an, führe einen Live-Test mit Workspace-Credits aus und verwende dieselbe Konfiguration über REST oder MCP.
Die eigentliche Analyse verbraucht Workspace-Credits. Bewertungen folgen deinen Stufen und werden auf einer Skala von 0 bis 100 ausgegeben.Mit Benutzerdefinierte Analyse kombinierst du Fragetypen oder verwendest eine der drei Vorlagen. Jede Antwort benötigt einen eindeutigen Schlüssel. Kategorien brauchen 2–32 beschriebene Optionen, Bewertungen 2–10 geordnete Stufen. Pro Analyse sind bis zu 32 Fragen möglich. Verwende bis zu 32 KB Text und teile längere Eingaben gezielt auf.Die Mindestwahrscheinlichkeit gilt für Kategorien und Ja/Nein-Entscheidungen, die Mindestkonfidenz für Kategorien und Bewertungen. Jede Frage prüft außerdem, ob genügend Informationen vorliegen. Die Schwellenwerte sind konfigurierbare Regeln und keine Richtigkeitsgarantie.Jede Antwort hat einen Wert und einen Status. Unklar liefert null, ein belegtes Nein liefert false. Die Label-Liste enthält nur bestätigte Treffer; prüfe unklare Labels in den Einzelergebnissen. Technische Fehler stoppen den Schritt. Mehrere unabhängige Fragen werden gemeinsam ausgewertet.Über die Variablenauswahl nutzt du Antworten in Folgeschritten. Prüfe zuerst den Status und vergleiche anschließend den Wert mit einer Bedingung. Der Analyseschritt erzeugt selbst keine zusätzlichen Verzweigungen. Für Zusammenfassungen, Übersetzungen und freie Extraktion bleiben die bisherigen Aktionen zuständig.
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.
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), optionale Variablen
Einen Lead nach einem verpassten eingehenden Anruf automatisch zurückrufen
Call Phone Number akzeptiert zusätzlich optionale Variablen als flaches JSON-Objekt, etwa { "auftrag": "{{data.task}}" }. Werte dürfen Text (bis 2000 Zeichen), Zahlen oder boolesche Werte sein. Ein vollständiges Mapping aus einem vorherigen Schritt ist ebenfalls möglich, etwa {{data.inputs}}. Das sind Eingaben für diesen Call; Assistent und Kontakt werden nicht geändert. Ungültige oder nach dem Auflösen zu lange Werte lassen den Schritt vor dem Wählen fehlschlagen. Prüfe die erwarteten Eingaben und das tatsächliche Call-Ergebnis getrennt; ein erstellter Call belegt noch keinen erfolgreichen Auftrag.
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
HTTP-Request-Aktionen wiederholen vorübergehende HTTP- und Verbindungsfehler bis zu zweimal innerhalb des eingestellten Timeouts, mit demselben Idempotency-Key. Vorübergehende Fehler sind HTTP 408, 425, 429, 5xx und Netzwerkfehler. Permanente Fehler stoppen sofort. Der Timeout gilt für die gesamte Aktion; nach Ablauf enden die Wiederholungen. Der Empfänger muss Idempotency-Key beachten, um doppelte Auswirkungen nach einer verlorenen Antwort zu vermeiden.
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 – 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.
„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. Über die Plattformen oben hinaus führt der Katalog auch jede App, die dein Workspace per OAuth verbunden hat. Verbinde eine unter Connections → App marketplace und wähle sie danach wie jede integrierte Plattform als Auslöser oder Aktion. Die vollständige Liste und wie das Verbinden funktioniert, findest du im App Catalog. Apps mit vielen Aktionen laden beim Scrollen weitere nach; über Search actions… oberhalb der Liste findest du jede Aktion per Name oder Stichwort, etwa send message.
Schritt
Was er tut
Wichtige Felder
Beispiel
Execute app tool
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(Auslöser)
Feuert, wenn eine verbundene App ein signiertes Ereignis liefert.
Aus dem Katalog gewählt
Einen Lauf bei einer neuen Posteingangsnachricht starten
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.
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.
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.
Classify Text → Test fordert zunächst Beispieldaten am Trigger an. Prüfe die Eingaben vor der Ausführung; ein Live-Test verbraucht Workspace-Credits.
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.
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.
So wechselt eine Automatisierung zwischen diesen Status:
Ö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.