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

2026-10-07 · 原文发布日

Telegram客服机器人:Gemini按FAQ自动回复

该n8n流程监听Telegram机器人消息,读取Google Sheets里的FAQ表和你的业务信息,用Gemini严格基于FAQ生成回复并保留每会话10条短时记忆,随后再次用Gemini判断该对话是「已解答」还是「需要人工」,把对话记录追加到Sheets日志;若需人工则通过Telegram通知店主。FAQ随时改表即生效,无需动流程。作者称Gemini免费额度即可起步。

原文要点

该n8n工作流用Telegram Trigger监听客户发给你的机器人的消息,加载业务信息并从Google Sheets读取整张FAQ表;用Google Gemini(每个会话保留10条消息的短时记忆)严格基于FAQ和业务信息、按客户语言生成回复并发回Telegram;随后再次调用Gemini把该轮对话分类为「Answered」或「Needs a person」,把对话追加到Sheets的Log标签页;如需人工,则向店主的Telegram发提醒并记录交接。FAQ只改表格即生效,无需动流程。作者称Gemini免费额度足够起步。

这次做成什么

搭一个Telegram FAQ客服机器人:配好三个凭据与两张表,填入店主chat ID,用本站虚构FAQ数据实测「命中FAQ自动答复」「超纲问题转人工并通知店主」两条路径。

准备什么

  • Telegram账号,并已通过@BotFather创建机器人拿到token
  • Google AI Studio的Gemini API密钥,免费档即可开始测试
  • Google账号及Sheets OAuth2凭据,建有FAQ和Log两个标签页的表格
  • 店主本人Telegram的chat ID,用于接收转人工提醒

具体怎么做

  1. 建表与填FAQ

    在Google Sheets新建表格:FAQ标签页设Question、Answer两列,先填3-5条本站示例问题;Log标签页设Time、Customer、Message、Reply、Needs a person五列;把表格ID复制下来备用。

  2. 配置三类凭据

    在n8n新建Telegram凭据填BotFather给的token;新建Google Gemini(PaLM) API凭据填AI Studio密钥并挂到两个Gemini节点;新建Google Sheets OAuth2凭据挂到读写节点。打开模板设置字段,填入店主chat ID、FAQ文档ID、Log文档ID。

  3. 核对回复提示词的约束

    打开生成回复的Gemini节点,确认系统指令要求「只依据FAQ和业务信息回答,FAQ没有就如实说不知道」,并使用客户消息的语言;如需调整业务介绍,改工作流设置里的业务信息字段即可。

  4. 激活流程并实测命中路径

    激活工作流后,用测试账号向机器人发送FAQ里有的问题(如「营业时间」),检查Telegram收到基于FAQ的回复,且Log新增一行、Needs a person为否。

  5. 实测转人工路径

    再问一个FAQ没有的问题(如「能帮我定制一批刻字logo吗」),Gemini应回复无法回答并把该轮分类为Needs a person;检查店主Telegram收到提醒、Log该行标记为需人工。

可直接复制的材料

FAQ回复生成提示词(本站独立编写)

本站独立编写示例;店铺名称、营业时间、包邮规则需替换为你的业务信息,模板原节点的具体写法以原工作流为准。

你是「晨光文具店」的客服助手。规则:
1. 只能依据下面提供的FAQ内容和店铺信息回答,禁止编造FAQ中不存在的信息。
2. 使用与客户消息相同的语言回复。
3. 如果FAQ里没有答案,礼貌说明暂时无法回答该问题,并表示会转交人工处理。
4. 回复控制在120字以内,语气友好。

店铺信息:晨光文具店,营业时间每天9:00-21:00,满59元包邮。

FAQ内容:
{{$json.faqText}}

客户消息:
{{$json.customerMessage}}

对话分类提示词(本站独立编写)

本站独立编写示例,对应模板的第二次Gemini调用;分类结果决定后续是否通知店主。

判断下面这轮客服对话的状态,只输出一个词:
- 若机器人的回复直接解答了客户问题,输出:Answered
- 若机器人表示无法回答、客户情绪激动、或客户明确要求找人工,输出:Needs a person

客户消息:{{$json.customerMessage}}
机器人回复:{{$json.botReply}}

只输出 Answered 或 Needs a person,不要输出其他内容。

FAQ表与Log表测试数据

本站虚构测试数据,客户名为测试账号,不涉及真实个人信息;直接在Sheets里增删FAQ行,下一条消息即生效。

FAQ表(Question | Answer):
你们的营业时间是什么 | 我们每天9:00到21:00营业,节假日不休。
满多少包邮 | 单笔订单满59元即可包邮。
支持退货吗 | 签收后7天内、未拆封的商品支持退货。

Log表头:Time | Customer | Message | Reply | Needs a person
示例行:2026-10-08 10:15 | @test_user | 满多少包邮 | 单笔订单满59元即可包邮哦! | 否

输入与输出示例

本站虚构演示,非原作者运行结果;时间与内容均为示意,实际回复措辞由Gemini生成会有差异。

输入

测试账号 @test_user 向机器人发送:「你们周末几点关门?」

对应输出

机器人回复:「我们每天营业到晚上9点(21:00),周末也一样,节假日不休哦。」Log新增一行:Time=2026-10-08 20:30,Customer=@test_user,Message=你们周末几点关门,Reply=上述回复,Needs a person=否。随后发送「能不能帮我谈批发价,我要找你们老板」,机器人回复无法处理并转人工,店主Telegram收到提醒,Log该行Needs a person=是。

做完检查这些

  • FAQ中已有问题能在Telegram收到基于FAQ内容的回复,且Log表正确追加一行
  • 超纲问题触发Needs a person分类,店主chat ID收到Telegram提醒
  • 只在Sheets新增一条FAQ、不改流程,再发对应问题机器人即可用新条目回答
  • 同一会话连续对话时能记住最近几轮上下文(模板为每会话10条消息记忆)

容易卡住的地方

  • 店主chat ID要填数字ID不是用户名,可先用机器人给自己发消息再查ID
  • Gemini按调用计费,作者称免费档够起步,但消息量大时要留意额度
  • FAQ表结构必须是Question、Answer两列,改列名会导致读取失败
  • 分类提示词若输出多余文字,会影响后续Needs a person分支判断,需约束只输出固定词

原文与作者资料 ↗

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

原文标题
Answer Telegram customer FAQs with Gemini and Google Sheets
原作者
Cristian Dinca
原始发布日期
2026-10-07T12:12:24.855Z
来源
https://n8n.io/workflows/20628