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

2026-09-02 · 原文发布日

多门店巡检笔记自动分级与风险汇总

面向多门店餐饮的巡检合规模板:每天早上处理一批巡店笔记,用 OpenAI 信息提取器把每家店的记录分类为违规类别、严重度和整改建议,按严重度算出整改期限写入 Google Sheets 日志;汇总算出区域风险分,超阈值先发 Gmail 升级告警再发当日汇总邮件,单个门店接口出错不会阻塞整批处理。

原文要点

原模板是免费n8n工作流:每天07:00定时触发,拉取一批多门店巡店笔记并逐店拆分;用OpenAI信息提取器把每条笔记分类为违规类别、严重度、法规条款和整改建议;按严重度算整改期限(严重=10天、重大=30天、轻微=90天)写入Google Sheets“Compliance Log”;汇总成区域风险分写入“Compliance Summary”;超阈值先发Gmail升级告警再发当日汇总;Sheets与Gmail节点均设onError=continueRegularOutput加重试3次间隔2000毫秒,单店出错不阻塞整批。

这次做成什么

搭建一个每天清晨自动运行的多门店巡检流水线:批量巡店笔记→逐店AI分类分级→按规则算整改期限→写两张Sheets表→算区域风险分→超阈值先告警再发日报。本站独立设计一个3门店合成数据的练习方案,复刻原模板的分级规则与分支逻辑。

准备什么

  • 一个可用的OpenAI API Key,能调用聊天模型输出结构化JSON
  • 一个Google账号,已建含Compliance Log与Compliance Summary两个标签页的表格
  • 一个完成OAuth2授权的Gmail账号,用于发告警和日报邮件
  • n8n实例(云端或自托管),能使用Schedule Trigger、OpenAI、Google Sheets、Gmail节点
  • 练习用巡店笔记来源,本指南用合成的三门店JSON代替真实巡检系统

具体怎么做

  1. 建表与定时触发

    在Google Sheets新建表格,建两个标签页:Compliance Log列依次为date、location_id、location_name、violation_category、severity、code_section、corrective_action、deadline;Compliance Summary列依次为date、locations_processed、critical_count、major_count、minor_count、risk_score、escalated。n8n里放Schedule Trigger,设为每天07:00并选对本地时区。

  2. 接入批量笔记并逐店拆分

    原模板此处是演示数据节点,练习时直接粘贴下文artifacts里的三门店合成JSON;接Split Out节点按数组拆成每店一条记录。正式使用时把这一步换成数据库、API或Sheets读取节点,输出字段保持location_id、location_name、note三项。

  3. AI提取违规信息

    挂OpenAI信息提取器(Information Extractor),连接OpenAI凭据,系统提示词用下方artifacts中的完整提示词,输入为当前门店的note文本,要求输出violation_category、severity(critical/major/minor)、code_section、corrective_action四个字段的结构化JSON。

  4. 计算整改期限并写日志

    用Code节点按severity映射期限天数:critical加10天、major加30天、minor加90天,以当天日期为基准算出deadline;然后Append Row写入Compliance Log,按第一步的列序做字段映射。

  5. 汇总风险分并分支发信

    把本批所有门店记录聚合进Code节点(代码见artifacts),算出critical_count、major_count、minor_count和risk_score,追加一行到Compliance Summary。接IF节点判断risk_score是否超过阈值(示例设10)或critical_count≥2:是则先发Gmail升级告警邮件,无论是否升级都继续发当日汇总邮件,正文逐店列出严重度和整改期限。

  6. 配置容错

    在所有Google Sheets与Gmail节点上开启retryOnFail(重试3次、间隔2000毫秒)并把onError设为continueRegularOutput,保证单个门店的接口抖动不会中断整批处理和日报发送。

可直接复制的材料

违规信息提取系统提示词

本站独立撰写,对应原模板Extract Violation Severity节点的作用,可按自己企业的条款手册改写类别与编号规则。

你是连锁餐饮门店卫生巡检的合规分析员。用户会给你一条某门店的巡店笔记原文。请只依据笔记内容,输出严格JSON,不要输出任何其他文字。字段要求:
violation_category:违规类别,从以下选一:食品温度控制、交叉污染、员工卫生、设备清洁、害虫防治、储存与标识、其他。
severity:严重度,只能是 critical(可能造成即时食品安全危害)、major(明显违规但非即时危害)、minor(轻微不规范)三者之一。
code_section:对应的内部合规条款编号,格式如 FS-3.2,若无法判断填 FS-0.0。
corrective_action:一句话整改建议,说明做什么、达到什么状态。
若笔记中没有发现任何违规,severity填minor,violation_category填其他,corrective_action填“未发现违规,保持现有操作”。

区域风险分计算代码(n8n Code节点)

本站按原模板描述复刻的示例实现,阈值常量可按需调整;原模板提到CRITICAL_COUNT_THRESHOLD与RISK_SCORE_THRESHOLD可调但未给出具体权重公式。

// 输入:本批所有门店的提取结果数组 items
// 权重:critical=5分,major=2分,minor=1分
const CRITICAL_COUNT_THRESHOLD = 2;
const RISK_SCORE_THRESHOLD = 10;
let critical=0, major=0, minor=0;
for (const item of $input.all()) {
  const s = item.json.severity;
  if (s === 'critical') critical++;
  else if (s === 'major') major++;
  else minor++;
}
const riskScore = critical*5 + major*2 + minor*1;
const escalated = critical >= CRITICAL_COUNT_THRESHOLD || riskScore >= RISK_SCORE_THRESHOLD;
return [{ json: {
  date: new Date().toISOString().slice(0,10),
  locations_processed: $input.all().length,
  critical_count: critical, major_count: major, minor_count: minor,
  risk_score: riskScore, escalated: escalated
} }];

合成巡店笔记批次(三门店JSON)

本站虚构的练习数据,替换Fetch Inspection Batch节点中的演示内容;正式使用请接真实巡检系统。

[
  {"location_id":"SH-101","location_name":"上海静安店","note":"冷库温度计显示8度,高于规定的4度上限;生鸡肉与即食沙拉放在同一层货架。员工洗手液用完未补充。"},
  {"location_id":"SH-102","location_name":"上海徐汇店","note":"炸炉油温正常,地面有少量油渍已当场清理;一名员工未戴发网操作。"},
  {"location_id":"HZ-201","location_name":"杭州西湖店","note":"灭蝇灯损坏两周未更换,后厨发现一处蟑螂痕迹;食材进货标签齐全,冷藏温度正常。"}
]

输入与输出示例

本站虚构演示输出,未实际调用OpenAI,真实分类结果以模型返回为准。

输入

门店SH-101的巡店笔记:冷库温度计显示8度,高于规定的4度上限;生鸡肉与即食沙拉放在同一层货架;员工洗手液用完未补充。

对应输出

{"violation_category":"食品温度控制","severity":"critical","code_section":"FS-3.2","corrective_action":"立即检修冷库制冷设备并将温度降至4度以下,生熟食材分层隔离存放,当日补充洗手液。"} 假设运行日为2026-09-15,deadline=2026-09-25(critical加10天)。该批次三店合计critical=1、major=1、minor=1时risk_score=8,低于阈值10,只发日报不发升级告警。

做完检查这些

  • Schedule Trigger改为手动执行一次,Compliance Log应新增3行,每行severity与deadline齐全且期限天数与严重度对应
  • Compliance Summary新增一行,risk_score等于本批critical×5+major×2+minor×1,escalated布尔值与阈值判断一致
  • 把合成数据中critical门店改为2家后再跑一次,应收到升级告警邮件且日报邮件照常送达
  • 人为断开一个Sheets节点的凭据再运行,其余门店记录仍写入,工作流不整体报错中断

容易卡住的地方

  • 原模板自带的是演示批次数据,不接真实巡检来源则每天只会重复处理同样的示例记录
  • AI判定的严重度是辅助判断,边界案例需要人工抽查,期限和升级分支才是确定性规则
  • 两张Sheets标签页的列名与顺序必须与Append节点的字段映射一致,否则写入错位或失败
  • Gmail与Sheets节点要逐一开启重试和continueRegularOutput,漏配一个节点就可能阻塞整批
  • 每天每店一次OpenAI调用,门店量大时仍需自行估算API额度

原文与作者资料 ↗

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

原文标题
Score QSR health inspections and send Gmail compliance digests with OpenAI
原作者
Swapnil Mandloi
原始发布日期
2026-09-02T03:25:44.337Z
来源
https://n8n.io/workflows/19037