2026-09-30 · 原文发布日
Shopify客服邮件按订单记录自动起草回复
每分钟轮询Gmail未读邮件,从主题正文找订单号(没有就按发件人邮箱查),用Shopify GraphQL Admin API拉取订单状态、物流、追踪号和明细,连同店铺政策发给Claude,返回固定schema的JSON:意图、语言、置信度、是否需人工和回复草稿。路由由代码节点决定而非模型:在意图白名单内、过置信度阈值且订单邮箱匹配才直接发送,否则存草稿并通知Slack,退款取消一律只起草不发送。
原文要点
该免费模板每分钟轮询Gmail收件箱未读邮件,清理引用回复后从主题或正文找订单号(如#1042),找不到则按发件人邮箱查单;用Shopify Dev Dashboard应用的凭据换取24小时令牌,再以一次GraphQL Admin API调用取订单状态、履约、承运商、追踪号、预计送达、明细和订单邮箱;连同店铺政策发给Claude,返回固定schema的JSON(意图、语言、置信度、是否需人工、一句话摘要、回复草稿)。路由由Code节点按规则决定:意图在允许发送白名单内、置信度过阈值(默认0.8)且订单类问题的订单邮箱与发件人匹配才直接发送;退款、积分、取消、改地址一律只起草;其余存草稿并通知Slack或升级人工,垃圾邮件终止。仅用Gmail、HTTP Request、Code、Switch、Slack核心节点。
这次做成什么
在测试店铺环境里搭好这套客服邮件分流流程,用模板自带的固定示例邮件跑通“查单→起草→代码路由”全链路,再练习调整允许发送的意图白名单。
准备什么
- Gmail账号与Slack工作区及各自n8n凭据
- Anthropic API密钥
- Shopify店铺及Dev Dashboard中创建的带read_orders权限的应用
- n8n Cloud或自托管环境(仅用核心节点)
具体怎么做
接入Gmail触发与发送
在Gmail触发节点和两个Gmail节点上选择Gmail凭据。触发器每分钟读取收件箱未读邮件;如果客服与其他邮件共用邮箱,按模板建议加标签过滤器,只监听客服标签。
配置Shopify应用与令牌
在Shopify Dev Dashboard创建应用,勾选read_orders权限范围,发布并安装到店铺。在n8n的Get a Shopify token节点上建Custom Auth凭据,body填入client_id和client_secret的JSON。流程每次运行时换取24小时令牌,再用一个GraphQL Admin API调用取订单全部所需字段。
配置Claude与Slack
新建名为x-api-key的HTTP Header Auth凭据,值为Anthropic API密钥,绑定到Classify and draft with Claude节点。在两个Slack节点(Ask the team to review、Escalate to a person)选择Slack凭据,频道名取自Settings节点。
编辑Settings并跑固定示例
在Settings节点填店名、店铺子域名、退货窗口、配送承诺、品牌语气、允许直接发送的意图列表、置信度阈值(默认0.8)、签名和披露语。点击Test workflow,用模板已固定的示例邮件端到端运行,核对Claude返回的JSON是否符合固定schema。
验证代码路由规则(本站练习)
构造三封合成测试邮件分别命中三条路径:一封物流查询且订单邮箱匹配(应直接发送)、一封意图不在白名单(应存草稿并通知Slack)、一封退款请求(应只起草不发送)。确认路由由Code节点规则而非模型决定。
可直接复制的材料
Settings节点参考配置
本站独立编写的示例值;allowedSendIntents应先从空或小集合开始,观察约两周草稿质量后再逐步扩充;披露语按店铺合规要求改写。
{
"storeName": "山径户外用品",
"shopSubdomain": "shanjing-outdoor",
"returnWindowDays": 30,
"shippingPromise": "工作日16点前下单当天发货,瑞士境内1-3天送达",
"brandVoice": "简洁友好,先给结论再给细节",
"allowedSendIntents": ["shipping_status", "order_status", "product_question"],
"confidenceBar": 0.8,
"signature": "山径户外客服团队",
"disclosureLine": "本回复由AI助手起草并发送,如有疑问请直接回复本邮件。",
"slackChannel": "#support-review"
}合成测试邮件
本站独立编写的虚构测试邮件;订单号需在测试店铺中真实存在或改用模板固定示例;邮箱为测试地址。
发件人:lihua.test@example.com
主题:我的订单 #1042 什么时候到?
正文:你好,我上周三下单的登山杖(订单#1042)到现在还没有物流更新,麻烦帮我查一下,谢谢!输入与输出示例
本站虚构演示,JSON字段遵循模板说明的固定schema,数值与文案均为示意,非实际运行结果。
输入
合成测试邮件:lihua.test@example.com询问订单#1042物流,订单记录显示已发货、承运商SwissPost、追踪号99.00.123456、订单邮箱与发件人一致对应输出
Claude返回JSON:{"intent":"shipping_status","language":"zh","confidence":0.92,"needs_human":false,"summary":"客户询问订单#1042物流进度","reply":"您好,您的订单#1042已由SwissPost寄出,追踪号99.00.123456,预计1-3个工作日送达……"};Code节点判定:意图在白名单、置信度0.92≥0.8、邮箱匹配→直接经Gmail在会话中回复并附披露语。做完检查这些
- Gmail触发器每分钟轮询且只处理收件箱未读邮件
- Shopify令牌节点使用read_orders应用的client_id和client_secret成功换取令牌
- Claude返回的JSON包含intent、language、confidence、needs_human、summary、reply六个字段
- 意图不在白名单或置信度低于阈值的邮件存为草稿并触发Slack通知
- 退款或取消类请求只生成草稿,绝不直接发送
容易卡住的地方
- Shopify应用未发布并安装到店铺会导致令牌换取失败
- 置信度阈值默认0.8,贸然调低会让低质量草稿直接发出
- 订单类邮件若订单邮箱与发件人不一致会转人工,这是设计而非故障
- 在既有会话串中的回复一律转人工处理,不要用该场景测试直接发送
- 模板说明按两周草稿观察周期逐步扩充白名单,不要第一天就放开全部意图
- x-api-key凭据名称需与Claude节点引用一致,否则请求被拒
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Answer Shopify support emails with Gmail, Shopify, Claude and Slack
- 原作者
- Amplence
- 原始发布日期
- 2026-09-29T18:54:25.399Z
- 来源
- https://n8n.io/workflows/20178