✔ Error Trigger(全局异常捕获)------n8n 错误自动告警与容错体系实战(含 Demo JSON + 测试数据)
在真实的自动化系统中,"报错不是问题,报错后没人知道才是致命问题"。
你是否遇到过这些情况:
-
工作流悄悄失败,你几天后才发现
-
接口报错,客户投诉才知道
-
AI 调用失败,但流程还在"假装成功"
-
定时任务失败却毫无提醒
👉 这些问题,全部由 Error Trigger 节点专门解决。
✅ 一、什么是 Error Trigger 节点?
Error Trigger 是 n8n 中专门用于"捕获其他工作流运行错误"的全局监听节点。
一句话理解:
✅ 只要任何一个 Workflow 报错,它就会被自动触发
你可以把它理解为:
| 概念 | 现实类比 |
|---|---|
| 普通节点 | 正常业务执行 |
| Error Trigger | 全局异常监听器 |
| Execute Workflow | 函数调用 |
| Error Trigger + 子流程 | 全系统异常中枢 |
⚠️ 重点注意:
-
它 不是接在主流程里的
-
它是一个 "独立存在的错误监听 Workflow"
✅ 二、最典型的 6 大实战场景(必用)
✅ 场景 1:AI 调用失败→自动告警
-
GPT 超时
-
Token 不够
-
Key 失效
👉 触发 Error Trigger → 企业微信报警
✅ 场景 2:HTTP 接口报错→自动记录日志
-
500 错误
-
超时
-
鉴权失败
👉 自动传入数据库 or 飞书表格
✅ 场景 3:定时任务失败→实时通知你
Cron + Error Trigger = 无人值守自动化
✅ 场景 4:子流程执行失败→统一拦截
Execute Workflow + Error Trigger = 企业级容错架构
✅ 场景 5:自动重试 & 回滚补偿
-
报错 → 等 10 秒 → 重试
-
3 次失败 → 再报警
✅ 场景 6:自动生成"错误日报"
-
每天统计异常次数
-
形成运维报表
✅ 三、Error Trigger 核心参数说明
✅ Error Trigger 本身 几乎没有参数
它只负责 接收系统自动注入的错误数据,包括:
| 字段 | 含义 |
|---|---|
| execution.id | 报错执行 ID |
| workflow.id | 报错的 Workflow |
| error.message | 报错信息 |
| error.stack | 错误堆栈 |
| node.name | 报错节点 |
| timestamp | 报错时间 |
✅ 这些内容全部可以直接用于:
-
告警
-
记录
-
分析
-
追责
✅ 四、完整实战案例目标
🎯 我们实现:
任意工作流出错 → 自动触发 → 发送告警信息
✅ 五、测试数据(由报错自动生成)
Error Trigger 不使用 Set 节点制造数据
测试方式是:
👉 让某个工作流"故意报错"
例如:
| 节点 | 设置 |
|---|---|
| HTTP Request | 访问一个不存在的 URL |
| Code Node | throw new Error("模拟异常") |
系统就会自动把错误数据送进 Error Trigger。
✅ 六、完整流程结构(错误告警子流程)
Error Trigger
↓
Set(整理错误信息)
↓
HTTP Request(发送飞书/企业微信告警)
✅ 七、✅ 可直接导入 Demo JSON(错误告警流程)
你可以直接复制 → n8n → Import 导入使用:
{
"nodes": [
{
"parameters": {},
"name": "Error Trigger",
"type": "n8n-nodes-base.errorTrigger",
"typeVersion": 1,
"position": [
300,
300
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "workflow",
"value": "={{$json.workflow?.name}}"
},
{
"name": "node",
"value": "={{$json.node?.name}}"
},
{
"name": "message",
"value": "={{$json.error?.message}}"
}
]
}
},
"name": "Format Error Info",
"type": "n8n-nodes-base.set",
"typeVersion": 2,
"position": [
550,
300
]
}
],
"connections": {
"Error Trigger": {
"main": [
[
{
"node": "Format Error Info",
"type": "main",
"index": 0
}
]
]
}
}
}
✅ 你可以在后面再接:
-
HTTP Request(发送飞书)
-
企业微信
-
Notion
-
Google Sheet
-
数据库
✅ 八、Error Trigger 最佳实践(强烈建议)
✅ 1️⃣ 所有系统必须上 Error Trigger
✅ 2️⃣ 告警信息必须包含:
-
Workflow 名称
-
报错节点
-
报错信息
-
报错时间
✅ 3️⃣ 告警通道至少两个(如:飞书 + 邮件)
✅ 4️⃣ 子流程异常一定要联动 Error Trigger
✅ 5️⃣ 高频错误要单独做"重试机制"
✅ 九、最容易踩的 6 个大坑
❌ 坑 1:Error Trigger 放在主流程里
✅ 它必须是独立 Workflow
❌ 坑 2:以为它只能监听当前工作流
✅ 它是全局监听
❌ 坑 3:忘记保存并激活
✅ 不激活 = 不生效
❌ 坑 4:子流程报错但没被捕获
✅ 因为关闭了 Wait for Completion
❌ 坑 5:错误信息没格式化就直接发送
✅ 收到乱码很难排查
❌ 坑 6:没有做告警 → 一年都不知道系统在崩
✅ 十、总结一句话(你博客的金句)
Error Trigger 不是锦上添花,而是所有自动化系统的"安全气囊"。
没有 Error Trigger 的自动化:
-
是"不可控的"
-
是"盲跑的"
-
是"迟早出大问题的"