ループ
n8n におけるループ
複数のアイテムを処理したり、特定の操作を繰り返す必要がある場合(例:連絡先リスト内の各連絡先にメッセージを送信するなど)、ループは非常に役立ちます。n8n はこうした繰り返し処理を自動で行うため、ほとんどのケースではワークフロー内で明示的にループ構造を構築する必要はありません。ただし、いくつかの例外となるノードも存在します。
n8n でのループの使用方法
n8n のノードは任意の数のアイテムを入力として受け取り、処理後に結果を出力します。各アイテムは個別のデータポイント、またはノードが出力するテーブルの1行とみなせます。

通常、ノードは各アイテムに対して1回ずつ実行されます。たとえば、Customer Datastore ノードに含まれるすべての顧客の名前とメモを Slack にメッセージとして送信したい場合は、以下の手順で済みます:
- Slack ノードを Customer Datastore ノードに接続する。
- パラメータを設定する。
- ノードを実行する。
すると、5つのアイテムがあれば、Slack にメッセージが 5 件送信されます。
これが、n8n が明示的なループ構造を構築することなく、複数のアイテムを一括処理する仕組みです。
ループの作成
n8n は通常、すべての入力アイテムを自動的に繰り返し処理しますが、特定のシナリオでは手動でループを構築してすべてのアイテムを処理する必要があります。どのノードが自動的にすべてのアイテムを処理しないかについては、「ノードの例外一覧」をご参照ください。
条件を満たすまでループする
n8n ワークフロー内でループを作成するには、あるノードの出力を、それより前に配置されたノードの入力に戻すことでループを構成します。そして、ループを終了するタイミングを判断するために IF ノードを追加します。
以下は、IF ノードを使用してループを実装したサンプルワークフローです:

すべてのアイテムが処理されるまでループする
すべてのアイテムが処理されるまでループさせたい場合は、Loop Over Items ノードを使用します。各アイテムを1つずつ処理したい場合は、バッチサイズ(Batch Size) を 1 に設定します。
また、大量の入力データを処理する場合や、特定のバッチ単位で API レスポンスを処理したい場合にも、この方法でデータをバッチ処理できます。これにより、API のレート制限に引っかかるリスクを軽減できます。
Loop Over Items ノードは、すべての入力アイテムがワークフロー内の次のノードにバッチ単位で渡された時点で自動的に停止するため、ループを終了させるために IF ノードを追加する必要はありません。
ノードの例外
以下のノードおよび操作では、ワークフロー内で手動でループを設計する必要があります:
- CrateDB:
insertおよびupdate操作は1回のみ実行されます。 - Code ノード(すべてのアイテムに対して1回実行モード):入力されたコードスニペットに基づいてすべてのアイテムを処理します。
- Execute Workflow ノード(すべてのアイテムに対して1回実行モード)。
- HTTP Request:ページネーションのロジックを自分で処理する必要があります。API 呼び出しがページネーション付きの結果を返す場合、ループを構築して各ページのデータを取得する必要があります。
- Microsoft SQL:
insert、update、delete操作は1回のみ実行されます。 - MongoDB:
insertおよびupdate操作は1回のみ実行されます。 - QuestDB:
insert操作は1回のみ実行されます。 - Redis:
- Info(情報):入力データに含まれるアイテム数に関係なく、この操作は1回のみ実行されます。
- RSS Read:指定された URL に対して1回のみ実行されます。
- TimescaleDB:
insertおよびupdate操作は1回のみ実行されます。