介绍
# n8n workflow automation with retries, logging, and review queues
{ "text": "# n8n 工作流自动化:包含重试、日志和审核队列\n\n## 目的\n设计和输出 n8n 工作流 JSON,具备健壮的触发器、幂等性、错误处理、日志记录、重试以及人工介入审核队列。\n\n## 何时使用\n- 触发器:\n - 构建一个每星期一运行并通过电子邮件发送合规摘要的 n8n 工作流。\n - 为此工作流添加错误处理和重试机制,并为失败案例添加审核队列。\n - 创建一个记录每次运行并将状态行写入追踪器的 Webhook 工作流。\n - 使此 n8n 工作流具备幂等性,以在重新运行时避免重复记录。\n - 为此工作流配置审计日志和人工批准步骤。\- 请勿在以下情况使用……\n - 您需要不使用 n8n 的纯代码自动化(请使用脚本/CI 技能)。\n - 您需要绕过安全控制或隐藏审计踪迹。\n - 您需要购买或推荐禁用的物品/服务。\n\n## 输入\n- 必填:\n - 工作流意图:触发器类型 + 计划/时区 + 成功标准。\n - 目标:将结果写入何处(email/Drive/Sheet/DB)以及必填字段。\n- 可选:\n - 待修改的现有 n8n 工作流 JSON。\n - 示例载荷 / 示例记录。\n - 去重键的定义(即决定记录唯一性的依据)。\n- 示例:\n - Cron:星期一 08:00 Europe/London;发送摘要邮件 + Drive 上传\n - Webhook:接收 JSON;路由至文件夹\n\n## 输出\n- 默认(只读):一份工作流设计规范(节点、数据契约、故障模式)。\n- 如果明确请求:`workflow.json`(可导入的 n8n JSON)+ `runbook.md`(基于模板)。\n成功 = 工作流具备幂等性、记录每次运行、安全重试,并将失败案例路由至审核队列。\n\n## 工作流\n1. 明确触发器:\n - Cron/webhook/manual;计划/时区;并发预期。\n2. 定义数据契约:\n - 输入 schema、必填字段和验证规则。\n3. 设计幂等性:\n - 选择去重键和存储(DB/Sheet)以防止重试时产生重复记录。\n4. 增加可观测性:\n - 生成 `run_id`,记录开始/结束,存储状态行和错误详情。\n5. 实施错误处理:\n - 每个节点的错误分支、带退避的重试以及最终失败通知。\n6. 添加人工介入(HITL)审核队列:\n - 将失败项写入队列(Sheet/DB)并要求批准以重新处理。\n7. “无静默失败”守门:\n - 如果计数/阈值失败,停止工作流并发出警报。\n8. 输出:\n - 如果要求提供 JSON:生成可导入的 n8n 工作流 JSON + runbook。\n9. 停止并询问用户,如果:\n - 目标系统未知,\n - 不存在去重键,\n - 未指定凭证策略(环境变量),\n - 工作流需要尚未批准的特权访问。\n\n## 输出格式\n如果输出 **n8n workflow JSON**,需符合:\n\n```json { "name": "<workflow name>", "nodes": [ { "name": "Trigger", "type": "n8n-nodes-base.cron", "parameters": {}, "position": [0,0] } ], "connections": {}, "settings": {}, "active": false } ```\n\n同时使用 `assets/runbook-template.md` 输出 `runbook.md`。\n\n## 安全与边缘情况\n- 默认为只读;仅在明确请求时才输出工作流 JSON。\n- 不要在 JSON 中包含机密信息;仅引用环境变量/凭证名称。\n- 包含审计日志 + 失败通知;避免出现可能静默丢失数据的工作流。\n- 遵循最小权限原则:仅调用必需的 API 并将范围最小化。\n\n## 示例\n- 输入:“Cron 每周一,发送合规摘要,重试失败。”\n 输出:节点图 + `workflow.json`,包含 Cron → Fetch → Aggregate → Email,以及通向审核队列的错误分支。\n\n- 输入:“记录运行并写入状态行的 Webhook。”\n 输出:Webhook → Validate → Process → Append status row;发生错误时 → log + notify + queue。" }