メインコンテンツまでスキップ

サブワークフロー

あるワークフローから別のワークフローを呼び出すことで、モジュール化されたマイクロサービスのようなワークフロー構造を構築できます。また、ワークフローが大きくなりすぎてメモリに関する問題が発生した場合にも、これを効果的に分割する手段となります。サブワークフローを作成するには、「ワークフローを実行」ノードと「別のワークフローから実行されたとき」(Execute Sub-workflow Trigger)ノードを使用します。

サブワークフローの実行回数は、ご利用プランにおける月間実行回数やアクティブなワークフロー数の上限には含まれません。

サブワークフローの設定と使用方法

このセクションでは、親ワークフローとサブワークフローの両方を設定する方法を説明します。

サブワークフローの作成

  1. 新しいワークフローを作成します。

既存のワークフローからサブワークフローを作成する

既存の親ワークフロー内にある「ワークフローを実行」ノードから直接サブワークフローを作成することも可能です。ノードの設定で データベース および リストから を選択し、リスト内で サブワークフローを作成 を選択してください。

また、右クリックメニューの「サブワークフローとして抽出」機能を使って、選択したノードを直接サブワークフローとして抽出することもできます。

  1. (オプション) このサブワークフローを呼び出せるワークフローを制限します:

    1. オプション オプションメニュー メニュー > 設定 をクリックして、ワークフロー設定 ダイアログを開きます。
    2. このワークフローを呼び出せる対象 の設定を変更します。詳細な設定方法については、「ワークフロー設定」をご参照ください。
  2. 別のワークフローから実行されたとき ノード(トリガーノード検索ではこの名称で表示されます)を追加します。

  3. 入力データモード を設定し、サブワークフローの入力データをどのように定義するかを選択します:

    • 以下のフィールドで定義:このモードを選択すると、呼び出し元のワークフローが提供すべき個別の入力項目名とデータ型を定義できます。呼び出し元の「ワークフローを実行」ノードまたは「Call n8n Workflow Tool」ノードは、ここで定義されたフィールドを自動的に読み取ります。
    • JSON サンプルで定義:このモードを選択すると、期待される入力項目とその型を示す JSON オブジェクトのサンプルを提供します。
    • すべてのデータを受け入れる:このモードを選択すると、すべての入力データを無条件に受け入れます。サブワークフロー側では必須の入力項目を定義しないため、入力データの不整合や欠損値を自分で処理する必要があります。
  4. 必要に応じて他のノードを追加し、サブワークフローの機能を完成させます。

  5. サブワークフローを保存します。

サブワークフローにエラーがあってはいけません

サブワークフロー内にエラーがある場合、親ワークフローはそれをトリガーできません。

サブワークフロー構築前にデータをロードする

この機能には、過去の実行履歴からデータをロードする機能が必要です。この機能は n8n Cloud および登録済みのコミュニティプランで利用可能です。

サブワークフローを構築する前にデータをロードしたい場合は、以下の手順に従ってください:

  1. サブワークフローを作成し、「別のワークフローから実行されたとき」ノードを追加します。
  2. ノードの 入力データモードすべてのデータを受け入れる に設定するか、既知の入力項目がある場合はフィールドまたは JSON で定義します。
  3. サブワークフローの設定で、成功した本番実行を保存保存 に変更します。
  4. 親ワークフローの設定に進み、それを実行します。
  5. 手順に従って、過去の実行履歴からデータをロードします。
  6. 必要に応じて、入力データモード を親ワークフローが送信する入力に合わせて調整します。

これにより、トリガーノードにサンプルデータを固定し、ワークフローの残り部分を構築する際に実際のデータを使って開発できるようになります。

サブワークフローの呼び出し

  1. サブワークフローを呼び出したい親ワークフローを開きます。
  2. ワークフローを実行 ノードを追加します。
  3. ワークフローを実行 ノードで、呼び出すサブワークフローを設定します。ワークフロー ID による指定、ローカルファイルからの読み込み、ノードパラメータとして JSON を直接入力、または URL による指定が可能です。

ワークフロー ID の確認方法

サブワークフローの ID は、その URL の末尾にある英数字の文字列です。

  1. サブワークフローで定義された必須の入力項目を記入します。
  2. ワークフローを保存します。

ワークフローを実行すると、データがサブワークフローに送信され、その実行がトリガーされます。

「ワークフローを実行」ノードを開き、子実行を表示 リンクをクリックすることで、親ワークフローからサブワークフローへの実行フローを追跡できます。同様に、サブワークフローの実行ログにも親ワークフローの実行ログへのリンクが含まれており、双方向に移動できます。

ワークフロー間でのデータの受け渡し方法

具体的な例で説明します:ワークフロー A に「ワークフローを実行」ノードがあり、ワークフロー B という別のワークフローを呼び出している場合:

  1. 「ワークフローを実行」ノードがデータを ワークフロー B 内の「別のワークフローから実行されたとき」ノードに渡します。
  2. ワークフロー B の最後のノードがデータを ワークフロー A の「ワークフローを実行」ノードに返します。

サブワークフローとして抽出する方法

既存のワークフローをサブワークフローに分割する方法については、「サブワークフローとして抽出する方法」をご参照ください。