2026-09-24 · 原文发布日
Google 评论自动回复与周报
每小时轮询 Google Business Profile 新评论,已有店主回复则跳过;规范 ID、作者、日期、星级和文本后,OpenAI 起草短回复并输出情绪、单一根因标签、涉及员工和投诉摘要,写入 Sheets 评论日志。4–5 星且无投诉自动回帖,其余草稿送 Slack 批准/拒绝,批准后才发布。每周一 9 点读近 7 天日志,按可修复根因汇总掉星,OpenAI 生成 HTML 洞察经 Gmail 发给店主。
原文要点
作者 Rahul Joshi 在 n8n 模板站发布的免费工作流:每小时轮询 Google Business Profile 新评论并跳过已有店主回复者;OpenAI 生成短回复草稿、情绪、单一根因标签、涉及员工和投诉摘要后写入 Google Sheets(表头共 13 列:review_id 至 reply_status);4–5 星且无投诉自动回帖,其余送 Slack 批准/拒绝,批准后回帖;每周一 9 点读近 7 天日志,按可修复根因统计掉星(5 减评分),OpenAI 写 HTML 洞察经 Gmail 发店主。需连接 GBP、OpenAI、Sheets、Slack、Gmail 五种凭据。
这次做成什么
在 n8n 里搭一条“评论监控→AI 起草→分支审批→日志→周报”的完整链路。原模板可免费领取后照原界面核对细节,本站不给可导入 JSON,而是把触发、处理、分支、输出的字段映射和一条测试数据写清,配合本站独立撰写的 OpenAI 提示词即可自行复现。
准备什么
- n8n 账号(云端或自托管)并可访问 n8n.io/workflows/19885 模板页
- Google Business Profile 商家账号且对该门店有管理权限(OAuth2)
- OpenAI API 密钥(调用按官方计费,非免费)
- Google Sheets、Slack、Gmail 各一个可用账号(均为 OAuth2)
- 已建好含 13 列表头的 Google Sheet
具体怎么做
领取模板并连接五套凭据
打开 n8n.io/workflows/19885 免费领取模板导入 n8n;在凭据区分别新建 Google Business Profile OAuth2、OpenAI API Key、Google Sheets OAuth2、Slack OAuth2、Gmail OAuth2,逐节点绑定,不共用错账号。
配置评论触发与过滤
在 GBP 评论触发器中选自己的商家账号和门店位置,轮询间隔保持每小时;其后的过滤逻辑判断评论是否已有 owner reply,有则直接丢弃,避免重复回复。
规范字段并调用 OpenAI
把每条评论整理为统一字段:review_id、review_name、review_date、reviewer、star_rating(数字)、review_text。OpenAI 节点系统提示词中把作者预留的商家名和联系邮箱占位符替换为你自己的,用户提示词用本站 artifacts 里的起草提示词全文。
写 Sheets 并按条件分支
Google Sheets 节点把 13 列逐列映射写入评论日志(含 sentiment、root_cause、staff_mentioned、fixable、complaint_summary、draft_reply、reply_status)。分支条件:star_rating≥4 且根因标签为无投诉 → 调 GBP 回帖节点直接发布;否则把草稿发到指定 Slack 频道等待批准/拒绝,批准分支才调用回帖节点并把 reply_status 更新为已发布。
配置周报分支并小流量测试
第二个流程用每周一 9 点的定时触发器,读 Sheets 近 7 天行,按 fixable 为真的根因标签汇总掉星数(5−star_rating),交给 OpenAI 生成 HTML 摘要,Gmail 节点发给店主邮箱。测试时用下文的合成评论先跑通自动回帖与 Slack 审批两条路径,再放开真实门店。
可直接复制的材料
OpenAI 评论分析起草提示词(本站独立撰写)
本站独立编写的示例提示词,需替换【商家名】【联系邮箱】两处占位;根因标签集合请按自己门店业务调整。原模板的提示词需在原工作流中核对,本站未照搬。
你是【商家名】的客服回复助手。请阅读下面这条 Google 评论,只输出一个 JSON 对象,不要输出其他文字:
{
"sentiment": "正面|负面|中性",
"root_cause": "从以下标签中只选一个:出餐慢|服务态度|卫生问题|价格争议|菜品质量|环境问题|无投诉",
"staff_mentioned": "评论中点名的员工姓名,没有则填空字符串",
"fixable": true或false(根因是否可通过运营手段修复),
"complaint_summary": "一句话概括投诉内容,无投诉填空字符串",
"draft_reply": "80 字以内的中文公开回复,语气诚恳,不辩解,结尾留下联系邮箱【联系邮箱】"
}
评论星级:{star_rating}
评论内容:{review_text}Google Sheets 评论日志表头(依原文给出的 13 列)
原文 Setup 明确列出这组表头。建表后需在两个 Sheets 节点中各选一次文档与工作表;reply_status 建议取值:待审批/已发布/已拒绝。
review_id, review_name, review_date, reviewer, star_rating, review_text, sentiment, root_cause, staff_mentioned, fixable, complaint_summary, draft_reply, reply_status合成测试评论数据(本站虚构)
本站虚构练习数据,review_id 与姓名均为编造。建议在测试门店或手动执行节点时用,不要直接写入生产日志。
[
{"review_id":"rev-9001","reviewer":"测试用户甲","star_rating":5,"review_text":"咖啡很好喝,店员小林很热情,还会再来。","expected":"5星无投诉→自动回帖分支"},
{"review_id":"rev-9002","reviewer":"测试用户乙","star_rating":2,"review_text":"周末等了四十分钟才上菜,结账还搞错了,店员小王态度不错但流程太乱。","expected":"2星有投诉→Slack 审批分支,root_cause 应为出餐慢,staff_mentioned 应为小王"}
]输入与输出示例
本站虚构演示,提示词输出为示意,非原作者实测结果,未实际调用 OpenAI。
输入
rev-9002:2 星,评论文本“周末等了四十分钟才上菜,结账还搞错了,店员小王态度不错但流程太乱。”对应输出
{"sentiment":"负面","root_cause":"出餐慢","staff_mentioned":"小王","fixable":true,"complaint_summary":"等位上菜耗时约四十分钟且结账出错","draft_reply":"非常抱歉让您久等并在结账时出错。我们已记录当天流程问题并安排整改,欢迎再次光临或来信至 service@example.com 反馈。"} → 该条进入 Slack 审批分支,批准后发布并把 reply_status 置为已发布。做完检查这些
- 触发器每小时执行后,已有店主回复的评论不出现在后续日志中
- rev-9001 这类 5 星无投诉评论走自动回帖分支,Sheets 中 reply_status 直接为已发布
- rev-9002 这类低分投诉在 Slack 频道出现批准/拒绝按钮,拒绝时不发布任何回复
- 13 列在 Sheets 中全部有值且 star_rating 为数字,周一 9 点邮件按可修复根因汇总掉星数(5−评分),并突出掉星最多的可修复问题
容易卡住的地方
- 两个 Sheets 节点(写入日志、读取周报)必须各自选对同一文档和工作表,否则周报读不到数据
- OpenAI 提示词里的商家名和联系邮箱占位符忘记替换会直接出现在公开回复里
- 分支条件是“4–5 星且无投诉”两者同时成立,仅看星级会把带投诉的 5 星评论直接发出去
- Slack 拒绝路径也要有终止处理,否则草稿会滞留;OpenAI 与邮件发送均可能产生费用
- 原模板免费领取,本站未核对每个节点的最新界面,导入后应以原工作流实际参数为准
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Reply to Google reviews and send weekly insights with OpenAI and Slack
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-09-24T07:47:27.616Z
- 来源
- https://n8n.io/workflows/19885