n8n のワークフローが失敗したときに、Slack へ自動で通知する仕組みを作る手順です。n8n の Error Trigger ノードで「エラーワークフロー」を1本作り、監視したいワークフローの設定からそれを指定します。1本のエラーワークフローを複数のワークフローで使い回せるので、作るのは最初の1回だけです。n8n Cloud とセルフホストのどちらでも同じ手順で設定できます(2026年11月時点の公式ドキュメントに基づきます)。
全体の構成
エラーワークフローは次の3ノードで作ります。
- Error Trigger: 紐づけたワークフローの実行が失敗したときに起動する
- Code: 受け取ったエラー情報から Slack に送る文面を組み立てる
- Slack(Message > Send): 通知用のチャンネルに送る
監視したい側のワークフローでは、Settings の Error workflow にこのワークフローを指定するだけです。
エラーワークフローを作る
1. Error Trigger を置く
- 新しいワークフローを作り、最初のノードに Error Trigger を置きます
- ワークフロー名を
Error Handlerなど分かりやすい名前にします - Save で保存します
Error Trigger を使うワークフローは、公開(アクティブ化)しなくても動きます。
2. Code ノードで通知文を組み立てる
Error Trigger の後ろに Code ノードを置き、次のコードを貼ります。
const execution = $input.first().json.execution;
const workflow = $input.first().json.workflow;
const errorMessage = execution?.error?.message || 'Unknown error';
const executionUrl = execution?.url || '';
const lastNode = execution?.lastNodeExecuted || '';
const workflowName = workflow?.name || 'Unknown workflow';
const text = `:rotating_light: *n8n Workflow Error*\n\n` +
`*Workflow:* ${workflowName}\n` +
(lastNode ? `*Node:* ${lastNode}\n` : '') +
`*Error:* ${errorMessage}\n` +
(executionUrl ? `*Execution:* <${executionUrl}|View in n8n>\n` : '');
return [{ json: { text } }];
Error Trigger が受け取るデータは次の形です(公式ドキュメントの例)。
[
{
"execution": {
"id": "231",
"url": "https://n8n.example.com/execution/231",
"retryOf": "34",
"error": {
"message": "Example Error Message",
"stack": "Stacktrace"
},
"lastNodeExecuted": "Node With Error",
"mode": "manual"
},
"workflow": {
"id": "1",
"name": "Example Workflow"
}
}
]
execution.id と execution.url は、実行がデータベースに保存されているときだけ入ります。execution.retryOf は再実行のときだけ入ります。上のコードで ?. と既定値を使っているのは、これらが欠けても通知自体は送れるようにするためです。
3. Slack ノードで送る
- Code ノードの後ろに Slack ノードを置き、Resource を
Message、Operation をSendにします - Credential に Slack の認証情報を指定します。n8n が推奨しているのは OAuth2 です(n8n Cloud なら Connect my account から接続できます)
- 送り先は Channel を選び、通知用のチャンネルを指定します
- 送る本文の欄に式で
{{ $json.text }}を入れます - ワークフローを Save します
Slack アプリをボットとして使う場合は、通知先のチャンネルにそのアプリを招待しておきます。
監視したいワークフローに紐づける
エラーを通知したいワークフローごとに、次の設定をします。
- 対象のワークフローを開き、Options(︙)> Settings を選びます
- Error workflow で、さきほど作った
Error Handlerを選びます - Save で保存します
これで、このワークフローの実行が失敗すると Error Handler が起動し、Slack に通知が届きます。同じ Error Handler を何本のワークフローに指定してもかまいません。
なお、Error Trigger を含むワークフローは、既定で自分自身をエラーワークフローとして使います。
動作を確認する
Error Trigger は、ワークフローをエディタから手動で実行したときの失敗では起動しません。自動実行(スケジュールや Webhook などのトリガー)で失敗したときだけ起動します。そのため、確認用のワークフローを1本作って自動で失敗させます。
- 新しいワークフローに Schedule Trigger(毎分)を置きます
- その後ろに Stop and Error ノードを置き、Error Type を
Error Message、Error Message にtest error from n8nと入れます - Settings の Error workflow に
Error Handlerを指定して保存し、ワークフローを公開(アクティブ化)します - 1分ほど待つと、Slack に次のような通知が届きます
:rotating_light: n8n Workflow Error
Workflow: Error Test
Node: Stop and Error
Error: test error from n8n
Execution: View in n8n
確認できたら、確認用のワークフローは無効にしておきます。毎分失敗し続けて通知が止まらなくなるためです。
Stop and Error ノードは確認用だけでなく、本番のワークフローで「この条件のときは失敗扱いにしてエラーワークフローへ回す」ときにも使えます。
うまくいかないとき
手動実行で失敗させても通知が来ない
仕様です。Error Trigger は自動実行の失敗でしか起動しません。上の「動作を確認する」のとおり、トリガー付きのワークフローを公開して自動で失敗させてください。
通知に Execution のリンクが出ない
execution.url は実行がデータベースに保存されたときだけ入ります。また、メインのワークフローのトリガーノード自体で失敗した場合はワークフローが実行されないため、execution.id と execution.url が入りません。このときのデータは execution ではなく trigger 側に情報が入る、次の形になります。
{
"trigger": {
"error": {
"context": {},
"name": "WorkflowActivationError",
"cause": {
"message": "",
"stack": ""
},
"timestamp": 1654609328787,
"message": "",
"node": {}
},
"mode": "trigger"
},
"workflow": {
"id": "",
"name": ""
}
}
トリガーの失敗も通知したい場合は、Code ノードのエラーメッセージを次のように取り直します。
const data = $input.first().json;
const errorMessage =
data.execution?.error?.message ||
data.trigger?.error?.message ||
'Unknown error';
Slack ノードが not_in_channel で失敗する
Slack の chat.postMessage は、送信元がそのチャンネルのメンバーでないと次のエラーを返します。
not_in_channel
通知先のチャンネルで Slack アプリ(ボット)を招待してから、もう一度試してください。
Slack ノードが channel_not_found や missing_scope で失敗する
channel_not_found
チャンネルの指定が正しくありません。チャンネル名ではなくチャンネル ID で指定すると取り違えを防げます。
missing_scope
Slack アプリのトークンに、メッセージ送信に必要なスコープが付いていません。Slack の OAuth & Permissions でスコープを追加し、アプリをワークスペースに再インストールしてから、n8n の認証情報をつなぎ直してください。
Error workflow の選択肢に作ったワークフローが出ない
エラーワークフローを保存していないと選択肢に出ません。Error Handler 側を Save してから、監視したいワークフローの Settings を開き直してください。


コメント