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

2026-09-08 · 原文发布日

建筑RFI与送审件的收件、升级和每日催办

针对施工场景的工程问答管理:三个webhook分别接收新RFI、答复和送审件,先校验字段完整性,由gpt-6-luna分类问题并起草确认回执,全部记录进Airtable台账;按截止日期和关键词算优先级,需工程复核的条目会通过Discord、Telegram和Gmail三通道升级提醒工程师。答复进来后自动匹配台账标记已答并回邮提交人,另有定时任务每天扫一遍临期逾期项,发出平安或待办汇总。

原文要点

原工作流是Khairul Muhtadin发布的n8n免费模板(2026年9月更新):三个webhook分别接rfi/intake、rfi/answer、subm/intake,载荷不完整即拒绝并通过Discord和Gmail通知办公室;用作者配置的gpt-6-luna(Chat Completions凭据)分类问题并起草确认回执,解析JSON失败时有fallback;优先级由截止日期加关键词算出,台账写入Airtable的RFI Register与Submittal Log两张表;标记需工程复核的RFI走Discord紧急消息+Telegram+Gmail邮件工程师三路升级;答复webhook匹配台账标记answered并回邮提交人,无效或不匹配则提醒办公室;cron每日拉取两表算临期逾期,发平安或待办汇总到Gmail和Discord。模型名gpt-6-luna为作者配置,本站未验证其可用性。

这次做成什么

用n8n搭一条最小可用的工程问答管理练习流:一个webhook收RFI→字段校验→AI分类并起草回执→写入Airtable台账→按是否需复核分支升级→每日定时汇总。先跑通收件与台账,再接答复webhook和送审件入口。

准备什么

  • 一个n8n实例(自托管或云端)并能开启webhook
  • OpenAI Chat Completions凭据(作者配置模型名为gpt-6-luna,如不可用需在原模板或n8n节点中换成你账号可用的模型)
  • Airtable个人访问令牌及一个自建Base
  • Gmail OAuth2凭据,以及Discord机器人、Telegram机器人(可先只做邮件通道)
  • 用于测试的合成数据,不用真实项目联系人

具体怎么做

  1. 建Airtable台账

    在Airtable新建Base,建表RFI Register,字段:RFI编号(单行文本)、提交人邮箱、问题描述、截止日期(日期)、类别、优先级、状态(单选:open/answered)、需工程复核(勾选)。再建表Submittal Log,字段:送审编号、提交人邮箱、材料名称、截止日期、分类、状态。

  2. 配RFI收件webhook与校验

    在n8n加Webhook节点,路径设rfi/intake、方法POST。后接IF节点做字段完整性校验:rfi_id、submitter_email、question、due_date四项任一为空即拒绝,走false分支用Gmail/Discord通知办公室并返回400;完整则进入处理。

  3. AI分类与起草回执

    接OpenAI Chat Completions节点,粘贴下方提示词,要求返回JSON。后面接JSON解析(原模板有fallback,可用一个Set节点在解析失败时填默认类别'未分类')。提示词输出category、needs_review、acknowledgment三段。

  4. 算优先级并写台账

    用Code节点算优先级:截止日期距今天≤3天或question含'停工''安全'等关键词→high;≤7天→medium;否则low。接Airtable节点Create Record写入RFI Register,字段按上表映射。再用Gmail节点把acknowledgment发给submitter_email。

  5. 复核分支升级

    IF节点判断needs_review为true时:Discord节点发紧急消息到指定频道、Telegram节点发警报到你的chat_id、Gmail节点发邮件给工程师测试邮箱;false则只发常规Discord新RFI通知。

  6. 答复入口与每日汇总

    第二个Webhook路径rfi/answer:收rfi_id和answer_text,Airtable Search按RFI编号查找,找到则更新状态answered并回邮提交人,找不到则Gmail提醒办公室。第三个Webhook路径subm/intake仿照步骤2—4搭建:校验送审编号、提交人邮箱、材料名称等必填项,缺失则拒绝并通知办公室;用同一思路让模型分类送审件并起草回执(JSON解析失败同样走fallback),写入Submittal Log后回邮提交人并发Discord更新。加Schedule Trigger每日运行:Airtable列出open且截止日期≤今天+2天的记录,非空发待办汇总,空则发'今日平安',分别到Gmail和Discord。

可直接复制的材料

RFI分类与回执起草提示词

本站独立编写示例,字段名需与你的webhook载荷一致;模型在节点凭据处选择你账号可用的Chat Completions模型。

你是建筑项目的工程助理。根据下面的RFI信息输出严格JSON,不要输出其他文字。
RFI编号:{{$json.rfi_id}}
问题描述:{{$json.question}}
截止日期:{{$json.due_date}}
返回格式:{"category":"结构|机电|装饰|进度|造价 之一","needs_review":true或false(涉及结构安全、设计变更、可能影响工期则为true),"acknowledgment":"一段中文确认回执,告知已收到RFI编号、预计答复时限为3个工作日,语气正式简洁"}

RFI收件测试载荷

本站虚构测试数据,用curl POST到rfi/intake:curl -X POST <你的webhook地址> -H 'Content-Type: application/json' -d 此JSON。

{"rfi_id":"RFI-2026-014","submitter_email":"test.sub@example.com","question":"地下室外墙后浇带止水钢板搭接长度图纸未标明,现场等待答复,可能影响进度。","due_date":"2026-09-15","project":"演示项目A"}

优先级计算Code节点片段

本站独立编写示例,阈值可自行调整;字段名需与上游一致。

const item = $json;
const days = Math.ceil((new Date(item.due_date) - new Date()) / 86400000);
const hot = ['停工','安全','质量事故','验收'];
let priority = 'low';
if (days <= 3 || hot.some(k => (item.question||'').includes(k))) priority = 'high';
else if (days <= 7) priority = 'medium';
return { json: { ...item, priority } };

输入与输出示例

本站虚构演示,非原作者运行结果,未实际调用任何服务。

输入

用上方测试载荷POST到rfi/intake,其中question含'可能影响进度',due_date为2026-09-15(距模拟运行日9月12日为3天)。

对应输出

AI返回{"category":"结构","needs_review":true,"acknowledgment":"已收到RFI-2026-014,我部将于3个工作日内答复。"};Code节点算出priority=high;Airtable新增一行状态open;因needs_review为true,Discord紧急频道出现'【升级】RFI-2026-014需工程复核',Telegram收到同内容警报,工程师测试邮箱收到邮件;提交人邮箱收到确认回执。次日(9月13日)cron运行时该条距截止恰好2天,满足'≤今天+2天'条件,进入待办汇总邮件。

做完检查这些

  • POST缺少rfi_id的载荷返回400,办公室收到Discord/Gmail通知,Airtable无新增记录
  • 完整载荷提交后RFI Register出现对应行,category、priority、状态open均非空
  • needs_review为true时三条升级通道(Discord紧急、Telegram、工程师邮件)各有且仅有一条消息
  • 向rfi/answer提交匹配rfi_id后记录变answered,提交人收到答复邮件;提交不存在编号时办公室收到提醒
  • 每日cron在无临期项时发'平安'汇总,有临期项时列出编号与截止日期

容易卡住的地方

  • gpt-6-luna是作者配置的模型名,你的OpenAI账号若无此模型会在分类节点报错,需在原模板或节点中更换,本站未核实该模型是否存在
  • Airtable字段名必须与映射完全一致(含中英文),否则写记录报字段不存在
  • AI返回若带markdown代码块会导致JSON解析失败,fallback逻辑要提前配好
  • Discord/Telegram的频道ID和chat_id用测试值,别直接把真实项目群ID写进练习流
  • webhook路径rfi/intake与rfi/answer不要写反,答复进错入口会全部不匹配

原文与作者资料 ↗

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

原文标题
Track construction RFIs and submittals with Airtable, Gmail, Discord, Telegram, and gpt-6-luna
原作者
Khairul Muhtadin
原始发布日期
2026-09-08T02:50:46.035Z
来源
https://n8n.io/workflows/19350