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

n8nワークフロー

AI-Public は本番用ウェブフックを通じて n8n ワークフローを開始できます。これは、AI-Public の外部で自動化プロセスを開始したい場合に便利です。たとえば、タスクの作成、CRM レコードの更新、レポートフローの開始、フォームデータの別システムへの連携などに使えます。

例: 組織のウェブサイトにニュース記事を掲載する​

たとえば、組織が WordPress ウェブサイトにニュース記事を公開する n8n ワークフローを作成しているとします。AI-Public では、会議、プロジェクト、または公開告知についての数文など、短いテキストだけを入力します。そのテキストで n8n のワークフローを開始します。

その後、n8n ワークフローはたとえば次のように動作します。

  1. LLM ノードと、組織のトーンに合うプロンプトを使って、短いテキストを整った下書きにする。
  2. 2つ目の LLM ノードで、たとえば組織のブランドカラーや分かりやすいイラスト風スタイルで、適切なイラストを作成する。
  3. テキストと画像をブログ記事として 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 ワークフローを作成する​

管理者は次のようにワークフローを登録します。

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

3 つの戻り通知オプションはすべてデフォルトでオフです。後から n8n にコールバックや承認ステップを追加した場合は、AI-Public 側の登録も更新してください。これによりダイアログは、開始確認だけを表示すべきか、追加のシグナルを待ち続けるべきかを判断できます。

フィールド​

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

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

  1. n8n で新しいワークフローを作成します。
  2. 最初のノードとして Webhook を追加します。
  3. このノード名を正確に Start workflow にします。以下のサンプル式はこの名前を使用しています。
  4. HTTP Method を POST に設定します。
  5. Authentication: Header Auth を選び、AI-Public と同じヘッダー名と秘密値を使用します。
  6. Respond または Response Mode を Immediately に設定します。
  7. Production URL を AI-Public の n8n 本番 URL フィールドにコピーします。/webhook-test/ を含むテスト URL は使用しないでください。
  8. ワークフローをアクティブ化します。

受信データは 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 が返送した内容だけを表示できます。これらのコールバックは、登録時に 中間進捗を報告 および/または ワークフロー終了を報告 を有効にしている場合のみ使用してください。

各コールバックノードは次のように設定します。

  1. Method: POST を選択します。

  2. URL で Expression をクリックし、次を貼り付けます。

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

  4. Send Headers をオンにし、以下のヘッダーを追加します。

  5. 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 を作成します。

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

  2. その後に Method: POST の HTTP Request ノードを追加します。

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

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

  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 }}" のコールバックを送信します。そうして初めて、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 の使用可能文字を確認してください。