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

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或自托管环境(仅用核心节点)

具体怎么做

  1. 接入Gmail触发与发送

    在Gmail触发节点和两个Gmail节点上选择Gmail凭据。触发器每分钟读取收件箱未读邮件;如果客服与其他邮件共用邮箱,按模板建议加标签过滤器,只监听客服标签。

  2. 配置Shopify应用与令牌

    在Shopify Dev Dashboard创建应用,勾选read_orders权限范围,发布并安装到店铺。在n8n的Get a Shopify token节点上建Custom Auth凭据,body填入client_id和client_secret的JSON。流程每次运行时换取24小时令牌,再用一个GraphQL Admin API调用取订单全部所需字段。

  3. 配置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节点。

  4. 编辑Settings并跑固定示例

    在Settings节点填店名、店铺子域名、退货窗口、配送承诺、品牌语气、允许直接发送的意图列表、置信度阈值(默认0.8)、签名和披露语。点击Test workflow,用模板已固定的示例邮件端到端运行,核对Claude返回的JSON是否符合固定schema。

  5. 验证代码路由规则(本站练习)

    构造三封合成测试邮件分别命中三条路径:一封物流查询且订单邮箱匹配(应直接发送)、一封意图不在白名单(应存草稿并通知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