Step For each
Ulangi step untuk setiap item dalam sebuah daftar
Step For each menjalankan rangkaian step untuk setiap item dalam daftar. Gunakan untuk mengirim email kepada setiap penerima, memperbarui hasil pencarian Database, atau memproses daftar item dari webhook.
Mengulang step untuk sebuah daftar
- Di editor workflow, tekan + dan pilih For each.
- Di List to repeat over, masukkan expression yang menghasilkan daftar.
- Hubungkan step yang harus berjalan untuk setiap item ke Each item.
- Hubungkan step yang harus berjalan sekali, setelah item terakhir, ke Done.
- Klik Test run untuk memeriksanya. Lihat Memeriksa hasil loop.
Cara kerjanya
For each memiliki dua handle di sisi kanannya:
- Each item — hubungkan step yang harus berjalan untuk setiap item. Step ini berjalan satu item pada satu waktu, sesuai urutan daftar, dan setiap item selesai terlebih dahulu sebelum item berikutnya dimulai.
- Done — hubungkan step yang harus berjalan sekali, setelah item terakhir.

Step yang terhubung ke Each item (dan semua yang mengikutinya) disebut loop body.
| Kolom | Catatan |
|---|---|
| List to repeat over | Expression yang menghasilkan daftar, misalnya {{ <stepId>.rows }} (baris yang ditemukan step Database Find rows) atau {{ trigger.items }} (daftar di body JSON webhook). Kamu tidak dapat mengetik daftar secara langsung. |
Prompt uji coba di editor hanya menerima teks, angka, dan benar/salah. Untuk menguji loop, gunakan daftar dari step sebelumnya atau kirim payload JSON ke webhook workflow.
Mengakses item yang sedang diproses
Di dalam loop body, output step For each menjelaskan item yang sedang diproses:
| Variable | Artinya |
|---|---|
{{ <stepId>.item }} |
Item saat ini. Jika daftarnya hasil pencarian Database, {{ <stepId>.item.full_name }} adalah kolom Full name baris itu (variable picker menampilkan kolomnya). |
{{ <stepId>.index }} |
Posisi item saat ini. Dimulai dari 0: item pertama adalah 0, item kedua 1. |
{{ <stepId>.count }} |
Jumlah item dalam daftar. |
Step dalam loop body dapat membaca output step sebelumnya untuk item yang sama, misalnya {{ <stepLain>.status }}. Output untuk setiap item tetap terpisah.
Setelah loop
Step yang terhubung ke Done dapat membaca:
| Variable | Artinya |
|---|---|
{{ <stepId>.count }} |
Jumlah item yang diproses. |
{{ <stepId>.results }} |
Satu entri per item, berurutan. Setiap entri berisi output setiap step di loop body yang berjalan untuk item itu, menurut ID step. Step yang dilewati untuk suatu item (misalnya sisi lain dari Condition) tidak disertakan. |
Untuk membaca satu nilai, gunakan posisi dan step tersebut: {{ <stepId>.results.0.<stepIsiPerulangan>.status }} adalah status dari step itu pada item pertama (di sini posisi juga dimulai dari 0).
Step setelah loop tidak dapat membaca output step loop body secara langsung ({{ <stepIsiPerulangan>.x }} kosong di sana); gunakan results.
Daftar kosong dan input yang salah
- Daftar kosong tetap menghasilkan Run yang berhasil: step di Each item dilewati, step di
Done berjalan, dan Run berhasil dengan
count0. - Apa pun yang bukan daftar (teks, angka, objek, atau nilai yang tidak ada) membuat step gagal dengan pesan "For each needs a list". Tidak dicoba ulang, dan tidak ada step di loop body yang berjalan.
Batas
- Maksimal 100 item. Daftar yang lebih panjang membuat step gagal dengan pesan yang menyebut batasnya, sebelum item mana pun berjalan. Tidak ada yang dipotong diam-diam.
- Maksimal 20 step di loop body.
- Maksimal satu step AI Video di loop body. Setiap item menunggu videonya sendiri, satu per satu, jadi loop lambat dan berarti satu video per item.
- Tidak boleh ada For each di dalam For each lain.
- Loop body tertutup. Step di luar loop tidak dapat terhubung ke dalamnya, dan step yang dihubungkan ke Each item sekaligus Done ditolak. Hubungkan step yang harus berjalan sesudahnya ke Done. Editor menampilkan masalahnya dan tidak akan menyimpan workflow sampai diperbaiki.
resultstidak boleh terlalu besar. Jika melebihi sekitar 1 MB, step gagal dan meminta kamu mengurangi ukuran output step dalam loop. Hasil tidak dipangkas secara otomatis.
Condition atau Delay diperbolehkan di loop body. Condition memilih cabangnya secara terpisah untuk setiap item. Delay menjeda sebelum item saat ini dilanjutkan, dan item berikutnya baru dimulai sesudahnya.
Jika sebuah item gagal
Jika sebuah step gagal pada suatu item (setelah seluruh retry yang berlaku selesai), Run gagal. Item sesudahnya tidak berjalan, dan item sebelumnya tidak dibatalkan: email yang sudah terkirim tetap terkirim. Setiap item menjalankan step tersebut sendiri, jadi step email atau posting mengirim sekali per item.
Memeriksa hasil loop
Di halaman Run, step For each menampilkan setiap item sebagai Item 3 of 10 dengan statusnya sendiri, dalam keadaan tertutup. Buka sebuah item untuk melihat input dan output step tersebut. Saat uji coba berjalan, step di canvas menunjukkan item mana yang sedang diproses, misalnya 3 / 10.

