AI PLAY玩法更新持续收录
← 回到更新流

2026-10-06 · 原文发布日

给n8n工作流装一个带面板的集中错误管家

这个免费n8n模板把n8n变成集中式错误处理中心:先手动跑一次创建配置、错误指纹和事故历史三张Data Table,再通过webhook提供设置页和连接页,可批量把本流程挂为其他工作流的错误处理流。被监控流程出错后,它会规范化错误信息、识别重复错误、按配置做严重度升级与退避,可选用Gemini生成诊断摘要和重试建议,经Gmail(或Slack/Telegram/Discord/Teams)告警,并提供一键重试、静音链接和每日清理。

原文要点

原模板把n8n做成集中错误管家:手动触发一次创建geh_config、geh_fingerprints、geh_incidents三张Data Table并补默认配置;/geh-config渲染设置页,POST校验保存;/geh-assign用n8n API列出流程并批量挂接错误流;被监控流程失败后规范化错误、算指纹、查静音、按配置升级严重度和退避,可让Gemini输出JSON诊断,经Gmail及可选Slack/Telegram/Discord/Teams/webhook告警;/geh-activity、/geh-guide和重试/静音链接依赖n8n API,另有每日清理。设置明确要n8n API与Gmail凭证,并提醒公开webhook要加Basic Auth或反向代理登录。

这次做成什么

练习目标不是复制原文件,而是先自建一个隔离的“错误中心最小闭环”:一次初始化建表→设置页改配置→挂接一个会故意失败的测试流程→接收失败→生成指纹→告警→重试/静音链接。所有URL先用本地n8n测试域名。

准备什么

  • 可登录的n8n实例和具备读写流程、重试执行权限的n8n API测试凭证
  • Gmail OAuth2测试发件账号,其他通知渠道先不启用
  • 允许使用n8n Data Tables功能的版本,具体菜单以本地实例为准
  • 一个用于故意失败的空白测试工作流,不连接生产业务
  • 公网暴露前可用的Basic Auth或反向代理登录方案

具体怎么做

  1. 初始化三张表

    新建Manual Trigger,接三个Data Table创建动作或按本地界面建表:geh_config放key/value,geh_fingerprints放fingerprint、message_sample、mute_until、count,geh_incidents放occurred_at、workflow_id、execution_id、severity、status。手动执行一次后写入默认config行,base_url先填http://localhost:5678练习。

  2. 做设置与连接页

    用Webhook GET /geh-config返回HTML表单,字段含base_url、email_to、gemini_enabled、retention_days、backoff_base_minutes;POST同路径校验email格式和数字范围,写回geh_config。另建GET /geh-assign调n8n API列流程,提交时把测试流程的error workflow指向本流程;批量前先只选一个测试流程。

  3. 接收并规范化错误

    在测试流程放一个会抛错的Function,例如throw new Error("HTTP 502 from CRM")。错误管家入口读取workflow.id、execution.id、error.message、node.name,用Code节点生成fingerprint:小写化、去掉数字和UUID、取前80字符再哈希。查geh_fingerprints,命中则count+1并按mute_until静默。

  4. 分支告警与动作链接

    按config做退避:首次severity=info,重复且count超过阈值升warning,含auth/payment关键词升critical;gemini_enabled=false时跳过AI。Gmail主题写[severity] workflow名,正文带三个链接:/geh-activity查看,retry?execution_id=调n8n API重试,mute?fingerprint=写静音。Schedule每日删retention_days之前incidents。

可直接复制的材料

默认配置JSON(本站练习版)

本站示例;webhook公开前必须加Basic Auth或代理登录,email_to用测试地址。

{
  "base_url": "http://localhost:5678",
  "email_to": "alerts@example.test",
  "gemini_enabled": false,
  "channels": {"gmail": true, "slack": false, "telegram": false, "discord": false, "teams": false, "webhook": false},
  "escalation": {"repeat_count_warning": 3, "critical_keywords": ["auth", "payment", "credential"]},
  "backoff": {"base_minutes": 5, "max_minutes": 120},
  "retention_days": 30
}

三张Data Table字段CSV

列名是本站练习约定,导入前与原模板实际表结构核对。

table,columns
geh_config,"key,value,updated_at"
geh_fingerprints,"fingerprint,workflow_id,message_sample,count,mute_until,last_seen_at"
geh_incidents,"incident_id,occurred_at,workflow_id,execution_id,node_name,severity,fingerprint,status,notified"

Gemini诊断提示词(可关闭)

本站独立提示词;默认配置先关闭Gemini,启用时模型名和参数要回原模板核对。

你是n8n运维诊断助手。输入是规范化错误:workflow_id={{workflow_id}},node_name={{node_name}},error_message={{error_message}},recent_count={{recent_count}}。只输出JSON,不要Markdown:{"summary":"80字内中文原因","likely_category":"credential|api_limit|data_mapping|network|unknown","retry_advice":"retry|manual_fix|mute","severity":"info|warning|critical","confidence":0.0}。不能确定时likely_category=unknown,confidence不高于0.4。

输入与输出示例

本站虚构示意,URL为本地练习;未调用n8n API。

输入

{"workflow":{"id":"wf_test_01","name":"CRM同步测试"},"execution":{"id":"exec_9001"},"error":{"message":"HTTP 502 from CRM gateway id=9f8e-trace-123","node":{"name":"HTTP Request"}}}

对应输出

{"fingerprint":"http_from_crm_gateway_id_trace","severity":"warning","action":"email_gmail_test","retry_url":"http://localhost:5678/webhook/geh-action/retry?execution_id=exec_9001","mute_url":"http://localhost:5678/webhook/geh-action/mute?fingerprint=http_from_crm_gateway_id_trace"}

做完检查这些

  • 手动跑一次后三张表存在,geh_config有且只有一行默认配置
  • /geh-config提交非法邮箱或负数retention会返回HTML校验错误而不写表
  • /geh-assign能列出测试流程,且只把选定测试流程的错误流指向本流程
  • 同一错误消息仅改数字或UUID时生成相同fingerprint并累计count
  • Gmail测试信包含severity、workflow名、retry和mute两个链接,未启用渠道不发信
  • 每日清理执行后超过retention_days的incident被删除,未到期记录保留

容易卡住的地方

  • 原说明要求保护/geh-config、/geh-assign、/geh-activity、/geh-guide和动作链接,裸奔会暴露重试能力
  • n8n API凭证权限不足会导致列流程、设置错误流或重试执行失败
  • Data Tables功能在不同n8n版本界面可能不同,别伪造菜单路径,按本地实例核对
  • Gmail OAuth2若用受限测试账号,发送频率和收件人可能受限
  • 退避与升级规则来自存储config,改了base_url后旧链接可能失效
  • 不要把生产流程一次性批量挂上,先接一个故意失败的测试流程

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Route and triage workflow errors with Gmail, Gemini and n8n API
原作者
Lucas Peyrin
原始发布日期
2026-10-05T21:39:31.396Z
来源
https://n8n.io/workflows/20499