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

2026-10-05 · 原文发布日

维保合同台账与服务到期提醒

暖通维保合同的到期管理流:新合同经webhook录入、校验后由模型写欢迎邮件并记入Sheets台账;每天早上七点检查整本台账,三天内到期或已逾期的客户收到AI起草的保养提醒,有逾期时办公室另收一封列明电话的催收清单;每周一九点模型汇总活跃合同数、七天内待服务、逾期和60天内续约情况,写成给办公室的一周回顾。

原文要点

Khairul Muhtadin发布的免费n8n模板(2026年10月更新),面向暖通维保合同台账。新合同经webhook(POST,路径hvac-agreement-intake-0930)录入,规范化生成agreement_id(AG-yyyyMMdd-###)等字段;缺客户名、客户邮箱、下次服务日期或办公室邮箱时不保存并邮件告知办公室。有效合同由gpt-6-luna写130词内欢迎邮件,记入Google Sheets的“Agreements”页(含16个字段,reminder_count为0)。每天07:00检查台账:3天内到期或已逾期的客户收到AI起草的120词内提醒;有逾期时办公室另收一封列明到期日、逾期天数和电话的催收清单。每周一09:00汇总活跃合同、7天内待服务、逾期与60天内续约情况发办公室。

这次做成什么

复现“webhook录入→校验→AI欢迎邮件→台账→每日到期提醒+逾期升级→每周回顾”链路。本站练习用合成合同数据走通每日检查分支,聊天模型可用任意兼容API替代gpt-6-luna。

准备什么

  • 可建工作流的n8n实例(自托管或云端)
  • Google Sheets OAuth2凭据及含“Agreements”标签页的表格(16列)
  • Gmail OAuth2凭据
  • 聊天模型API凭据
  • 一个接收提醒与催收邮件的办公室测试邮箱

具体怎么做

  1. 建Agreements表

    Google Sheets新建表格,标签页命名为“Agreements”,列依次为agreement_id、customer_name、customer_email、customer_phone、address、system_type、filter_size、service_frequency_months、last_service_date、next_due_date、agreement_end_date、status、office_email、welcomed_at、last_reminded_at、reminder_count(原文明确列出这16列)。把表格ID填入三个Google Sheets节点。

  2. 搭录入webhook

    建Webhook节点,方法POST,路径hvac-agreement-intake-0930。后接规范化节点:无agreement_id时按AG-yyyyMMdd-###生成,status置active,写入office_email与welcomed_at。再接IF校验customer_name、customer_email、next_due_date、office_email,缺失时走“通知办公室”分支:邮件列出缺失字段与已提交值,不写表。

  3. 欢迎邮件与入台账

    有效分支调聊天模型起草欢迎邮件:要求输出subject与body两个字段、正文130词内、只返回JSON(提示词可参照下方提醒邮件提示词的结构自行编写,原文即由AI写130词内欢迎邮件);解析后合并到合同记录,Google Sheets节点追加到Agreements页(reminder_count写0),Gmail节点把欢迎邮件发给客户。

  4. 每日到期检查

    Schedule Trigger每天07:00触发,读取Agreements全表,Code节点筛status为active且next_due_date距今≤3天的记录,附加days_left与is_overdue(days_left<0)。每条命中的合同调模型写120词内提醒邮件发给客户,并回写last_reminded_at、reminder_count加1。之后聚合所有is_overdue为真的记录:有逾期才给办公室发一封催收邮件,逐行列出客户名、到期日、逾期天数、电话;无逾期则不发。

  5. 每周回顾

    Schedule Trigger每周一09:00触发,统计活跃合同数、7天内到期数、逾期数、agreement_end_date在60天内的续约数,把统计结果交给模型起草一周回顾邮件发办公室。激活前核对n8n时区,提醒窗口可在筛选节点中调整3天/7天/60天阈值。

可直接复制的材料

客户提醒邮件提示词

本站按原文功能独立撰写;字段表达式需与你的节点数据一致。

你是暖通维保公司的客户服务专员。根据下面的合同信息,给客户写一封保养提醒邮件,正文不超过120字,语气温和专业,包含:下次保养到期日、距今天数(已逾期则说明逾期天数)、建议预约方式。只返回JSON:{"subject":"...","body":"..."}
客户姓名:{{$json.customer_name}}
系统类型:{{$json.system_type}}
滤网规格:{{$json.filter_size}}
下次到期日:{{$json.next_due_date}}
距今天数:{{$json.days_left}}

webhook测试合同JSON

本站虚构测试数据;agreement_id、status、welcomed_at由规范化节点补齐。

{
  "customer_name": "陈立",
  "customer_email": "chenli-test@example.com",
  "customer_phone": "13800001111",
  "address": "滨江区云栖路88号3幢",
  "system_type": "中央空调VRF",
  "filter_size": "20x25x1",
  "service_frequency_months": 6,
  "last_service_date": "2026-04-15",
  "next_due_date": "2026-10-08",
  "agreement_end_date": "2027-10-14",
  "office_email": "office-test@example.com"
}

Agreements合成台账行

本站虚构合成数据,第二行为逾期样本用于触发办公室催收邮件。

agreement_id,customer_name,customer_email,customer_phone,address,system_type,filter_size,service_frequency_months,last_service_date,next_due_date,agreement_end_date,status,office_email,welcomed_at,last_reminded_at,reminder_count
AG-20261005-001,陈立,chenli-test@example.com,13800001111,滨江区云栖路88号3幢,中央空调VRF,20x25x1,6,2026-04-15,2026-10-08,2027-10-14,active,office-test@example.com,2026-10-05 10:02:00,2026-10-05 07:00:00,1
AG-20260901-002,王芳,wangfang-test@example.com,13900002222,西湖区文三路200号,分体空调,16x20x1,12,2025-09-20,2026-09-30,2026-12-01,active,office-test@example.com,2026-09-01 09:00:00,2026-10-02 07:00:00,3

输入与输出示例

本站虚构演示,非原作者结果,未实际运行。

输入

每日检查当日为2026-10-05,台账含AG-20261005-001(next_due_date=2026-10-08,days_left=3)与AG-20260901-002(next_due_date=2026-09-30,days_left=-5,is_overdue=true)。

对应输出

陈立收到提醒邮件{"subject":"您的中央空调保养将于10月8日到期","body":"陈立您好,您地址为滨江区云栖路88号3幢的中央空调VRF维保合同将于2026-10-08到期(距今3天),请回复本邮件或致电办公室预约保养时间。"};王芳收到含“已逾期5天”的提醒;因存在逾期记录,办公室收到一封催收清单邮件,含“王芳,到期2026-09-30,逾期5天,电话13900002222”一行。

做完检查这些

  • 缺少customer_email的webhook提交不会写入Agreements,办公室收到列明缺失字段的邮件
  • next_due_date距今恰为3天的合同会收到提醒,距今4天的不会
  • 存在至少一条逾期记录时办公室收到一封汇总催收邮件,全部未逾期时当天不发该邮件
  • 每条发出提醒的合同last_reminded_at被更新且reminder_count加1
  • 周一09:00邮件包含活跃合同数、7天内到期数、逾期数和60天内续约数四项统计

容易卡住的地方

  • webhook路径hvac-agreement-intake-0930是原文设定,改动后CRM或表单工具的回调地址要同步改
  • 日期格式不统一(如2026/10/8与2026-10-08混用)会让到期筛选失效,规范化节点统一为ISO日期
  • reminder_count不回写会导致同一客户每天重复收到提醒
  • 3天/7天/60天阈值分散在筛选与统计节点,调整时两处都要改
  • gpt-6-luna为原文模型名,替换模型后需核对JSON输出再激活

原文与作者资料 ↗

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

原文标题
Track HVAC maintenance agreements and automate reminders with Google Sheets, Gmail, and OpenAI
原作者
Khairul Muhtadin
原始发布日期
2026-10-05T10:58:07.157Z
来源
https://n8n.io/workflows/20444