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

n8n ワークフロー

AI-Corporate は、本番用 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 ワークフローを開始します。必須なのは本番用 webhook、POST、Header Auth のみです。n8n からのフィールドとコールバックは任意で、個別に設定できます。

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

AI-Corporate で n8n ワークフローを作成する​

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

  1. アシスタント に移動します。
  2. ワークフローアシスタント タブを開きます。
  3. 上部のカードで 新しいワークフロー をクリックし、n8n ワークフロー を選択します。
  4. ワークフロー名と n8n の本番 URL を入力します。
  5. Header authentication に header name と secret header value を設定します。
  6. n8n からのコールバック で、この n8n ワークフローに実際に実装されている項目だけを選択します: 進捗、承認、ワークフロー終了。
  7. 必要に応じて、POST リクエストで送信するフィールドを追加します。
  8. ワークフローを保存します。

3つのコールバックオプションは、初期状態ではすべてオフです。後で n8n にコールバックや承認ステップを追加した場合は、AI-Corporate の登録内容も更新してください。これによりダイアログは、開始確認だけを表示すべきか、それとも追加のシグナルを待つべきかを判断できます。

フィールド​

  • フィールドは任意です。
  • 各フィールドには 1 つのフィールド名と 1 つの型があります。
  • 対応するフィールド型は、短いテキスト、長いテキスト、数値、はい/いいえ、日付、単一選択、複数選択です。
  • 単一選択 と 複数選択 では、利用可能なオプションを追加します。単一選択 はコンパクトな選択リストとして表示され、複数選択 はチェックボックスとして表示されます。選択された値は JSON body に送信されます。
  • 必須フィールドは、ワークフローを開始する前に入力されている必要があります。
  • フィールド名は、n8n に送信される JSON body の key になります。

n8n で互換ワークフローを作成する​

  1. n8n で新しいワークフローを作成します。
  2. 最初の node として Webhook を追加します。
  3. この node の名前を正確に Start workflow にします。以下の例の expression はこの名前を使用します。
  4. HTTP Method を POST に設定します。
  5. Authentication: Header Auth を選び、AI-Corporate と同じ header name と secret value を使用します。
  6. Respond または Response Mode を Immediately に設定します。
  7. Production URL を AI-Corporate の n8n productie-url フィールドにコピーします。/webhook-test/ を含む test-url は使用しないでください。
  8. ワークフローをアクティブ化します。

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

JSON body の例​

prompt、klantnaam、doelgroepen、datum という名前でフィールドを定義すると、n8n はたとえば次の JSON body を受け取ります。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 が返送した内容のみを表示できます。これらの callback は、登録時に Tussentijdse voortgang melden および/または Het einde van de workflow melden を有効にした場合にのみ使用してください。

各 callback node は次のように設定します。

  1. Method: POST を選びます。

  2. URL の Expression をクリックし、以下を貼り付けます。

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

  4. Send Headers をオンにし、以下の header を追加します。

  5. Send Body をオンにし、Body Content Type: JSON と Specify Body: Using JSON を選びます。

以下の header を使用します。

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" を送信します。
  • completed では、必要に応じて結果を含む output オブジェクトを追加します。
  • failed では、わかりやすいエラーメッセージを送信します。これにより実行もアプリ内で停止します。

任意: アプリで承認を求める​

ワークフローが選択の後でのみ進むべき場合は、n8n の Wait node を On Webhook Call とともに使用します。Wait node の前に type: "approval_required" の callback を送信します。

Wait node は Resume: On Webhook Call、HTTP Method: POST、Authentication: Header Auth に設定します。Start workflow と同じ Header Auth credential を選択します。Wait node の後に Switch node を追加し、そこで {{ $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 node は decision などを受け取ります。その後、たとえば Switch node で正しい分岐を決定します。

選択値には英字、数字、_、- のみ使用できます。label には通常の読みやすいテキストを含められます。

本番 callback-url の設定​

AI-Corporate の本番 callback-url は次のとおりです。

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

この URL を各 callback node に固定文字列として貼り付けないでください。HTTP Request node の URL フィールドでは Expression を選び、以下を使用します。

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

これにより AI-Corporate は、開始のたびに自動的に正しい本番 URL を提供します。上記の固定 URL は、テスト中に expression が AI-Corporate を指しているか、AI-School や AI-Public を指していないかを確認するために使用します。

triggerCustomN8nWorkflow、triggerN8nWorkflow、resumeN8nWorkflow という callables は、アプリ自体によって呼び出されます。これらの URL を n8n で設定する必要はありません。

エラー処理​

想定されるエラーは failed タイプの callback で返します。さらに、予期しない node エラー用に中央の Error Workflow を作成します。

  1. Error Trigger node を持つ新しいワークフローを作成します。

  2. その後に HTTP Request node を追加し、Method: POST にします。

  3. URL に次の本番 URL を入力します。

    https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed
  4. Authentication: None を選び、n8n-handihow-name header をプラットフォーム管理者の秘密のデフォルト値で追加します。

  5. JSON body を選び、以下を貼り付けます。

{
"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 }}" を含む callback を送信します。これによってのみ、AI-Corporate は予期しないエラーを正しい実行に関連付けられます。

重要な制限​

  • サポートされるのは webhook trigger のみです。
  • サポートされるのは本番 webhook URL のみです。
  • /webhook-test/ を含む test-webhook URL は拒否されます。
  • サポートされるのは POST のみです。
  • サポートされるのは generic header authentication のみです。
  • header value はアプリケーション内で秘密として扱われます。
  • callbackToken と resume URL はサーバー側でのみ処理され、ユーザーから直接利用することはできません。
  • tenant は、ブラウザが送信する値ではなく、ログイン中のユーザーからサーバー側で決定されます。

問題の解決​

  • 404 または webhook が登録されない: n8n でワークフローをアクティブ化し、本番 URL を使用してください。
  • 認証エラー: 両方のシステムで header name と value が完全に一致しているか確認してください。
  • データ不足: アプリケーションの field 名が n8n の期待する key と一致しているか確認してください。
  • n8n に request が届かない: ワークフローが webhook trigger で始まり、POST を使用しているか確認してください。
  • 実行ウィンドウが回り続ける: Het einde van de workflow melden を有効にしている場合、n8n が最後の completed、failed、または rejected callback を送信しているか確認してください。コールバックが不要なら、登録時の 3 つのオプションをすべてオフにしてください。
  • 進捗が表示されない: Tussentijdse voortgang melden が登録時に有効か、integration オブジェクトが保持されているか、各 callback に一意の eventId があるか確認してください。
  • 承認ボタンが動作しない: Wait node、resumeUrl、header authentication、choices[].value に許可された文字を確認してください。