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

2026-09-25 · 原文发布日

网站销售预约聊天机器人:Gemini+Calendly+Sheets

网站聊天挂件通过webhook把每轮对话和历史状态发进来,工作流按步骤拼提示词交给Gemini生成简短回复,Gemini失败时回退Groq;从AI回复里解析隐藏JSON指令来决定下一步。访客同意预约就调Calendly API取三个工作日时段,选好并留下姓名邮箱后正式建会议并回确认和改期链接。成交线索和失败记录写入Google Sheets,同时用Gmail和Lark通知负责人,会后还会补录访客网站等信息。模板免费。

原文要点

这是n8n官方模板库中的免费工作流(编号19929,作者Anna Cole)。它把网站聊天挂件的消息通过webhook接入,每轮请求都携带对话历史和上一轮状态;按当前步骤拼提示词交给Google Gemini生成简短回复,Gemini失败或返回空文本时回退到Groq;从AI回复中解析隐藏的JSON指令(取时段、选时间、收集联系方式)决定下一步;访客同意预约后调Calendly API取三个工作日时段,选定并拿到姓名邮箱后正式建会议,回复确认和改期/取消链接;成交线索和失败记录写入Google Sheets的Booked Leads与Follow Up两个标签页,并用Gmail和Lark webhook通知负责人;建会后还会追问访客网站(无网站则问公司名和月营收)并回写表格、邮件补报。

这次做成什么

在自有n8n实例上部署这个销售预约聊天机器人模板,连通Gemini/Groq/Calendly/Sheets/Gmail/Lark,并用一条模拟webhook请求验证从对话到预约建会的整条链路。

准备什么

  • 一个可访问外网的n8n实例(自托管或n8n Cloud),能创建生产webhook
  • Google Gemini API密钥、Groq API密钥(回退用)、Gmail与Google Sheets账号
  • Calendly账号与一个已建好的event type及其URI;先确认你的账号计划包含API访问权限、能生成个人访问令牌
  • Lark群的自定义机器人webhook地址(没有可换成Slack或Teams)
  • 一个网站聊天挂件或能用curl发POST的测试环境

具体怎么做

  1. 导入模板并认清五个处理段

    打开n8n.io/workflows/19929点Use this workflow导入到自己的实例。从上到下辨认:Webhook触发器(接收message、history和上一轮状态)→Generate AI Prompt节点(按步骤拼提示词)→Gemini调用与Groq回退分支→解析回复中隐藏JSON指令的判断分支→Calendly取时段/建会、Sheets写入、Gmail与Lark通知等输出节点。原文只公开流程说明,节点内部参数需在你导入后的实例里逐个核对。

  2. 配置五组凭据

    在n8n的Credentials里新建:Google PaLM API(填Gemini密钥)、Groq API密钥、Gmail OAuth2、Google Sheets OAuth2,以及一个HTTP Header Auth凭据,Header名填Authorization、值填Bearer加你的Calendly个人访问令牌。然后回到工作流,把这些凭据分别指派到对应节点。

  3. 填Workflow Configuration参数

    打开Set Workflow Parameters / Workflow Configuration节点,把Calendly event type URI(形如https://api.calendly.com/event_types/XXXX)、时区与可预约小时窗口、公司业务介绍短文、负责人邮箱、Lark webhook URL全部换成自己的值。时段窗口决定AI给访客推哪三个工作日时段,先设窄一点便于测试。

  4. 建Google Sheets两张表

    新建一个电子表格,建Booked Leads和Follow Up两个标签页,列名按下方材料中的表头建好。回到工作流的Google Sheets节点,选择这个文档和对应标签页,让字段映射能对上姓名、邮箱、预约时间、改期链接等列。

  5. 接webhook并发测试请求

    激活工作流,复制Webhook节点的Production URL。你的聊天挂件需POST message和history,并把上一轮响应里的状态字段原样回传(slotsOffered、meetingBooked、leadInfo、cancelUrl、rescheduleUrl、availableWindowText)。先用下方测试数据curl一遍:第一轮发访客咨询,确认AI回复中含三个时段建议且状态被正确回显,再继续发选时段和留姓名邮箱的两轮,最后检查Calendly里出现会议、Sheets写入一行、Gmail和Lark收到通知。

可直接复制的材料

webhook第一轮测试请求体

本站独立编写的最小请求体,字段名以模板Setup说明为准,实际键名需在你导入的工作流Webhook节点里核对后再用。

{
  "message": "你好,我想了解一下你们的咨询服务,可以约个电话聊聊吗?",
  "history": [],
  "state": {
    "slotsOffered": [],
    "meetingBooked": false,
    "leadInfo": {},
    "cancelUrl": "",
    "rescheduleUrl": "",
    "availableWindowText": ""
  }
}

Google Sheets表头(两行,分别贴到两个标签页第一行)

本站按模板描述的字段设计的表头,列顺序需与Google Sheets节点里的映射一致;模板原列名以你导入后的节点映射为准。

Booked Leads: 姓名,邮箱,预约时间,会议链接,改期链接,取消链接,访客网站,公司名,月营收,登记时间,状态
Follow Up: 访客消息摘要,失败原因,对话轮数,发生时间,是否已人工跟进

资格筛选步骤的提示词(本站独立改写示例)

本站独立编写的步骤提示词示例,非模板原文;占位符需改成你工作流里实际的变量表达式,并在Generate AI Prompt节点里核对原提示词结构。

你是某某公司的网站预约助手。规则:
1. 每次回复不超过60字,语气友好,一次只问一个问题。
2. 先判断访客意图:只是咨询、想预约、还是不符合服务对象。
3. 想预约且尚未给时段时,在回复末尾另起一行输出隐藏指令:{"action":"fetch_slots"}
4. 访客已选定某个时段后,询问姓名和邮箱;收齐后输出:{"action":"book","slot":"<访客选定的时段>","name":"<姓名>","email":"<邮箱>"}
5. 不要在正文中向访客展示这些JSON指令。
当前可预约窗口:{{availableWindowText}}
对话历史:{{history}}
访客最新消息:{{message}}

输入与输出示例

本站虚构演示,链接与时间为示意,未真实调用Calendly;实际字段结构以你导入的工作流输出为准。

输入

向生产webhook POST:{"message":"我想预约下周的咨询,我叫林晓,邮箱linxiao@example-corp.cn","history":["访客:可以约个电话吗","助手:可以,下周二10点、周三14点、周四16点您哪个方便?"],"state":{"slotsOffered":["2026-10-06T10:00","2026-10-07T14:00","2026-10-08T16:00"],"meetingBooked":false,"leadInfo":{},"cancelUrl":"","rescheduleUrl":"","availableWindowText":"周二至周四 10:00-17:00"}}

对应输出

预期回复(示意):{"reply":"好的林晓,已为您预约10月7日(周三)14:00的咨询会议,确认邮件已发送到linxiao@example-corp.cn。如需调整可用此链接改期:https://calendly.com/reschedulings/XXXXXX","state":{"meetingBooked":true,"leadInfo":{"name":"林晓","email":"linxiao@example-corp.cn"},"rescheduleUrl":"https://calendly.com/reschedulings/XXXXXX","cancelUrl":"https://calendly.com/cancellations/YYYYYY"}},同时Booked Leads新增一行,Gmail与Lark收到新预约通知。

做完检查这些

  • curl第一轮请求返回200且回复是面向访客的简短中文,正文里不含JSON指令文本
  • 完成三轮模拟对话后Calendly后台出现对应event type的会议,受邀人邮箱正确
  • Booked Leads标签页新增一行且姓名、邮箱、预约时间、改期链接四列都有值
  • 负责人Gmail邮箱和Lark群各收到一条包含访客姓名与预约时间的通知
  • 把Gemini凭据临时改错再发请求,工作流能走Groq回退分支仍返回回复

容易卡住的地方

  • Calendly的API访问权限取决于账号计划,并非所有计划都能生成个人访问令牌,先在自己的Calendly后台确认可用性,否则这一步会卡住
  • 聊天挂件必须把上一轮返回的状态字段原样回传,漏传slotsOffered会导致AI重复推时段或无法建会
  • Gemini返回空文本时才回退Groq,提示词若让模型把指令写进正文,解析分支会走错方向
  • Sheets列名与节点映射不一致会静默写空行,建表后先在节点里重选一次文档
  • 时区和小时窗口在配置节点里写死,跨国访客看到的时间可能与你预期不符

原文与作者资料 ↗

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

原文标题
Book website sales calls with Gemini, Groq, Calendly, Gmail and Sheets
原作者
Anna Cole
原始发布日期
2026-09-25T09:20:51.452Z
来源
https://n8n.io/workflows/19929