n8n ワークフロー
AI-Corporate は production webhook 経由で n8n ワークフローを起動できます。AI-Corporate の外部で自動化プロセスを開始したい場合、例えばタスクの作成、CRM レコードの更新、レポートフローの開始、フォームデータを別のシステムへ転送するなどの場合に便利です。
例: 企業ウェブサイトのニュース記事
組織が企業の WordPress サイトにニュース記事を公開する n8n ワークフローを作成しているとします。AI-Corporate では短い文章だけを入力します。例えば顧客事例、イベント、社内マイルストーンについての数文です。その文章を使って n8n でワークフローを開始します。
n8n のワークフローは以下のように進行できます。
- 短い文章から、組織のトーンに合うように LLM ノードとプロンプトを使って適切なドラフト文を作成します。
- 2 番目の LLM ノードで、適切なイラストを作成します。ブランドカラーと認識しやすいスタイルで。
- テキストと画像をブログ投稿用に準備するか、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 ワークフロー作成
管理者は以下の手順でワークフローを登録します。
- **Assistants(アシスタント)**へ移動
- **Workflows(ワークフロー)**を開く
- **New n8n workflow(新しい n8n ワークフロー)**を選択
- ワークフローの名前と n8n の production URL を入力
- Header authentication を header 名と秘密の header 値で設定
- Callbacks from n8n(n8n からの戻り) の下で、実際にこの n8n ワークフローで構築されている要素のみを有効化: 進行状況、承認、またはワークフローの終了
- POST リクエストで送信するフィールドを追加
- ワークフローを保存
すべての three つの戻り値オプションはデフォルトでオフです。後で n8n でコールバックや承認ステップを設定する場合、AI-Corporate での登録も更新します。ダイアログは、開始確認のみを表示するか、それ以降の信号を待機するかを認識します。
フィールド
- フィールドはオプションです。
- 各フィールドには1つのフィールド名と型があります。
- 対応可能なフィールドタイプは:短文、長文、数値、真/偽、日付、1つ選択、複数選択。
- One choice(1つ選択) と Multiple choices(複数選択) では、利用可能なオプションを追加します。1つ選択 はコンパクトな選択リストとして表示され、複数選択 はチェックボックスを表示します。選択された値は JSON ボディで送信されます。
- 必須フィールドは、ワークフローを開始する前に入力されている必要があります。
- フィールド名は n8n へ送信される JSON ボディのキーになります。
n8n での互換性のあるワークフロー作成
- n8n で新しいワークフローを作成します。
- 最初のノードとして Webhook を追加します。
- このノードに正確な名前 Start workflow を付けます。下の例 expressions もこの名前を使用します。
- HTTP Method を POST に設定します。
- Authentication: Header Auth を選択し、AI-Corporate と同じヘッダー名と秘密値を使用します。
- Respond または Response Mode を Immediately に設定します。
- Production URL を AI-Corporate の n8n production-url フィールドへコピーします。テスト URL の
/webhook-test/は使用しないでください。 - ワークフローを有効化します。
受信データは body の下に、技術的な統合データは body.integration の下にあります。Edit Fields、Set、Code ノードにはそれらを削除しないでください。
JSON ボディの例
prompt、klantnaam、doelgroepen、datum という名前でフィールドを定義すると、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 が返す情報のみを表示できます。登録時に「途中の進捗を通知」および/または「ワークフローの終了を通知」を有効にしている場合に限り、このコールバックを使用します。
以下のように各コールバックノードを設定します。
-
Method: POST を選択
-
URL で Expression をクリックし、以下を貼り付け:
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Authentication: None を選択
-
ヘッダーを送信するを ON にして、以下のヘッダーを追加
-
ボディを送信するを ON にして、Body Content Type: JSON、Specify 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 Call、HTTP Method: POST、Authentication: 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 を指すことを確認するためだけに使用してください。
呼び出し可能な triggerCustomN8nWorkflow、triggerN8nWorkflow、resumeN8nWorkflow はアプリ自体が呼び出します。これらの URL を n8n に設定する必要はありません。
エラー処理
想定されるエラーは failed タイプのコールバックで返します。予期せぬノードエラーについては中央の Error Workflow を作成します。
-
新しいワークフローを作成し、Error Trigger ノードを追加
-
次に HTTP Request ノードを追加、Method: POST を設定
-
URL に以下の固定 production URL を入力:
https://europe-west1-ai-corporate.cloudfunctions.net/n8nWorkflowExecutionFailed -
Authentication: None を選択し、プラットフォーム管理者の秘密デフォルト値を持つヘッダー
n8n-handihow-nameを追加 -
JSON ボディを選択し、以下を貼り付け:
{
"executionId": "{{ $json.execution.id }}",
"workflowId": "{{ $json.workflow.id }}",
"workflowName": "{{ $json.workflow.name }}",
"lastNode": "{{ $json.execution.lastNodeExecuted }}",
"message": "{{ $json.execution.error.message }}"
}
- Error Workflow を有効化
- 通常のワークフローの設定を開き、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 が最終の
completed、failed、rejectedコールバックを送信しているかを確認。通知が不要であれば登録時に三つのオプションをすべて無効化 - 進捗が表示されない場合: 登録時に「途中の進行状況を通知」が有効か、
integrationオブジェクトが保持されているか、各コールバックに一意のeventIdがあるかを確認 - 承認ボタンが動作しない場合: Wait ノード、
resumeUrl、ヘッダー認証、choices[].valueで許可される文字の確認を行う