2026-10-05 · 原文发布日
工作日早晨自动给在建项目算风险分
这个免费n8n模板每个工作日早上从Google Sheets读取所有在建项目,按经纬度调Open-Meteo取7天天气预报,再结合预算、采购、劳工、现场报告和纠纷等页签数据计算进度、天气、成本等风险指标,按规则给出继续、介入或停工复查的结论,交给Google Gemini整理成结构化决策(含理由、关键行动、置信度)写入决策日志,仅在需要介入时邮件通知项目经理。适合工程管理团队。
原文要点
该模板由iamvaar发布在n8n官方模板库(工作流20433),标注免费,更新日期2026-10-05。核心事实:cron在工作日早上7点触发;从Google Sheets的Projects页签读取status为Active的项目,按每行经纬度调Open-Meteo API取7天预报;同一表格另有Budget_Accounting、Procurement、Labor、Site_Reports、Disputes五个页签提供预算、采购、劳工、现场报告、纠纷数据;规则计算进度、采购、劳工、纠纷、天气、报告完整性、预算七类风险指标并推出CONTINUE/INTERVENE/STOP_REVIEW决策及缓解杠杆;Gemini产出含headline、reasons、critical action、confidence的决策JSON,且对AI推翻规则结论设有护栏;结果追加到Decision_Log页签,仅INTERVENE或STOP_REVIEW时用Gmail邮件通知项目经理。
这次做成什么
在n8n里搭好这条工作日早晨自动跑的在建项目风险评分流,并用一份合成项目表完成一次手动演练,验证决策JSON、日志写入和条件邮件三条链路。原模板需在n8n.io页面免费获取,本站不提供原工作流文件,下文练习数据与提示词为本站独立编写。
准备什么
- 一个可登录的n8n Cloud账号或自托管n8n实例
- 一个拥有目标表格权限的Google Sheets Service Account凭据
- Google Gemini(PaLM)API凭据,用于决策生成节点
- Gmail OAuth2凭据,用于给项目经理发通知邮件
- Open-Meteo为免费接口无需密钥,但项目行必须有有效经纬度
具体怎么做
获取并导入模板
打开n8n.io/workflows/20433页面,用页面提供的免费导入方式把模板导入你的n8n实例。导入后先整体浏览一遍节点:cron触发器、多个Google Sheets读取节点、Open-Meteo HTTP请求、风险计算节点、Gemini节点、Decision_Log追加节点和Gmail发送节点,确认与本指南描述一致,不一致处以你导入的实际模板为准。
准备七页签Google表格
新建一个Google Sheet,按模板要求建Projects、Budget_Accounting、Procurement、Labor、Site_Reports、Disputes、Decision_Log共七个页签。在Projects页签填入下方材料中的合成CSV(含project_id、status、latitude、longitude、planned_progress、actual_progress等列),其余页签至少各放一条与project_id关联的测试行。把表格ID和Service Account邮箱的编辑权限配好。
配置三组凭据与字段映射
在n8n凭据页新建Google Sheets Service Account、Gemini API、Gmail OAuth2三组凭据,分别绑定到对应节点。逐个Sheets节点把spreadsheet ID换成你的表格ID、tab名核对无误;Gmail节点收件人先填你自己的测试邮箱。
替换决策提示词并手动演练
把下方材料中的决策JSON提示词粘贴进Gemini节点的系统提示位(若原模板已有提示词,先备份再对照合并,保留对决策覆盖的护栏条款)。点击Execute workflow手动跑一次,检查风险计算节点输出的七类指标是否都有数值。
核对三处输出后激活
确认Decision_Log页签新增一行含headline与confidence的记录;确认合成的P-002项目(进度落后+暴雨)被判为INTERVENE并收到邮件;确认正常项目CONTINUE时不发邮件。三项都通过后激活cron,工作日早晨自动运行。
可直接复制的材料
Projects页签合成测试数据
本站虚构的练习数据,On Hold行用于验证只处理Active项目;邮箱请换成你的测试邮箱,不要用真实客户邮箱。
project_id,project_name,status,latitude,longitude,planned_progress,actual_progress,pm_email
P-001,滨河住宅一期,Active,31.2304,121.4737,0.60,0.58,pm-test@example.com
P-002,城西桥梁改造,Active,30.5728,104.0668,0.45,0.30,pm-test@example.com
P-003,北区仓库扩建,On Hold,39.9042,116.4074,0.10,0.10,pm-test@example.comGemini结构化决策提示词(本站撰写)
本站独立撰写的练习提示词,用于替换或对照原模板Gemini节点提示词;原模板对决策覆盖的护栏细节需以导入后的实际节点为准。
你是一名工程管理决策助手。输入是某个在建项目的七项风险指标(schedule、procurement、labor、disputes、weather、reporting_integrity、budget,均为0-1分值)和规则引擎给出的初步决策(CONTINUE、INTERVENE或STOP_REVIEW)。
请只输出一个JSON对象,字段为:headline(一句话结论)、reasons(不超过3条的字符串数组)、critical_action(最关键的一项缓解行动及完成时限)、confidence(0-1小数)。
护栏:除非某项指标明确支持且你在reasons中点名该指标,否则不得推翻规则给出的初步决策;不允许输出JSON以外的任何文字。风险决策规则参考配置
本站设计的参考阈值,仅用于练习演示,不代表原模板的真实阈值;导入模板后请以模板内计算节点实际逻辑为准。
{
"decisionRules": {
"STOP_REVIEW": "任一指标 >= 0.85,或天气指标 >= 0.8 且进度落后超过 10%",
"INTERVENE": "任一指标 >= 0.6,或两项以上指标 >= 0.5",
"CONTINUE": "其余情况"
},
"metricHints": {
"weather": "未来7天降水概率与极端天气命中天数折算",
"schedule": "planned_progress 与 actual_progress 的差值"
}
}输入与输出示例
本站虚构演示,输入输出字段一一对应,未实际调用Gemini或Open-Meteo。
输入
P-002 城西桥梁改造:planned_progress=0.45、actual_progress=0.30,Open-Meteo返回未来7天有4天降水概率超80%,Procurement页签显示主材critical_path交付延期5天。对应输出
{"headline":"城西桥梁改造进度落后15个百分点且未来一周多雨,建议立即介入","decision":"INTERVENE","reasons":["schedule指标0.67:实际进度落后计划15%","weather指标0.72:7天内4天降水概率超80%","procurement指标0.61:关键路径材料延期5天"],"critical_action":"48小时内与供应商确认替代供货方案并调整雨季施工排班","confidence":0.86}做完检查这些
- 手动执行后Decision_Log页签新增一行,且含headline、decision、confidence字段
- status为On Hold的P-003不产生任何决策记录,只处理Active项目
- P-002被判INTERVENE时测试邮箱收到通知,P-001为CONTINUE时不发邮件
- Gemini输出是合法JSON,未推翻规则决策或推翻时在reasons中点名依据指标
容易卡住的地方
- 项目行缺latitude/longitude会让Open-Meteo请求失败,录入新项目时必须先补经纬度
- Service Account只给了查看权限会导致Decision_Log追加失败,需编辑权限
- 若Gemini输出夹带解释文字会解析失败,提示词中必须明确只输出JSON
- 七个页签任一缺失或改名未同步,对应读取节点会报错中断整条流
- 作者未公开具体风险阈值公式,本站参考配置不可当作原模板逻辑
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Triage construction project risk with Google Sheets, Open-Meteo, Gemini, and Gmail
- 原作者
- iamvaar
- 原始发布日期
- 2026-10-05T09:09:38.485Z
- 来源
- https://n8n.io/workflows/20433