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

2026-09-15 · 原文发布日

批发订单邮件自动核对价格表并回复客户

面向批发业务的n8n模板:每分钟检查Gmail中主题为wholesale order的未读邮件,过短的邮件直接进错误日志;用GPT-4o-mini把正文抽取成结构化的客户信息、PO号、交期和明细行。然后对照Google Sheets价格表逐行校验SKU是否有效、是否在售、是否满足整箱倍数、报价是否一致。有问题就自动回邮件列明需修改项,无问题则回确认邮件并附定价明细;无论结果如何都记入订单表、Telegram通知跟单员,周一早八点再发上周订单AI摘要。

原文要点

原模板用Gmail触发器每分钟匹配 is:unread subject:(wholesale order) 的未读邮件,规范发件人、主题、时间和正文,过短邮件进错误日志;gpt-4o-mini把正文抽取为客户信息、PO号、交期、备注和明细行的结构化数据;再读Google Sheets的PriceList标签逐行校验SKU有效、在售、整箱倍数和报价一致性;有问题回修改要求邮件,无问题回含定价的确认邮件;两路都写Orders表、发Telegram通知、把原邮件标记已读;每周一08:00汇总上周订单生成AI摘要邮件和Telegram简报。设置需Gmail/Sheets OAuth2、OpenAI凭据、Telegram机器人及PriceList、Orders、Errors三个标签。

这次做成什么

复刻一条批发订单邮件自动核对与回复流水线:邮件进来自动抽取明细、对照价格表校验、按结果回邮件并留痕通知。本站给出独立设计的字段映射、抽取提示词和合成测试数据,供导入模板后逐项替换核对。

准备什么

  • 可接收订单邮件的Gmail账号及OAuth2凭据
  • OpenAI API凭据且账号可用gpt-4o-mini模型
  • 含PriceList、Orders、Errors三个标签的Google Sheets及OAuth2凭据
  • 已创建可发消息的Telegram机器人和目标chat ID
  • 一个n8n实例并已获取该模板工作流

具体怎么做

  1. 配置Gmail触发与长度分流

    在Gmail Trigger节点填搜索式 is:unread subject:(wholesale order),每分钟轮询;后续节点把sender、subject、receivedAt、body整理成统一字段,用IF节点判断body长度,过短(本站练习设为少于80字符)的写入Errors标签并终止该分支。

  2. 接入OpenAI抽取订单结构

    在OpenAI节点选gpt-4o-mini,粘贴下方抽取提示词,把body作为变量传入,要求只返回JSON,字段含customer、poNumber、deliveryDate、notes和items数组(sku、qty、quotedPrice)。

  3. 准备并读取价格表

    在PriceList标签建列sku、product、unit_price、case_pack、status,填入下方合成示例行;用Google Sheets节点整表读出后按sku建查找表。

  4. 逐行校验并分支

    循环items逐行检查:sku是否存在、status是否为active、qty是否为case_pack整数倍、quotedPrice是否等于unit_price;收集问题列表,用IF节点按问题列表是否为空分两路。

  5. 回复、留痕与通知

    问题路:Gmail节点回复修改要求邮件列出每行问题;无问题路:回复确认邮件附各SKU定价明细。两路都追加一行到Orders标签(状态分别为needs_revision/confirmed),Telegram节点向跟单chat ID发摘要,最后把原邮件标记已读。

  6. 开启周一摘要

    启用模板中的Schedule Trigger(周一08:00),读Orders表最近7天记录,交给OpenAI生成简短摘要,经Gmail发出并把收件人改为你的真实邮箱,再发一条Telegram简报。

可直接复制的材料

订单正文抽取提示词(喂给gpt-4o-mini)

本站独立编写的抽取提示词,{{$json.body}}需按你的n8n表达式写法替换为实际正文变量;字段名须与后续校验节点一致。

你是批发订单解析助手。从下面的客户邮件正文中抽取订单信息,只输出一个JSON对象,不要输出任何解释、不要使用代码块。
字段要求:
- customer: 对象,含 name(客户名)、email(发件邮箱)、company(公司,没有则为空字符串)
- poNumber: 采购单号字符串,没有则为空字符串
- deliveryDate: 期望交期,格式YYYY-MM-DD,没有则为空字符串
- notes: 备注字符串
- items: 数组,每个元素含 sku(货号字符串)、qty(数量,整数)、quotedPrice(客户报价,数字,邮件没写单价则为null)
邮件正文如下:
{{$json.body}}

合成PriceList测试数据(CSV)

本站虚构练习数据,非真实商品;导入Google Sheets的PriceList标签后使用。

sku,product,unit_price,case_pack,status
SKU-1001,有机燕麦片1kg,45.00,12,active
SKU-1002,冷压花生油5L,128.00,6,active
SKU-1003,手工皂礼盒,66.00,24,inactive
SKU-1004,杂粮组合装2kg,58.50,10,active

修改要求邮件正文模板

{{#each}}为示意循环写法,实际在n8n中可把问题列表先拼成一段文本再插入邮件正文;变量需替换为节点输出。

主题:关于您的批发订单 {{poNumber}} 需要修改

您好 {{customer.name}}:
我们核对您的订单时发现以下问题,请修改后回复本邮件:
{{#each issues}}
- 货号 {{sku}}:{{problem}}
{{/each}}
修正后我们会尽快确认并发货安排。谢谢!

输入与输出示例

本站虚构演示,按上述合成价格表手工推导,非实际运行结果。

输入

一封合成练习邮件:发件 buyer@demo-retail.cn,主题 wholesale order,正文:您好,PO号PO-2026-031,希望2026-10-15前到货。请报价:SKU-1001 来24件,单价45;SKU-1002 来5件,单价128;SKU-1003 来48件,单价66。联系人王琳。

对应输出

校验结果:SKU-1001通过(24是12的倍数、价格一致、在售);SKU-1002数量5不是case_pack 6的整数倍→问题行;SKU-1003状态为inactive→问题行。流程走修改要求分支:回复邮件列明两条问题,Orders表追加一行状态needs_revision,Telegram推送“PO-2026-031需修改:2处问题”,原邮件标记已读。

做完检查这些

  • 发送符合搜索式的测试邮件后,Orders标签在一两个轮询周期内出现对应新行且状态正确
  • 数量不是整箱倍数或SKU停售时,客户收到列明具体问题的修改要求邮件而非确认邮件
  • 全部行合规时,确认邮件包含每个SKU的单价与小计,且原邮件在Gmail中变为已读
  • 过短邮件不出现在Orders表,而是写入Errors标签
  • Telegram在两种结果下都能收到含PO号的通知

容易卡住的地方

  • Gmail触发器只认匹配搜索式的未读邮件,主题不含wholesale order的订单不会进入流程
  • OpenAI输出必须严格为JSON,正文含表格或图片附件时抽取可能缺行,需用测试邮件验证
  • PriceList列名与校验节点的字段映射不一致会导致全部SKU被判无效
  • 周一摘要节点里原模板收件人是占位邮箱test@atlr.dev,必须改成自己的地址再启用
  • 标记已读发生在写表之后,中途失败会重复处理同一邮件,必要时自行加去重

原文与作者资料 ↗

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

原文标题
Validate wholesale order emails against a Google Sheets price list with Gmail and GPT-4o
原作者
Khairul Muhtadin
原始发布日期
2026-09-15T06:41:39.580Z
来源
https://n8n.io/workflows/19606