n8n ワークフロー
AI-Public は製造用ウェ webhook を介して n8n ワークフローを起動できます。AI-Public の外部で自動化プロセスを開始したい場合に便利です。例えばタスクの作成、CRM レコードの更新、レポート フローの起動、フォームデータを別のシステムへ送信する場合などです。
例: 組織ウェブサイトのニュース記事
組織がニュース記事を WordPress ウェブサイトに公開する n8n ワークフローを作成しているとします。AI-Public には、会合・プロジェクト・公開告知などについての短い文章だけを入力します。その文章を使って n8n でワークフローを開始します。
n8n のワークフローは次のように進行できます。
- 短い文章を LLM ノードと、組織のトーンに合うプロンプトを使って適切な概説文にする。
- 2つ目の LLM ノードで適切な挿絵を作成する。例えばブランドカラーで、認識しやすいイラスト風に。
- 文章と画像をブログ投稿として準備または WordPress ウェブサイトに公開する。
このように、AI-Public と n8n は連携します。AI-Public ではユーザーがワークフローを選択し、必要な情報を入力します。n8n が自動化ステップを実行し、ニュース記事がウェブサイトにきちんと表示されるようにします。
この統合の機能
ワークフローの概要から n8n ワークフローを起動します。製造用 webhook、POST、Header Auth のみが必須です。n8n からの入力フィールドと戻り値は任意で、独立して設定できます。
- ワークフローにフィールドがない場合、 webhook はすぐに呼び出されます。
- ワークフローにフィールドがある場合、最初にフォームが開き、ユーザーがフィールドを入力して「送信」ボタンでワークフローを開始します。
- 入力値はPOSTリクエストの JSON ボディとして n8n の webhook に送信されます。
- 戻り値がない場合、AI-Public はワークフローが開始され n8n で進行中であることだけを通知します。ウィンドウにはスピナーは表示されず、すぐに閉じることができます。
- 登録時に中間ステップや終了を AI-Public に返す設定を有効にしている場合、ワークフローは途中経過を返すことがあります。
- 登録時に承認を有効にしている場合、ユーザーは AI-Public で直接選択を行えます。その後 n8n は待機中のステップから続行します。
AI-Public での n8n ワークフロー作成
管理者は以下の手順でワークフローを登録します。
- Assistants(アシスタント) に移動。
- Workflows(ワークフロー)を開く。
- New n8n workflow(新しい n8n ワークフロー) を選択。
- ワークフローの名前と n8n 製造用 URL を入力。
- Header authentication をヘッダー名と秘密値で設定。
- Return messages from n8n の下で、この n8n ワークフローで実際に構築されている要素のみをチェックします: 進行状況、承認、/またはワークフローの終了。
- POST リクエストで送信するフィールドを追加します。
- ワークフローを保存。
3つの戻り値オプションはデフォルトでオフです。後で n8n にコールバックや承認ステップを設定する場合は、AI-Public の登録情報も更新します。ダイアログは開始通知のみを表示するか、追加のシグナルを待ち続けるかを知ることができます。
フィールド
- フィールドは任意です。
- 各フィールドには1つのフィールド名と型があります。
- サポートされているフィールド型は、短いテキスト、長いテキスト、数値、はい/いいえ、日付、1つの選択、複数選択です。
- 「1つの選択」と「複数選択」では、利用可能なオプションを追加します。「1つの選択」はコンパクトなラジオボタンとして表示され、「複数選択」はチェックボックスを表示します。選択された値は JSON ボディで送信されます。
- 必須フィールドは、ワークフローを開始する前に入力されている必要があります。
- フィールド名は n8n に送信される JSON ボディのキーになります。
n8n での互換性のあるワークフロー作成
- n8n で新しいワークフローを作成します。
- 最初のノードとして Webhook を追加します。
- このノードの名前を正確に Start workflow とします。以下のサンプル式はこの名前を前提としています。
- HTTP Method を POST に設定します。
- Authentication: Header Auth を選択し、AI-Public のものと同じヘッダ名と値を使用します。
- Respond もしくは Response Mode を Immediately に設定します。
- Production URL をコピーして AI-Public のフィールド n8n production-url に貼り付けます。テスト URL は使用しないでください /webhook-test/ は使わないでください。
- ワークフローを有効化します。
受信データは body の下に、技術的な統合データは body.integration の下にあります。編集フィールド、設定、またはコードノードでこれらを削除しないでください。
JSON ボディの例
prompt、klantnaam、doelgroepen、datum という名前のフィールドを定義すると、n8n はこのような JSON ボディを受け取ります。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"
}
}
コールバックトークンは一回の実行に対するものです。ログや固定設定、他のシステムには保存しないでください。
オプション: 進行状況と完了の返送
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 クレデンシャルを選択します。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-Public の本番コールバック 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 を指していないことを確認する目的でのみ使用します。
callables triggerCustomN8nWorkflow、triggerN8nWorkflow、resumeN8nWorkflow はアプリ自体が呼び出します。これらの URL を n8n 側で設定する必要はありません。
エラー処理
想定されるエラーは failed タイプのコールバックで返します。予期せぬノードエラーには中央のエラーワークフローを作成して対処します。
-
新しいワークフローを作成し、Error Trigger ノードを追加。
-
次に HTTP Request ノードを追加し、Method: POST。
-
URL に次の固定本番 URL を設定。
https://europe-west1-ai-public-pro.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 にこのワークフローを指定。
「Start workflow」直後に少なくとも1つのコールバックを送信します。これがないと AI-Public は発生したエラーを正しい実行に紐づけられません。
重要な制約
- ウェブフック トリガーのみサポート。
- 製造用 webhook URL のみサポート。
/webhook-test/を含むテスト webhook URL は拒否されます。- POST のみサポート。
- ジェネリックヘッダ認証のみサポート。
- ヘッダの値はアプリケーション内で秘密として扱われます。
- コールバックトークンと resume URL はサーバーサイドでのみ処理され、ユーザーには直接利用できません。
- テナントはログイン中のユーザーからサーバーサイドで決定され、ブラウザから送信される値に依存しません。
トラブルシューティング
- 404 または webhook 未登録:n8n でワークフローを有効化し、製造用 URL を使用してください。
- 認証エラー:ヘッダ名と値が両方のシステムで正確に一致しているかを確認してください。
- データ不足:アプリケーションのフィールド名が n8n が期待するキーと一致しているかを確認してください。
- n8n でのリクエストがない:Webhook トリガーで開始され、POST が使用されているかを確認してください。
- 実行ウィンドウが回り続ける:
Het einde van de workflow meldenを有効にしている場合、n8n が最後のcompleted、failed、rejectedのコールバックを送るかを確認してください。戻り値がない場合は登録時の3つのオプションをすべてオフにします。 - 進行状況が表示されない:登録時の「中間経過の通知」が有効か、
integrationオブジェクトが保持されているか、各コールバックに一意のeventIdがあるかを確認してください。 - 承認ボタンが機能しない:Wait ノード、
resumeUrl、ヘッダ認証、choices[].valueの許容文字を確認してください。