Wann Sie Iterator verwenden sollten
| Szenario | Beispiel |
|---|---|
| Suchergebnisse verarbeiten | E-Mail an jede gefundene Person senden |
| Webhook-Arrays verarbeiten | Der Reihe nach für jedes Element Datensätze erstellen |
| Massenaktualisierungen | Mehrere Datensätze mit berechneten Werten aktualisieren |
| Benachrichtigungen | Mehrere Personen über ein Ereignis benachrichtigen |
Iterator verstehen
Iterator erwartet ein Array als Eingabe. Dann:- Nimmt das erste Element aus dem Array
- Führt alle Aktionen innerhalb des Iterators mit diesem Element aus
- Wechselt zum nächsten Element
- Wiederholt sich, bis alle Elemente verarbeitet sind
Auswählen des Arrays, über das iteriert werden soll
Die meisten Array-Quellen (Search Records, ein Webhook-Array-Feld, ein Bulk Manual Trigger) können direkt im Variablen-Auswahldialog ausgewählt werden. Wenn ein Code- oder Logic Function-Schritt ein Top-Level-Array zurückgibt, erscheint dessen Ausgabe im Variablen-Auswahldialog als indizierte Einträge (0, 1, 2, …). Um über das Array als Ganzes zu iterieren, wähle für diesen Schritt die Option Whole list – der Iterator leitet dann die Struktur jedes Elements automatisch aus der Liste ab.
Grundlegende Einrichtung
Beispiel: E-Mail an alle in den Suchergebnissen
Ziel: Alle Kontakte in einem bestimmten Unternehmen finden und jedem eine personalisierte E-Mail senden.Schritt 1: Nach Datensätzen suchen
- Fügen Sie die Aktion Datensätze suchen hinzu
- Objekt: Personen
- Filter: Unternehmen ist gleich “Acme Inc”
- Dadurch wird ein Array von Personen zurückgegeben
Schritt 2: Prüfen, ob Ergebnisse vorhanden sind
- Fügen Sie eine Filter-Aktion hinzu
- Bedingung:
{{searchRecords.length}}ist größer als 0 - Dies verhindert Iterator-Fehler bei leeren Ergebnissen
Schritt 3: Iterator hinzufügen
- Fügen Sie eine Iterator-Aktion hinzu
- Array-Eingabe: Wählen Sie
{{searchRecords}}aus - Dadurch wird eine Schleife erstellt
Schritt 4: Aktionen im Iterator hinzufügen
Aktionen, die nach dem Iterator platziert werden, werden für jedes Element ausgeführt:- Fügen Sie eine E-Mail senden-Aktion hinzu (im Iterator)
- An:
{{iterator.currentItem.email}} - Betreff: Hallo
{{iterator.currentItem.firstName}}! - Text: Personalisierte Nachricht unter Verwendung der Felder des aktuellen Elements
Ergebnis
Wenn Datensätze suchen 5 Personen zurückgibt, führt der Iterator Folgendes aus:- Sendet E-Mail an Person 1
- Sendet E-Mail an Person 2
- … setzt dies für alle 5 fort
Zugriff auf Daten des aktuellen Elements
Im Iterator verwenden Sie{{iterator.currentItem}}, um auf den aktuellen Datensatz zuzugreifen:
| Variable | Beschreibung |
|---|---|
{{iterator.currentItem}} | Das vollständige Objekt des aktuellen Datensatzes |
{{iterator.currentItem.id}} | Datensatz-ID |
{{iterator.currentItem.email}} | E-Mail-Feld |
{{iterator.currentItem.company.name}} | Name des zugehörigen Unternehmens |
{{iterator.index}} | Aktuelle Position im Array (0-basiert) |
{{iterator.currentItem}}). Das Auswählen des gesamten Elements ist praktisch, wenn du einen vollständigen Datensatz direkt an einen nachgelagerten Schritt übergeben möchtest, anstatt ihn Feld für Feld neu aufzubauen.
Häufige Muster
Mehrere Datensätze aktualisieren
Ziel: Alle überfälligen Aufgaben als “Late” markierenDatensätze aus Array erstellen
Ziel: Ein Webhook erhält eine Bestellung mit mehreren Positionen; für jede Position einen Datensatz erstellenBedingte Verarbeitung innerhalb der Schleife
Ziel: Nur E-Mails an Kontakte mit gültigen E-Mail-Adressen sendenFehlerbehebung
”Iterator erwartet ein Array”
Ursache: Sie haben einen einzelnen Datensatz statt eines Arrays übergeben. Lösung: Stellen Sie sicher, dass Sie das Ergebnis von Datensätze suchen oder ein Array-Feld übergeben, nicht einen einzelnen Datensatz.Iterator wird nicht ausgeführt
Ursache: Das Array ist leer. Lösung: Fügen Sie vor dem Iterator einen Filter hinzu, um die Array-Länge zu prüfen:Aktionen werden zu oft ausgeführt
Ursache: Datensätze suchen hat mehr Datensätze zurückgegeben als erwartet. Lösung:- Fügen Sie der Aktion „Datensätze suchen“ spezifischere Filter hinzu
- Legen Sie für die Aktion „Datensätze suchen“ ein Limit fest (max. 200)
- Fügen Sie innerhalb des Iterators einen Filter für zusätzliche Bedingungen hinzu
Leistungsaspekte
- Credit-Verbrauch: Jede Iteration verbraucht Credits für ihre Aktionen
- Zeit: Große Arrays benötigen länger für die Verarbeitung
- Grenzwerte: Ziehen Sie für sehr große Vorgänge eine Stapelverarbeitung in Betracht
- Ratenlimits: Externe API-Aufrufe können bei vielen Iterationen auf Ratenlimits stoßen
Beste Praktiken
- Prüfen Sie stets die Array-Länge vor dem Iterator, um Fehler zu vermeiden
- Fügen Sie Filter innerhalb von Schleifen hinzu, wenn nicht alle Elemente verarbeitet werden müssen
- Benennen Sie Ihren Iterator-Schritt um, um zu beschreiben, was durchlaufen wird
- Testen Sie mit kleinen Arrays, bevor Sie große Datenmengen verarbeiten
- Überwachen Sie Workflow-Ausführungen, um sicherzustellen, dass Iterationen wie erwartet abgeschlossen werden