メインコンテンツへスキップ

n8n ワークフロー

AI-Corporate は production webhook 経由で n8n ワークフローを起動できます。AI-Corporate の外部で自動化プロセスを開始したい場合、例えばタスクの作成、CRM レコードの更新、レポートフローの開始、フォームデータを別のシステムへ転送するなどの場合に便利です。

例: 企業ウェブサイトのニュース記事

組織が企業の WordPress サイトにニュース記事を公開する n8n ワークフローを作成しているとします。AI-Corporate では短い文章だけを入力します。例えば顧客事例、イベント、社内マイルストーンについての数文です。その文章を使って n8n でワークフローを開始します。

n8n のワークフローは以下のように進行できます。

  1. 短い文章から、組織のトーンに合うように LLM ノードとプロンプトを使って適切なドラフト文を作成します。
  2. 2 番目の LLM ノードで、適切なイラストを作成します。ブランドカラーと認識しやすいスタイルで。
  3. テキストと画像をブログ投稿用に準備するか、WordPress に公開します。

このように AI-Corporate と n8n は協力します。AI-Corporate ではユーザーがワークフローを選択し、必要な情報を入力します。n8n が自動化ステップを実行し、ニュース記事をウェブサイトにきちんと掲載します。

この統合の機能

ワークフローの概要から n8n ワークフローを起動します。Production webhook の POST と Header Auth のみ必須です。n8n からのフィールドやフィードバックは任意で、独立して設定可能です。

  • ワークフローにフィールドがない場合、Webhook は直ちに呼び出されます。
  • ワークフローにフィールドがある場合、まずフォームを開きます。ユーザーがフィールドを入力し、後に「開始」ボタンでワークフローを起動します。
  • 入力された値は、POST リクエストとして n8n の webhook へ JSON で送信されます。
  • フィードバックがない場合、AI-Corporate はワークフローが開始され、n8n で引き続き動作していることだけを確認します。ウィンドウにはスピナーは表示されず、すぐに閉じられます。
  • 登録時にこれを有効にしている場合、ワークフローは途中のステップあるいは終了を AI-Corporate に返すことができます。
  • 登録時に承認を有効にしている場合、ユーザーは AI-Corporate 内で直接選択を行えます。その後 n8n は待機中のステップから処理を続行します。

AI-Corporate での n8n ワークフロー作成

管理者は以下の手順でワークフローを登録します。

  1. **Assistants(アシスタント)**へ移動
  2. **Workflows(ワークフロー)**を開く
  3. **New n8n workflow(新しい n8n ワークフロー)**を選択
  4. ワークフローの名前と n8n の production URL を入力
  5. Header authentication を header 名と秘密の header 値で設定
  6. Callbacks from n8n(n8n からの戻り) の下で、実際にこの n8n ワークフローで構築されている要素のみを有効化: 進行状況、承認、またはワークフローの終了
  7. POST リクエストで送信するフィールドを追加
  8. ワークフローを保存

すべての three つの戻り値オプションはデフォルトでオフです。後で n8n でコールバックや承認ステップを設定する場合、AI-Corporate での登録も更新します。ダイアログは、開始確認のみを表示するか、それ以降の信号を待機するかを認識します。

フィールド

  • フィールドはオプションです。
  • 各フィールドには1つのフィールド名と型があります。
  • 対応可能なフィールドタイプは:短文、長文、数値、真/偽、日付、1つ選択、複数選択。
  • One choice(1つ選択)Multiple choices(複数選択) では、利用可能なオプションを追加します。1つ選択 はコンパクトな選択リストとして表示され、複数選択 はチェックボックスを表示します。選択された値は JSON ボディで送信されます。
  • 必須フィールドは、ワークフローを開始する前に入力されている必要があります。
  • フィールド名は n8n へ送信される JSON ボディのキーになります。

n8n での互換性のあるワークフロー作成

  1. n8n で新しいワークフローを作成します。
  2. 最初のノードとして Webhook を追加します。
  3. このノードに正確な名前 Start workflow を付けます。下の例 expressions もこの名前を使用します。
  4. HTTP MethodPOST に設定します。
  5. Authentication: Header Auth を選択し、AI-Corporate と同じヘッダー名と秘密値を使用します。
  6. Respond または Response ModeImmediately に設定します。
  7. Production URL を AI-Corporate の n8n production-url フィールドへコピーします。テスト URL の /webhook-test/ は使用しないでください。
  8. ワークフローを有効化します。

受信データは body の下に、技術的な統合データは body.integration の下にあります。Edit Fields、Set、Code ノードにはそれらを削除しないでください。

JSON ボディの例

promptklantnaamdoelgroependatum という名前でフィールドを定義すると、n8n はこの JSON ボディを受け取ります。AI-Corporate は自動的に integration オブジェクトを追加します。

{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["medewerkers", "klanten"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}

callbackToken は1回の実行に対応します。ログや固定設定、他のシステムには保存しないでください。

任意: 進行状況と完了を返す

AI-Corporate は n8n が返す情報のみを表示できます。登録時に「途中の進捗を通知」および/または「ワークフローの終了を通知」を有効にしている場合に限り、このコールバックを使用します。

以下のように各コールバックノードを設定します。

  1. Method: POST を選択

  2. URLExpression をクリックし、以下を貼り付け:

    {{ $('Start workflow').first().json.body.integration.callbackUrl }}
  3. Authentication: None を選択

  4. ヘッダーを送信するを ON にして、以下のヘッダーを追加

  5. ボディを送信するを ON にして、Body Content Type: JSONSpecify Body: Using JSON を選択

以下のヘッダーを使用:

Authorization: Bearer {{ $('Start workflow').first().json.body.integration.callbackToken }}
Content-Type: application/json

ステップ開始時など、任意のイベントで以下のようなメッセージを送信します。

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "document-maken-gestart",
"type": "progress",
"executionId": "{{ $execution.id }}",
"step": {
"id": "document_maken",
"label": "Document maken"
},
"message": "Het document wordt gemaakt."
}
  • 同じ実行内のイベントごとにユニークな eventId を使用します。
  • アプリに表示されるよう、明確なオランダ語の step.label を使用します。
  • Het einde van de workflow melden を有効にしている場合、終了時には必ず type: "completed"type: "failed"、または type: "rejected" を送信します。
  • 完了時には結果を含む output オブジェクトを追加することもできます。
  • failed の場合は分かりやすいエラーメッセージを付けてください。実行はアプリ内でも停止します。

任意: アプリでの承認リクエスト

n8n の Wait ノードを On Webhook Call で使用すると、ワークフローが選択肢の後でのみ進行する場合に有効です。Wait ノードの前にコールバックを送信します。type: "approval_required":

Wait ノードを Resume: On Webhook CallHTTP Method: POSTAuthentication: Header Auth に設定します。Start workflow と同じ Header Auth 資格情報を選択します。Wait ノードの後に Switch ノードを追加し、{{ $json.body.decision }} を確認します。

{
"tenant": "{{ $('Start workflow').first().json.body.integration.tenant }}",
"runId": "{{ $('Start workflow').first().json.body.integration.runId }}",
"eventId": "controle-document",
"type": "approval_required",
"executionId": "{{ $execution.id }}",
"step": {
"id": "controle_document",
"label": "Document controleren"
},
"approval": {
"question": "Mag de workflow doorgaan?",
"context": "Controleer eerst het gegenereerde document.",
"resumeUrl": "{{ $execution.resumeUrl }}",
"choices": [
{ "value": "approve", "label": "Goedkeuren" },
{ "value": "reject", "label": "Afwijzen" }
]
}
}

ユーザーは実行ウィンドウで選択を確認します。選択後、Wait ノードは decision などを受け取り、適切なフォローアップを判断するために例えば Switch ノードを使用します。

選択値は英字・数字・_- のみを許容します。ラベルには通常の読めるテキストを使用できます。

本番用コールバックURL の設定

AI-Corporate の本番コールバック URL は以下です。

https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowCallback

この URL をすべてのコールバックノードの固定テキストとして貼り付けないでください。HTTP Request ノードの URL フィールドで Expression を選択し、次を使用します。

{{ $('Start workflow').first().json.body.integration.callbackUrl }}

AI-Corporate は開始ごとに自動的に正しい production URL を提供します。上記の固定 URL は、テスト時に Expression が AI-Corporate を指すことを確認するためだけに使用してください。

呼び出し可能な triggerCustomN8nWorkflowtriggerN8nWorkflowresumeN8nWorkflow はアプリ自体が呼び出します。これらの URL を n8n に設定する必要はありません。

エラー処理

想定されるエラーは failed タイプのコールバックで返します。予期せぬノードエラーについては中央の Error Workflow を作成します。

  1. 新しいワークフローを作成し、Error Trigger ノードを追加

  2. 次に HTTP Request ノードを追加、Method: POST を設定

  3. URL に以下の固定 production URL を入力:

    https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Authentication: None を選択し、プラットフォーム管理者の秘密デフォルト値を持つヘッダー n8n-handihow-name を追加

  5. JSON ボディを選択し、以下を貼り付け:

{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
  1. Error Workflow を有効化
  2. 通常のワークフローの設定を開き、Error Workflow にこのワークフローを選択

Start workflow の直後に最低1回のコールバックを executionId: "{{ $execution.id }}" とともに送信します。これにより AI-Corporate は予期せぬエラーを正しい実行に結びつけることができます。

重要な制限事項

  • ウェブフック トリガーのみサポート
  • 本番用 webhook URL のみサポート
  • /webhook-test/ を含むテスト webhook URL は拒否
  • POST のみサポート
  • ジェネリック header authentication のみサポート
  • ヘッダー値はアプリケーション内で機密として扱われます
  • コールバックトークンと resume-url はサーバーサイドで処理され、ユーザーには直接利用できません
  • テナントはログイン中のユーザーに基づくサーバーサイド決定で、ブラウザから送信される値ではありません

問題の解決

  • 404 または webhook が登録されていない場合: n8n でワークフローを有効化し production URL を使用
  • 認証エラー: ヘッダー名と値が両方のシステムで正確に同じであることを確認
  • データ欠如: アプリケーションのフィールド名が n8n が期待するキーと一致しているか確認
  • n8n へリクエストがない: ワークフローが webhook トリガーから始まり POST を使用しているか確認
  • 実行ウィンドウが回り続ける場合: 「ワークフローの終了を通知」を有効にしているか、n8n が最終の completedfailedrejected コールバックを送信しているかを確認。通知が不要であれば登録時に三つのオプションをすべて無効化
  • 進捗が表示されない場合: 登録時に「途中の進行状況を通知」が有効か、integration オブジェクトが保持されているか、各コールバックに一意の eventId があるかを確認
  • 承認ボタンが動作しない場合: Wait ノード、resumeUrl、ヘッダー認証、choices[].value で許可される文字の確認を行う
WhatsApp