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

2026-10-13 · 原文发布日

自动跟进未成交报价:邮件加短信三触达

这条n8n流程每天上午10点扫描Google Sheets中的未成交报价,按第2天邮件、第7天短信、第14天最后短信的节奏挑出到期对象,先通过HTTP调用CRM确认报价仍有效,再让OpenAI按你的业务口吻生成跟进文案,首触经Gmail、后续经Twilio短信发出,每次触达和已关闭报价分别记入Touches和ClosedLog表,避免对已成单客户重复打扰。

原文要点

原工作流由AI Automation Playbook发布在n8n模板库(免费模板):每天上午10点定时运行,读取Google Sheets的Quotes标签页,按发送日期与触达次数挑出到期的未成交且未退订报价(第2天邮件、第7天短信、第14天最后短信);先HTTP调用CRM/报价系统确认报价仍为open,再用OpenAI按业务口吻生成跟进文案;首触经Gmail、后续经Twilio短信发出;每次触达写入Touches表,发现已关闭的报价记入ClosedLog表。需配置的占位包括CONFIG中的业务名、Twilio发送号码、目标表格ID,以及CRM查询端点URL(含鉴权)。前置条件为OpenAI密钥、Google账号、Twilio账号含号码、可HTTP查询的CRM。原说明还给出自定义方向:改触达节奏、改系统提示词口吻、加第四次触达或末次优惠。

这次做成什么

在自有n8n中重建这条报价跟进流程:定时扫描→CRM状态复核→AI文案→分渠道发送→双表记账。先用三行合成报价数据跑通分支逻辑,确认只对到期且仍为open的报价发消息。

准备什么

  • 一个可定时运行的n8n实例(自托管或云)
  • Google账号,可建Sheet并完成Sheets与Gmail的OAuth2授权
  • OpenAI API密钥
  • Twilio账号及一个可发短信的发送号码(先用试用号与已验证收件号)
  • 一个可通过HTTP查询报价状态的CRM或报价工具端点;没有时可用Mock端点代替

具体怎么做

  1. 建表

    建一个Google Sheet,三个标签页。Quotes列:quote_id、sent_date、touch_count、status、opted_out、email、phone、amount、customer_name;Touches列:quote_id、touch_no、channel、sent_at、message;ClosedLog列:quote_id、closed_at、detected_via。把表ID写入工作流CONFIG。

  2. 定时与筛选

    Schedule Trigger设为每天10:00。Google Sheets节点读Quotes全表,后接Code节点计算每条报价的到期情况:touch_count=0且sent_date距今≥2天→邮件;=1且≥7天→短信;=2且≥14天→最后短信;status≠open或opted_out=true一律跳过。输出待处理数组。

  3. CRM复核分支

    对每条待处理报价,HTTP Request节点GET你的CRM端点(如https://crm.example.com/api/quotes/{{quote_id}},鉴权按CRM要求配Header或Token)。IF节点判断返回status:closed→写入ClosedLog并把Quotes中status改为closed,不发消息;open→继续;接口超时或404→本次跳过该条并留待人工核查,不写入Touches、不增加touch_count,避免把失败请求记为已触达。

  4. AI生成文案

    OpenAI节点用材料中的提示词,按触达次数生成对应文案:第一次生成邮件主题+正文,第二、三次生成160字符内短信。把业务名、报价金额、报价ID作为变量传入,保持口吻一致。

  5. 发送与记账

    touch_count=0走Gmail节点发邮件;其余走Twilio节点发短信(From为CONFIG中的Twilio号码,To为Quotes的phone)。发送成功后Google Sheets节点向Touches追加一行,并把Quotes中该报价touch_count加1、更新last_touch_date。

可直接复制的材料

跟进文案生成提示词

本站独立编写的示例提示词,业务名、口吻与规则可按需改;原模板提示词需以你导入后的实际节点为准。

你是【业务名】的销售助理,为未成交报价写跟进文案。规则:
- touch_no=1:写邮件,含主题行与正文,正文不超过120词,询问报价是否有疑问,附一句可约15分钟电话
- touch_no=2:写短信,不超过160字符,友好提醒报价仍有效
- touch_no=3:写最后一条短信,不超过160字符,说明报价即将到期,给客户一个明确回复期限,语气不施压
- 使用客户名字与报价编号,金额以人民币元呈现
- 不使用夸张促销词,不承诺折扣
输入:{"customer_name":"王女士","quote_id":"Q-2026-0188","amount_cny":12800,"touch_no":2,"business_name":"恒信暖通"}
只输出文案本身,邮件格式为“主题:...”加正文,短信直接输出文本。

Quotes合成测试数据(CSV)

本站虚构的合成数据,日期相对2026-10-13设计:第一行到期首触邮件、第二行到期短信、第三行应被CRM复核拦下、第四行退订跳过。手机号为空号段示例,勿真发。

quote_id,customer_name,sent_date,touch_count,status,opted_out,email,phone,amount_cny
Q-2026-0188,王女士,2026-10-11,0,open,false,wang@example.com,+8613800000001,12800
Q-2026-0175,李先生,2026-10-04,1,open,false,li@example.com,+8613800000002,8600
Q-2026-0160,张经理,2026-09-28,2,closed,false,zhang@example.com,+8613800000003,21500
Q-2026-0195,陈小姐,2026-10-12,0,open,true,chen@example.com,+8613800000004,5400

工作流CONFIG示例

本站示例配置结构,对应原模板的CONFIG占位;twilio_from_number为Twilio文档保留的示例号段,需替换为真实号码。

{
  "business_name": "恒信暖通",
  "google_sheet_id": "1DemoSheetIdReplaceMe",
  "twilio_from_number": "+15005550006",
  "crm_status_endpoint": "https://crm.example.com/api/quotes/",
  "touch_schedule_days": [2, 7, 14],
  "daily_run_hour": 10
}

输入与输出示例

本站虚构演示,未实际运行;Twilio试用号只能发给已验证号码。

输入

2026-10-13上午10点定时触发,Quotes表为上面CSV四行合成数据,CRM端点对Q-2026-0160返回closed、其余返回open

对应输出

处理结果:Q-2026-0188走Gmail发出首触邮件,Touches追加{quote_id:Q-2026-0188,touch_no:1,channel:email}且touch_count→1;Q-2026-0175走Twilio发短信,touch_count→2;Q-2026-0160被写入ClosedLog{quote_id:Q-2026-0160,detected_via:crm_recheck}且不发任何消息;Q-2026-0195因opted_out=true直接跳过。本批共2次触达、1条关闭记录、1条跳过。

做完检查这些

  • 四行测试数据各走预期分支:邮件、短信、关闭登记、退订跳过,无一行走错渠道
  • 同一报价当天重复触发流程不会重复发送(sent_date+touch_count判定幂等)
  • CRM端点返回非open状态时不发消息且ClosedLog有对应记录
  • Touches中每行的message与OpenAI输出一致,Quotes的touch_count与Touches行数吻合
  • 短信文案长度不超过160字符,超出时提示词或节点需截断处理

容易卡住的地方

  • CRM端点URL与鉴权是占位配置,未改成真实地址时HTTP节点全线报错,建议先用Mock端点联调
  • sent_date列格式必须统一为YYYY-MM-DD,否则日期差计算出错导致整批漏发或错发
  • Twilio试用账号只能向已验证号码发短信,未验证号码会返回错误但流程可能仍记账,需把发送失败也纳入IF分支
  • opted_out判定若只查Quotes而不查CRM最新状态,客户退订信息不同步会造成骚扰投诉
  • 定时时区取决于n8n实例设置,容器默认UTC时上午10点会对应到错误当地时间

原文与作者资料 ↗

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

原文标题
Recover abandoned quotes with GPT-4o mini, Gmail, Twilio and Google Sheets
原作者
AI Automation Playbook
原始发布日期
2026-10-13T06:32:32.003Z
来源
https://n8n.io/workflows/20850