Planung, Tests & Fehlersuche

Zuletzt aktualisiert 23 May 2026

Ein Workflow mit eingeschränkten Zeiten, einem pausierten Schritt für später und einem Aktivitätsprotokoll mit dem Ergebnis je Schritt

Ein fertig gebauter Workflow muss trotzdem pünktlich laufen, die Tests überstehen und Ihnen sagen, was passiert ist, wenn er sich nicht wie erwartet verhält. Zeitsteuerung, Testläufe, Aktivitätsprotokolle, Versionshistorie und die Fehler, die am meisten weh tun, alles an einem Ort.

Verzögerungen und Zeitsteuerung

Jeder Schritt hat eine Timing-Einstellung:

  • Sofort läuft, sobald der Schritt erreicht wird (die Standardeinstellung).
  • Nach einer Verzögerung wartet ein Intervall (Minuten, Stunden oder Tage) nach dem übergeordneten Schritt und läuft dann. Nutzen Sie das für Follow-ups: „2 Tage warten, dann eine Nachfrage senden."
  • Zu einem bestimmten Datum und einer bestimmten Uhrzeit läuft zu einem festen Zeitpunkt.

Ein Schritt, der verzögert oder geplant ist, wird geparkt und pünktlich fortgesetzt. Während er wartet, hält er nichts offen, sodass Sie riesige Mengen an Datensätzen auf eine Verzögerung warten lassen können, ohne dass das in der Zwischenzeit etwas kostet.

Eingeschränkte Zeiten und übersprungene Tage

Jeder Schritt kann auf ein Zeitfenster und auf bestimmte Tage eingeschränkt werden:

  • Legen Sie eine Von- und eine Bis-Zeit fest (und eine Zeitzone), sodass der Schritt zum Beispiel nur zwischen 09:00 und 17:00 Uhr läuft.
  • Wählen Sie zu überspringende Tage (z. B. Wochenenden).

Ein Schritt, der außerhalb seines erlaubten Fensters fällig wird, geht nicht verloren. Er wartet in der Warteschlange und wird ausgelöst, sobald das Fenster öffnet. Zeitfenster, die über Mitternacht reichen (z. B. 22:00 bis 06:00), werden korrekt behandelt.

So halten Sie kundenseitige Nachrichten höflich, keine SMS um 3 Uhr nachts, ohne den Rest des Workflows zu verkomplizieren.

Drosselung (das Stundenlimit)

Jeder Workflow hat ein Stundenlimit (Standard 3.000) dafür, wie viele Datensätze ihn bei listen- und planungsgestützten Workflows durchlaufen. Das taktet die Massenverarbeitung, sodass eine große Population verteilt wird, statt auf einmal abgeladen zu werden.

So funktioniert die Rechnung

Der Scheduler durchsucht in einem engen Zyklus nach fälliger Arbeit. Um gleichmäßig über die Stunde zu takten, gewährt er jedem Durchlauf ein Zehntel des Stundenlimits des Workflows:

Stundenlimit Kontingent je Durchlauf Durchläufe pro Stunde
3.000 (Standard) 300 Datensätze 10
1.000 100 Datensätze 10
10.000 1.000 Datensätze 10
< 10 das volle Limit, aber nur einmal pro Stunde 1

Ein listengestützter Workflow mit dem Standardlimit verarbeitet also etwa 300 Datensätze ungefähr alle sechs Minuten, nicht 3.000 auf einmal zur vollen Stunde. Wenn ein großer listengesteuerter Workflow „langsam" wirkt, ist das meist diese Taktung, die ihre Arbeit tut. Erhöhen Sie das Limit, wenn Sie wirklich mehr Durchsatz brauchen und die Kanäle, über die er sendet, das verkraften.

Was getaktet wird und was nicht

Quelle Durch das Stundenlimit getaktet?
Listen Ja
Geplant Ja
Datensatz-Ereignisse Nein, reagiert auf jedes Ereignis, sobald es eintritt
Listener Nein, reagiert auf jedes externe Signal, sobald es eintrifft
Manuell Nein

Datensatz-Ereignis- und Listener-Workflows werden von einzelnen Ereignissen getrieben, also gibt es nichts zu takten. Sie sind von Natur aus über den Tag verteilt.

Einen Workflow vor dem Livegang testen

Veröffentlichen Sie nie blind. Öffnen Sie den Workflow und nutzen Sie den Testlauf: Er führt den gesamten Baum gegen einen echten Datensatz Ihrer Wahl aus und zeigt Ihnen das Ergebnis jedes Schritts. Was er senden würde, was er ändern würde, welchen Zweig jede Entscheidung genommen hat.

Weil der Test die echten Schritte durchläuft, ist er der schnellste Weg, einen falschen Feldnamen, einen leeren Wert oder einen Zweig zu erwischen, der auf der falschen Seite einer Entscheidung angeschlossen ist. Testen, die Ergebnisse je Schritt lesen, beheben, erneut testen, dann veröffentlichen.

Die Aktivitätsprotokolle

Ein aktiver Workflow protokolliert, was er tut. Aus einem geöffneten Workflow sehen Sie:

AKTIVITÄTSPROTOKOLL Trigger ausgelöst 32 passende Datensätze 09:12:04 Entscheidung · amount > 1000 Ja 24 · Nein 8 09:12:05 E-Mail senden · wartet auf 09:00-Fenster in Warteschlange ! Webhook fehlgeschlagen · HTTP 502 wird wiederholt · Versuch 2 von 3 09:12:21 Tag onboarding hinzufügen 32 Datensätze 09:13:01
Ansicht Was sie zeigt
Verarbeitet Datensätze, die den Workflow durchlaufen haben, und wie
In Warteschlange Datensätze, die auf eine Verzögerung oder einen Zeitplan warten
Logs das Protokoll je Schritt: welcher Schritt für welchen Datensatz lief, das Ergebnis und der Fehlergrund, falls er fehlschlug
Aktivitätsstream ein Live-Feed und eine Zusammenfassung der Workflow-Aktivität

Wenn sich etwas nicht wie erwartet verhält, schauen Sie zuerst in die Logs-Ansicht. Jeder Schritt schreibt eine Zeile, einschließlich eines Fehlergrunds, wenn er fehlschlägt.

Versionen und Rollback

Jedes Mal, wenn Sie einen Workflow speichern, behält Flexie eine Version. Aus einem geöffneten Workflow:

  • Versionen lässt Sie die Änderungshistorie durchsehen.
  • Rollback stellt eine frühere Version wieder her, falls eine Änderung ein Problem verursacht hat.

Das macht das Bearbeiten eines aktiven Workflows sicher: Wenn sich eine Änderung falsch verhält, machen Sie ein Rollback.

Häufige Stolperfallen

Symptom Üblicher Grund Lösung
Ein Schritt läuft nie Er ist ein Kind einer Entscheidung, aber nicht am Ja- oder Nein-Zweig angehängt Hängen Sie ihn an den richtigen Zweig an
Schritte laufen in der „falschen Reihenfolge" Zwei als Geschwister platzierte Schritte laufen parallel, nicht nacheinander Platzieren Sie den zweiten Schritt unterhalb des ersten, damit er ein Nachfahre ist
Ein späterer Schritt sieht den Wert eines früheren Schritts nicht Der spätere Schritt ist kein Nachfahre des Schritts, der den Wert erzeugt hat Hängen Sie ihn unter den erzeugenden Schritt um (siehe Daten weitergeben)
Zwei Zweige berühren beide dasselbe Feld, mit widersprüchlichen Ergebnissen Sie laufen parallel, keiner ist „der erste" Reihen Sie sie als übergeordnet und untergeordnet, oder teilen Sie sie in getrennte Entscheidungen, sodass nur ein Zweig läuft
Ein „Aktualisieren"-Trigger löst nie aus Es wurde keine überwachte Feldänderung konfiguriert Geben Sie an, welche Feldänderung ihn auslösen soll
Der „Aktualisieren"-Trigger löst zu oft aus Zu viele überwachte Felder oder überwachte Felder, die sich aus unzusammenhängenden Gründen ändern Engen Sie die Liste der überwachten Felder auf die ein, die Sie wirklich interessieren
Ein listengestützter Workflow erreicht manche Datensätze nie Die Liste schließt sie aus, oder das Stundenlimit arbeitet die Population noch ab Prüfen Sie die Listendefinition und die Drosselung, geben Sie ihm Zeit oder erhöhen Sie das Limit
Ein Massen-Workflow ist langsam Das Stundenlimit taktet ihn Erhöhen Sie das Limit (innerhalb der Kanalkapazität) oder nutzen Sie eine Datensatz-Ereignis-Quelle, falls passend
Eine Nachricht ging zu einer ungünstigen Uhrzeit raus Keine eingeschränkten Zeiten am Sendeschritt Fügen Sie dem Schritt ein Zeitfenster oder übersprungene Tage hinzu
Ein geplanter Schritt scheint zu unerwarteten Zeiten auszulösen Eingeschränkte Zeiten oder übersprungene Tage haben ihn auf den nächsten erlaubten Zeitpunkt verschoben Schauen Sie sich das Trigger-Datum des Schritts in der Ansicht In Warteschlange an
Ein Webhook schlägt zeitweise fehl Vorübergehende Fehler ohne Wiederholung Aktivieren Sie Wiederholungen an der Webhook-Aktion
Ein Webhook schlägt immer fehl Falsche URL, falsche Methode, falsche Body-Form oder fehlende Auth auf der Gegenseite Prüfen Sie das Log des Schritts, der Response-Body und der Statuscode werden protokolliert
Ein Wert ist in der Ausgabe leer Das Feld war für diesen Datensatz leer Sichern Sie es mit default(...), coalesce(...) oder einem {% if %} ab
Ein Token wie {{ __data.X }} gibt leer zurück Entweder wurde oberhalb dieses Schritts nichts unter diesem Namen gespeichert, oder der Name ist falsch geschrieben Bestätigen Sie, wo X geschrieben wird, und dass der schreibende Schritt ein Vorfahre des lesenden Schritts ist
Eine Bedingung nimmt immer den Nein-Zweig Der linke Wert liest von der falschen Stelle. Meist ein Body-Feld, das als nacktes {{ X }} referenziert wird, obwohl es {{ __data.X }} sein sollte, oder ein Feld des aktuellen Datensatzes, das als {{ entity.X }} referenziert wird, obwohl es {{ X }} sein sollte Siehe Dynamische Endpunkte, Daten empfangen und Flexie Scripting, Sprachgrundlagen
is_empty- oder is_not_empty-Regeln liefern seltsame Ergebnisse Das Feld ist tatsächlich NULL, nicht leer Verwenden Sie is_null oder is_not_null
Ein „Zwischen"-Datumsfilter schließt die Grenze aus „Zwischen" ist an beiden Enden inklusiv; Sie haben ihm möglicherweise Datumsangaben statt Datums-Zeit-Werte gegeben Verwenden Sie Datums-Zeit-Werte (2026-05-01 00:00:00 bis 2026-05-02 23:59:59) für die Erfassung eines vollen Tages
Datensätze tauchen in In Warteschlange auf, laufen aber nie Sie liegen außerhalb des eingeschränkten Fensters des Schritts oder an übersprungenen Tagen Passen Sie das Fenster an oder warten Sie, bis es öffnet
Der Workflow ist veröffentlicht, aber nichts passiert Der Workflow liegt außerhalb seines Veröffentlichungsfensters Prüfen Sie die Daten des Veröffentlichungsfensters
Ein Testlauf sah gut aus, aber der Live-Workflow verhält sich falsch Testläufe laufen gegen einen ausgewählten Datensatz; Live-Daten haben Variationen, die der Test nicht abgedeckt hat Testen Sie gegen mehrere verschiedene Datensätze, einschließlich Grenzfällen (leere Felder, sehr große Werte, fehlende Verknüpfungen)
Ein Lauf hat doppelte Datensätze erzeugt Eine Aktion mit Wiederholung oder zwei Zweige, die beide erstellen Machen Sie die Erstellung bedingt oder entfernen Sie Duplikate vor dem Erstellen mit findOne
Die Ausgabe hat sich nach dem Bearbeiten des Workflows unerwartet geändert Eine neue Version ist live; das alte Verhalten steckt in einer früheren Version Nutzen Sie Versionen zum Vergleichen und Rollback, falls nötig
KI-gebaute Workflows haben Entscheidungen mit derselben wiederholten Bedingung Die KI bevorzugt explizite Bedingungen je Zweig Fassen Sie zu einer Entscheidung mit AND oder OR zusammen, falls einfacher

Eine Checkliste vor der Veröffentlichung

  1. Richtiger Datensatztyp und richtige Quelle für den echten Trigger?
  2. Bei Aktualisieren-Triggern: Sind die überwachten Feldänderungen gesetzt?
  3. Sind die Ja- und Nein-Zweige jeder Entscheidung korrekt verbunden?
  4. Sind Schritte, die von früherer Ausgabe abhängen, Nachfahren dieser Schritte?
  5. Haben kundenseitige Sendungen Zeitfenster, wo angebracht?
  6. Gegen einen echten Datensatz getestet und sehen die Ergebnisse je Schritt richtig aus?
  7. Veröffentlichungsfenster gesetzt, falls er nur für einen Zeitraum aktiv sein soll?

Nächste Schritte