2026-10-06 · 原文发布日
本地Llama 3.2连写三封递进邮件追回Shopify弃单
弃单挽回的完整节奏:Shopify结账和订单webhook进来后先记进Google Sheets,新结账一小时后用本地Ollama跑的Llama 3.2写提醒邮件经Gmail发出;再过24小时若未成交,生成带CART10折扣码的跟进邮件;又过24小时发最后的紧迫感邮件,每一步都先查表格状态避免重复打扰。下单成功则标记已挽回并写感谢信加随机推荐品。每周一早上汇总挽回金额和比率发邮件给店主。全程用本地模型,不用OpenAI也能跑。
原文要点
原模板为免费n8n工作流:接收Shopify的checkout创建/更新与order创建两类webhook;结账事件把email、商品、价格、挽回链接、cart token写入Google Sheets,仅对新结账启动跟进序列;1小时后按cart token查表,状态非Recovered则用HTTP请求调用本地Ollama的llama3.2聊天端点生成提醒邮件经Gmail发出;再过24小时复查仍未成交则生成含CART10折扣码的跟进邮件并把状态更新为Discount Sent;又过24小时发最后紧迫感邮件并更新为Urgency Sent,每步发信前都查表跳过已挽回订单。下单事件把对应行标记Recovered,从内置目录随机选推荐品生成感谢信;每周一9点汇总表格计算挽回金额与挽回率发邮件给店主。原文给出Ollama端点示例http://host.docker.internal:11434/api/chat,提示可换GPT-4o或Claude,折扣码需在Shopify自行创建。
这次做成什么
用本地Ollama的llama3.2搭建三封递进弃单挽回邮件流程,并用一条虚构结账与一条虚构下单事件分别走完“发出三封邮件”和“中途挽回跳过后续”两条路径。
准备什么
- 有管理员权限的Shopify测试店铺,可创建checkout与order两类webhook
- 本地或局域网可用的Ollama服务并已拉取llama3.2模型
- Google Sheets与Gmail的OAuth2凭证,以及一个含规定列的跟踪表格
- 已在Shopify创建CART10折扣码(或改用自有折扣码并同步改提示词)
具体怎么做
建跟踪表与webhook
按下方配置建Google Sheet列:Checkout Token、Email、Product、Price、Status、Recovery Link、Created At、Last Updated;在n8n加webhook节点,把URL填进Shopify后台的checkout创建/更新与order创建webhook;结账事件节点把字段写入表格,仅当表中无此token时启动后续等待序列。
三封递进邮件
用Wait节点分别等1小时、24小时、24小时;每个等待后先用Google Sheets查找节点按Checkout Token读当前行,IF判断Status为Recovered则直接结束分支;否则用HTTP请求节点POST到Ollama端点,body用下方对应阶段提示词(提醒/折扣/紧迫),把返回文案交给Gmail节点发出,并在第二、三封发出后分别把Status更新为Discount Sent、Urgency Sent。
下单挽回与感谢信
order创建webhook进来后按cart token找到表格行,把Status更新为Recovered;用一个含几款商品的内置列表随机挑一件推荐品;再调Ollama用感谢信提示词生成正文经Gmail发给客户。用于练习时可用Shopify后台手动下一笔测试单触发。
每周汇总邮件
加每周一9点定时触发,读取表格全部行,用代码节点统计Status为Recovered的行数与Price合计、总结账数,算出挽回率,拼成中文摘要经Gmail发给店主测试邮箱;先用三行手工数据验证公式正确再放开。
可直接复制的材料
三封递进邮件的Ollama提示词(本站独立编写)
三段分别用于三个HTTP请求节点;店铺名、折扣码、语气按你的品牌改;llama3.2中文能力有限,可改英文提示词。
你是独立站客服文案助手,店铺名“晨风小铺”,语气友好简短,输出中文邮件正文不超过120字,不要输出主题行之外的多余内容。
【第1封·1小时提醒】顾客 {{email}} 选购了 {{product}}({{price}}元)未完成付款,请提醒订单还为他保留,并附上结算链接 {{recovery_link}}。
【第2封·24小时折扣】同一订单仍未付款,请告知使用折扣码 CART10 可享九折,链接 {{recovery_link}},语气不催促。
【第3封·48小时紧迫感】同一订单最后一次提醒,说明折扣码 CART10 将于24小时后失效,链接 {{recovery_link}},语气克制不夸张。Ollama请求体与表格列配置(本站独立编写)
端点地址沿用原文示例,自托管n8n容器内访问宿主机Ollama才用host.docker.internal;其他环境改为实际地址。
{
"ollama_url": "http://host.docker.internal:11434/api/chat",
"ollama_body": {"model": "llama3.2", "stream": false, "messages": [{"role": "user", "content": "此处放入对应阶段提示词"}]},
"sheet_columns": ["Checkout Token", "Email", "Product", "Price", "Status", "Recovery Link", "Created At", "Last Updated"],
"status_values": ["New", "Reminder Sent", "Discount Sent", "Urgency Sent", "Recovered"],
"wait_hours": [1, 24, 24],
"weekly_summary": {"day": "Monday", "hour": 9}
}输入与输出示例
本站虚构演示,邮件正文为示意截断、汇总数字与两行示例自洽,未真实运行Ollama或Shopify。
输入
练习A:webhook收到checkout事件,token=ct_demo_001,email=demo@example.com,商品=手工陶杯,Price=129,Recovery Link=https://shop.example.com/recover/ct_demo_001,之后不下单。练习B:同样事件token=ct_demo_002,40分钟后收到对应order创建事件。对应输出
练习A:1小时后Status为New,Ollama返回提醒邮件正文“您的手工陶杯还在等您,点击链接即可完成结算……”,Gmail发出后Status=Reminder Sent;24小时后发出含CART10的折扣邮件,Status=Discount Sent;再过24小时发出紧迫感邮件,Status=Urgency Sent。练习B:order事件把ct_demo_002行更新为Recovered并发出含随机推荐品(如杯垫套装)的感谢信;1小时与24小时检查点读到Recovered后跳过,不再发任何挽回邮件。周一汇总:总结账2、挽回1、挽回率50%、挽回金额129元。做完检查这些
- 同一token重复收到checkout更新事件不会重复启动跟进序列或重复写入多行
- 下单后Status变为Recovered的行,后续1小时与24小时检查点均不再发信
- 三封邮件按顺序各只发一次,且第二、三封发出后Status正确更新
- 周一汇总邮件中的挽回金额等于所有Recovered行Price之和,挽回率分母为全部结账行数
容易卡住的地方
- 自托管n8n容器内localhost指向容器自身,连宿主机Ollama需用host.docker.internal或实际IP
- CART10折扣码必须先在Shopify后台创建,否则邮件里的码无法核销
- webhook需公网可达,Shopify测试单建议在测试店铺操作,避免给真实客户发练习邮件
- llama3.2小模型输出可能带多余前后缀,Gmail节点取值前建议用代码节点截取正文
- 等待节点总时长近49小时,中间重启或停用工作流会影响在途序列,测试期可先把等待改短
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Recover abandoned Shopify carts with Llama 3.2, Gmail, and Google Sheets
- 原作者
- Shaharuk Anik
- 原始发布日期
- 2026-10-06T05:20:17.739Z
- 来源
- https://n8n.io/workflows/20509