n8nワークフロー
AI-Public は本番用ウェブフックを通じて n8n ワークフローを開始できます。これは、AI-Public の外部で自動化プロセスを開始したい場合に便利です。たとえば、タスクの作成、CRM レコードの更新、レポートフローの開始、フォームデータの別システムへの連携などに使えます。
例: 組織のウェブサイトにニュース記事を掲載する
たとえば、組織が WordPress ウェブサイトにニュース記事を公開する n8n ワークフローを作成しているとします。AI-Public では、会議、プロジェクト、または公開告知についての数文など、短いテキストだけを入力します。そのテキストで n8n のワークフローを開始します。
その後、n8n ワークフローはたとえば次のように動作します。
- LLM ノードと、組織のトーンに合うプロンプトを使って、短いテキストを整った下書きにする。
- 2つ目の LLM ノードで、たとえば組織のブランドカラーや分かりやすいイラスト風スタイルで、適切なイラストを作成する。
- テキストと画像をブログ記事として WordPress ウェブサイトに下書き保存または公開する。
このように AI-Public と n8n は連携します。AI-Public ではユーザーがワークフローを選び、必要な情報を入力します。n8n はその後、自動化された手順を実行し、ニュース記事を適切にウェブサイトへ反映します。
この統合は何をするのか?
ワークフロー一覧から n8n ワークフローを開始します。必須なのは本番用ウェブフック、POST、Header Auth のみです。n8n からのフィールドや戻り通知は任意で、互いに独立して設定できます。
- ワークフローにフィールドがない場合、ウェブフックはすぐに呼び出されます。
- ワークフローにフィールドがある場合、最初にフォームが開きます。ユーザーがフィールドを入力し、その後ボタンでワークフローを開始します。
- 入力された値は JSON として POST リクエストで n8n のウェブフックに送信されます。
- 戻り通知がない場合、AI-Public はワークフローが開始され、n8n で実行中であることだけを確認します。ウィンドウにはスピナーは表示されず、すぐに閉じられます。
- 登録時に有効化していれば、ワークフローは途中のステップや終了を AI-Public に返送できます。
- 登録時に承認を有効化していれば、ユーザーは AI-Public 上で直接選択できます。その後 n8n は待機ステップから続行します。
AI-Public で n8n ワークフローを作成する
管理者は次のようにワークフローを登録します。
- アシスタント に移動します。
- ワークフローアシスタント タブを開きます。
- 上部のカードで 新しいワークフロー をクリックし、n8n ワークフロー を選択します。
- ワークフロー名と n8n 本番 URL を入力します。
- ヘッダー名と秘密のヘッダー値で Header authentication を設定します。
- n8n からの戻り通知 では、この n8n ワークフローで実際に構築されている項目だけにチェックを入れます: 進捗、承認、またはワークフロー終了。
- POST リクエストで送信したいフィールドを必要に応じて追加します。
- ワークフローを保存します。
3 つの戻り通知オプションはすべてデフォルトでオフです。後から n8n にコールバックや承認ステップを追加した場合は、AI-Public 側の登録も更新してください。これによりダイアログは、開始確認だけを表示すべきか、追加のシグナルを待ち続けるべきかを判断できます。
フィールド
- フィールドは任意です。
- 各フィールドには 1 つのフィールド名と 1 つの型があります。
- 対応するフィールド型は、短いテキスト、長いテキスト、数値、はい/いいえ、日付、単一選択、複数選択です。
- 単一選択 と 複数選択 では、利用可能な選択肢を追加します。単一選択 はコンパクトな選択リストとして表示され、複数選択 はチェックボックスとして表示されます。選択された値は JSON body に送信されます。
- 必須フィールドは、ワークフローを開始する前に入力されている必要があります。
- フィールド名は、n8n に送信される JSON body のキーになります。
n8n で互換ワークフローを作成する
- n8n で新しいワークフローを作成します。
- 最初のノードとして Webhook を追加します。
- このノード名を正確に Start workflow にします。以下のサンプル式はこの名前を使用しています。
- HTTP Method を POST に設定します。
- Authentication: Header Auth を選び、AI-Public と同じヘッダー名と秘密値を使用します。
- Respond または Response Mode を Immediately に設定します。
- Production URL を AI-Public の n8n 本番 URL フィールドにコピーします。
/webhook-test/を含むテスト URL は使用しないでください。 - ワークフローをアクティブ化します。
受信データは body の下にあり、技術的な統合情報は body.integration の下にあります。Edit Fields、Set、または Code ノードでそれを削除しないでください。
JSON body の例
prompt、klantnaam、doelgroepen、datum という名前でフィールドを定義すると、n8n はたとえば次の JSON body を受け取ります。AI-Public は integration オブジェクトを自動的に追加します。
{
"prompt": "Maak een korte samenvatting van de aanvraag.",
"klantnaam": "Voorbeeldorganisatie",
"doelgroepen": ["inwoners", "medewerkers"],
"datum": "2026-09-22",
"integration": {
"runId": "chat-document-id",
"tenant": "default",
"callbackUrl": "https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback",
"callbackToken": "tijdelijk-token-voor-deze-uitvoering"
}
}
callbackToken は 1 回の実行に対応します。ログ、固定設定、その他のシステムに保存しないでください。
任意: 進捗と完了を返送する
AI-Public は、n8n が返送した内容だけを表示できます。これらのコールバックは、登録時に 中間進捗を報告 および/または ワークフロー終了を報告 を有効にしている場合のみ使用してください。
各コールバックノードは次のように設定します。
-
Method: POST を選択します。
-
URL で Expression をクリックし、次を貼り付けます。
{{ $('Start workflow').first().json.body.integration.callbackUrl }} -
Authentication: None を選択します。
-
Send Headers をオンにし、以下のヘッダーを追加します。
-
Send Body をオンにし、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を使用します。このテキストはアプリに表示されます。 - ワークフロー終了を報告 を有効にしている場合、最後には必ず
type: "completed"、type: "failed"、またはtype: "rejected"を送信します。 completedには、必要に応じて結果を含む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 credential を選択します。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 ノードを使って適切な分岐を決定します。
選択値には文字、数字、_、- のみ使用できます。ラベルには通常の読みやすいテキストを使用できます。
本番用 callback-url を設定する
AI-Public の本番用 callback-url は次のとおりです。
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowCallback
この URL を各コールバックノードに固定テキストとして貼り付けないでください。HTTP Request ノードの URL フィールドで Expression を選び、次を使用します。
{{ $('Start workflow').first().json.body.integration.callbackUrl }}
これにより AI-Public は、開始のたびに自動的に正しい本番 URL を提供します。上記の固定 URL は、テスト中にその式が AI-Public を指しているかどうか、AI-School や AI-Corporate を指していないかを確認するために使用します。
triggerCustomN8nWorkflow、triggerN8nWorkflow、resumeN8nWorkflow の callables は、アプリ自体から呼び出されます。これらの URL を n8n で設定する必要はありません。
エラー処理
想定されるエラーは、failed タイプのコールバックで返します。さらに、予期しないノードエラー用に中央の Error Workflow を作成します。
-
Error Trigger ノードを持つ新しいワークフローを作成します。
-
その後に Method: POST の HTTP Request ノードを追加します。
-
URL に次の本番用固定 URL を入力します。
https://europe-west1-ai-public-pro.cloudfunctions.net/n8nWorkflowExecutionFailed -
Authentication: None を選び、ヘッダー
n8n-handihow-nameをプラットフォーム管理者の秘密の標準値で追加します。 -
JSON body を選び、次を貼り付けます。
{
"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-Public は予期しないエラーを正しい実行に関連付けられます。
重要な制限
- サポートされるのはウェブフックトリガーのみです。
- サポートされるのは本番用ウェブフック URL のみです。
/webhook-test/を含むテスト用ウェブフック URL は拒否されます。- サポートされるのは POST のみです。
- サポートされるのは generic header authentication のみです。
- ヘッダー値はアプリケーション内で秘密として扱われます。
- callbackToken と resume-url はサーバー側のみで処理され、ユーザーには直接表示されません。
- tenant は、ブラウザから送られる値ではなく、ログイン中ユーザーに基づいてサーバー側で決定されます。
トラブルシューティング
- 404 またはウェブフック未登録: n8n でワークフローをアクティブ化し、本番 URL を使用してください。
- 認証エラー: 2 つのシステムで header name と value が完全に一致しているか確認してください。
- データ不足: アプリのフィールド名が n8n で期待される key と一致しているか確認してください。
- n8n にリクエストが来ない: ワークフローが webhook trigger で始まり、POST を使用しているか確認してください。
- 実行ウィンドウが回り続ける: ワークフロー終了を報告 を有効にしている場合、n8n が最後に
completed、failed、またはrejectedのコールバックを送信しているか確認してください。戻り通知を期待しない場合は、登録時の 3 つのオプションをすべてオフにします。 - 進捗が表示されない: 登録で 中間進捗を報告 が有効か、
integrationオブジェクトが保持されているか、各コールバックに固有のeventIdがあるかを確認してください。 - 承認ボタンが動作しない: Wait ノード、
resumeUrl、header authentication、およびchoices[].valueの使用可能文字を確認してください。