Iterator vă permite să parcurgeți un array de înregistrări și să efectuați acțiuni pe fiecare în parte. Este esențial pentru fluxuri de lucru care trebuie să proceseze mai multe înregistrări returnate de Search Records sau primite prin webhook-uri.Documentation Index
Fetch the complete documentation index at: https://docs.get-clara.tech/llms.txt
Use this file to discover all available pages before exploring further.
Când să folosiți Iterator
| Scenariu | Exemplu |
|---|---|
| Procesați rezultatele căutării | Trimiteți e-mail fiecărei persoane găsite |
| Gestionați array-urile de webhook | Creați înregistrări pentru fiecare element, în ordine |
| Actualizări în masă | Actualizați mai multe înregistrări cu valori calculate |
| Notificări | Alertați mai multe persoane despre un eveniment |
Înțelegerea Iteratorului
Iterator așteaptă un array ca intrare. Apoi:- Preia primul element din array
- Rulează toate acțiunile din interiorul Iteratorului cu acel element
- Trece la următorul element
- Repetă până când toate elementele sunt procesate
Configurare de bază
Exemplu: Trimiteți e-mail tuturor din rezultatele căutării
Obiectiv: Găsiți toate contactele dintr-o companie specifică și trimiteți fiecăruia un e-mail personalizat.Pasul 1: Căutați înregistrări
- Adăugați acțiunea Search Records
- Obiect: Persoane
- Filtru: Compania este egală cu “Acme Inc”
- Aceasta returnează un array de persoane
Pasul 2: Verificați dacă există rezultate
- Adăugați acțiunea Filter
- Condiție:
{{searchRecords.length}}este mai mare decât 0 - Aceasta previne erorile Iteratorului când rezultatele sunt goale
Pasul 3: Adăugați un Iterator
- Adăugați acțiunea Iterator
- Intrare pentru array: selectați
{{searchRecords}} - Aceasta creează o buclă
Pasul 4: Adăugați acțiuni în interiorul Iteratorului
Acțiunile plasate după Iterator rulează pentru fiecare element:- Adăugați acțiunea Send Email (în interiorul Iteratorului)
- Către:
{{iterator.currentItem.email}} - Subiect: Salut
{{iterator.currentItem.firstName}}! - Conținut: Mesaj personalizat folosind câmpurile elementului curent
Rezultat
Dacă Search Records returnează 5 persoane, Iteratorul:- Trimite e-mail persoanei 1
- Trimite e-mail persoanei 2
- … continuă pentru toate cele 5
Accesarea datelor elementului curent
În interiorul Iteratorului, folosiți{{iterator.currentItem}} pentru a accesa înregistrarea curentă:
| Variabilă | Descriere |
|---|---|
{{iterator.currentItem}} | Întregul obiect al înregistrării curente |
{{iterator.currentItem.id}} | ID-ul înregistrării |
{{iterator.currentItem.email}} | Câmp de e-mail |
{{iterator.currentItem.company.name}} | Numele companiei asociate |
{{iterator.index}} | Poziția curentă în array (indexare de la 0) |
Tipare comune
Actualizați mai multe înregistrări
Obiectiv: Marcați toate sarcinile întârziate ca “Late”Creați înregistrări dintr-un array
Obiectiv: Webhook-ul primește o comandă cu mai multe articole, creați o înregistrare pentru fiecareProcesare condițională în interiorul buclei
Obiectiv: Trimiteți e-mail doar contactelor cu adrese valideDepanare
”Iterator expects an array”
Cauză: Ați transmis o singură înregistrare în loc de un array. Remediere: Asigurați-vă că transmiteți rezultatul acțiunii Search Records sau un câmp de tip array, nu o singură înregistrare.Iteratorul nu rulează
Cauză: Array-ul este gol. Remediere: Adăugați un Filter înainte de Iterator pentru a verifica lungimea array-ului:Acțiunile rulează de prea multe ori
Cauză: Search Records a returnat mai multe înregistrări decât era de așteptat. Remediere:- Adăugați filtre mai specifice în Search Records
- Setați o limită în Search Records (maxim 200)
- Adăugați un Filter în interiorul Iteratorului pentru condiții suplimentare
Considerații de performanță
- Utilizarea creditelor: Fiecare iterație consumă credite pentru acțiunile sale
- Timp: Array-urile mari necesită mai mult timp pentru a fi procesate
- Limite: Luați în considerare procesarea în loturi a operațiunilor foarte mari
- Limite de rată: Apelurile către API-uri externe pot atinge limitele de rată la multe iterații
Cele mai bune practici
- Verificați întotdeauna lungimea array-ului înainte de Iterator pentru a evita erorile
- Adăugați filtre în interiorul buclelor când nu toate elementele trebuie procesate
- Redenumiți pasul Iterator pentru a descrie prin ce iterează
- Testați cu array-uri mici înainte de a procesa seturi mari de date
- Monitorizați rulările fluxurilor de lucru pentru a vă asigura că iterațiile se finalizează conform așteptărilor