「スクリプトを実行」は、手動で構築する必要があるものも含め、すべてのアクションの動作を実現できるため、オートメーションの構築に使用することを強く推奨します。チャットで要件をAIに説明するだけです。アクションを手動で追加した場合、後からAIが認識または変更することはできません。
ループを使用すると、配列の各項目につき一度アクションを実行できます。1件のレコード処理や1通のメール送信ではなく、一覧の各項目に対してアクションを繰り返し、レコードの一括作成、連絡先ごとのメール送信、項目ごとのAPI呼び出しを行えます。
項目は順番に処理され、すべての反復結果が配列として返されるため、後続ステップで利用できます。
対応するアクション
配列の取得元
ループを使用するには、入力となる配列が必要です。一般的な取得元は次のとおりです。
設定方法
- 対応するアクション(「レコードを作成」、「メールを送信」など)を開きます。
- テーブル選択の下、またはアクション設定領域にあるループ実行をクリックします。
- データソースの選択画面で、前のステップの配列変数を選びます。たとえば、「レコードを取得」ステップのレコード配列です。
- フィールドマッピング領域に、配列全体ではなく各項目のプロパティが表示されます。+ をクリックし、現在のレコードの名前、メール、ステータスなど、現在の項目のプロパティを参照します。
- アクションを保存します。ワークフローの実行時、配列の項目ごとにアクションが一度実行されます。
現在の項目を参照する方法
ループが有効な場合、+ の変数選択に現在処理している項目のプロパティが表示されます。例:
- 「レコードを取得」の出力をループする場合、
現在の項目 → フィールド → 名前、現在の項目 → フィールド → メールなどを参照できます。
- Webhookの配列をループする場合、
現在の項目 → product_name、現在の項目 → quantityなどを参照できます。
配列全体または特定のインデックスを参照する、ループなしのモードとは異なります。
具体例:期限切れタスクのリマインダーメールを送る
- トリガー: 毎日午前9時の指定時刻。
- アクション1: レコードを取得 — タスクテーブルから、期限が今日より前、かつステータスが「完了」ではないレコードを絞り込みます。
- アクション2: ループを有効にしたメールを送信。データソースはアクション1のレコード配列です。
- 宛先: 現在の項目の担当者メールフィールド。
- 件名:
リマインダー:「{{current item → Task Name}}」は期限切れです
- 本文:
{{current item → Assignee Name}}様、タスク「{{current item → Task Name}}」の期限は{{current item → Due Date}}でした。更新してください。
結果:期限切れタスクごとに個別のメールが1通送信されます。
HTTP配列本文
HTTPリクエストアクションでは、ループに特別な配列本文モードがあります。項目ごとにHTTPリクエストを送信する代わりに、配列全体を1つのJSON配列として1回のリクエストで送信します。項目ごとの送信より高速で、レート制限にも達しにくくなります。
外部APIが一括操作に対応している場合(1回のAPI呼び出しで複数レコードを作成する、分析サービスへイベントを一括送信するなど)に役立ちます。
配列本文を使用するには:
- HTTPリクエストアクションでループを有効にします。
- デフォルトの項目ごとのモードではなく、配列本文モードを選択します。
- 配列全体がJSON配列としてシリアライズされ、リクエスト本文で送信されます。
パフォーマンス上の注意
- ループは項目を並列ではなく順番に処理します。100項目のループには、1回の実行の約100倍の時間がかかります。
- 数百、数千項目の大きな配列では、外部アクションが一括入力に対応しているか確認します。APIが対応する場合はHTTP配列本文を使用します。
- 「レコードを取得」の出力をループし、レコードごとにHTTPリクエストを行う場合は、外部APIのレート制限に注意します。
- 非常に大きなデータセットでは、「レコードを取得」のページネーション(スキップ/取得)を使用して作業を小さなバッチへ分割し、複数回オートメーションを実行することを検討します。
使用例
- レコードを一括作成する。 あるテーブルからレコードを取得し、ループして別のテーブルに対応するレコードを作成します。
- 一覧の各連絡先へ個別メールを送る。 連絡先一覧を取得し、ループしてそれぞれにカスタマイズしたメールを送ります。
- 複数のレコードを更新する。 条件に一致するレコードを取得してループし、各レコードを更新します(期限切れタスクをすべて「エスカレーション済み」にするなど)。
- レコードごとにAPIを呼び出す。 各レコードのデータを1件ずつ外部システムへ送ります。
- 一括レコードをAIで処理する。 レコードをループし、AI生成で各レコードの分類、要約、データ抽出を行います。
ヒント
- ループを有効にする前に、必ず配列のサイズを確認します。「レコードを取得」が1,000件を返すと、ループも1,000回実行されます。
- オートメーションを開始したテーブルと同じテーブルでレコードを作成・更新する場合は、再実行に注意します。トリガーにフィルターを設定してループを防ぎます。
- すべての反復結果は後続ステップで配列として利用できますが、非常に大きなループでは配列も大きくなります。必要なデータだけを参照してください。
関連ページ