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

2026-09-29 · 原文发布日

用Retell AI电话 agent 自动预约汽修店时段

这套n8n模板给Retell AI语音 agent 做后端:电话 agent 通过webhook调用查空档、预约、取消、改约四个函数。工作流读取Google Calendar当天日程算出可约时段,下单前二次确认冲突再建事件,取消和改约按来电人姓名匹配日程,每次变动都通过Gmail通知店主。店名、营业时间、休息日和单时长都在配置节点里改。

原文要点

该n8n模板为Retell AI电话agent提供后端:一个POST webhook接收Retell函数调用,先校验call_id,再按函数名路由到查空档、预约、取消、改约四个分支。查空档读取当天Google Calendar事件,结合店配置中的休息日、营业时段和单时长返回上午/下午空闲段;预约前二次确认时段仍空闲再建事件;取消和改约按来电人姓名匹配当日事件,改约先建新事件再删旧事件。每次变动用Gmail通知店主。店名、店主邮箱、日历ID、时区、营业时间、休息日、单时长都在Set Shop Configuration节点配置。Retell函数参数有明确格式:日期YYYY-MM-DD,时间如9:00 AM。

这次做成什么

搭好这套电话预约后端,并用一条合成的Retell webhook请求在n8n里手动触发测试整条路由,确认查空档返回正确时段、预约后店主收到Gmail通知。

准备什么

  • n8n实例(云端或自托管均可),已导入或手工复刻该模板
  • Retell AI账号,含一个电话号码和已建voice agent
  • Google账号:一个店铺日历,一个发通知用的Gmail(OAuth2凭据在n8n里建)
  • 可用curl或n8n的测试webhook功能发送POST请求

具体怎么做

  1. 配置n8n凭据与店铺参数

    在n8n中分别创建Google Calendar和Gmail的OAuth2凭据。打开Set Shop Configuration节点,把shop_name、owner_email、calendar_id、timezone、opening_hours、closed_days、appointment_length改成你的店铺实际值,例如时区Asia/Shanghai、单时长60分钟、周日休息。

  2. 理解webhook路由并验证call_id

    工作流入口是POST webhook。进入后第一个判断是请求体里有没有Retell的call.call_id,没有就报错返回。之后Switch节点按args.function_name分流到check_availability、book_appointment、cancel_appointment、reschedule_appointment四条分支,每条分支用Google Calendar节点读或写日历。

  3. 用合成请求手动测试查空档分支

    激活前先点webhook节点的Listen for test event,用下方artifacts里的测试JSON发一条POST,函数名为check_availability、date为明天、time_of_day为morning。观察工作流执行:Google Calendar节点读出当天事件后,Code节点按营业时段和单时长扣掉已占用时间,返回空闲时段数组。

  4. 测试预约分支与Gmail通知

    再发一条book_appointment请求,用上一步返回的某个空闲时段。分支会解析caller_name、caller_phone、vehicle、service_needed、appointment_date、appointment_time,先重新查该时段是否仍空闲,空闲才创建日历事件,然后Notify Owner节点经Gmail发信给owner_email。检查你的日历是否出现新事件、邮箱是否收到通知。

  5. 在Retell AI里挂接四个函数

    激活工作流,复制production webhook URL。到Retell AI控制台给agent添加四个custom function,全部POST到该URL,参数按原文约定:日期YYYY-MM-DD、时间如9:00 AM。agent的系统提示词第一行加上Today is {{current_time}},让agent能把明天换算成真实日期。用Retell的测试通话说帮我预约明天上午换机油,观察n8n执行记录。

可直接复制的材料

Retell agent系统提示词(本站示例,需替换店名)

本站独立编写的示例提示词,店名和流程可按需改;Today is {{current_time}}一行是原文建议,必须保留。

Today is {{current_time}}

你是迅捷汽修的电话前台助手,负责接听顾客来电并处理预约。

工作规则:
1. 先问清顾客想做什么:查空档、预约、取消还是改约。
2. 查空档:问清日期(转成YYYY-MM-DD)和上午还是下午,调用check_availability,把返回的空闲时段逐条报给顾客。
3. 预约:依次收集顾客姓名、联系电话、车型、需要的维修项目、期望日期和时间,调用book_appointment。下单前先调用check_availability确认时段仍可用。
4. 取消:收集姓名和预约日期,调用cancel_appointment。
5. 改约:收集姓名、原日期、新日期和新时间,调用reschedule_appointment。
6. 每次操作成功后复述结果,并提醒店主已收到通知邮件。
7. 说话简短口语化,一次只问一个问题。

测试webhook请求体(合成数据)

合成测试数据,无真实个人信息;date请改为明天且非休息日的日期,时间选一个营业时段内的时间。

{
  "call": {
    "call_id": "test_call_0001",
    "from_number": "+8613800000000"
  },
  "name": "book_appointment",
  "args": {
    "function_name": "book_appointment",
    "caller_name": "测试客户甲",
    "caller_phone": "13800000000",
    "vehicle": "2020 丰田卡罗拉",
    "service_needed": "更换机油机滤",
    "appointment_date": "2026-10-12",
    "appointment_time": "10:00 AM"
  }
}

Set Shop Configuration节点参考值

本站示例参考值,节点内真实字段名以模板为准,导入后在节点里逐项核对再改。

{
  "shop_name": "迅捷汽修",
  "owner_email": "owner@example.com",
  "calendar_id": "primary",
  "timezone": "Asia/Shanghai",
  "opening_hours": { "start": "9:00 AM", "end": "6:00 PM" },
  "closed_days": ["Sunday"],
  "appointment_length_minutes": 60
}

输入与输出示例

本站虚构演示,时段取决于你日历实际事件,非模板作者运行结果。

输入

check_availability请求:date=2026-10-12(周一),time_of_day=morning;当天日历已有10:00-11:00一个换机油预约,营业时间9:00-12:00,单时长60分钟。

对应输出

工作流返回:{"available_slots":["9:00 AM","11:00 AM"]},因为10:00已被占用、12:00起超出上午窗口;若同日再约9:00 AM的book_appointment,分支先复查该时段仍空闲,创建事件成功,Notify Owner节点发出邮件:新预约:测试客户甲,2020 丰田卡罗拉,更换机油机滤,2026-10-12 9:00 AM。

做完检查这些

  • check_availability请求返回的时段避开了当天已有事件、休息日和营业时间外的时间
  • book_appointment成功后Google Calendar出现标题含来电人姓名的事件,且Gmail收件箱有店主通知
  • 对同一时段重复预约时,第二次因冲突被拒绝而不是重复建事件
  • cancel_appointment用相同caller_name和日期能删掉对应事件并触发通知

容易卡住的地方

  • Retell传的时间格式是9:00 AM这种12小时制,模板按此解析;若你自定义函数用了24小时制,解析会错,需保持原格式
  • 取消和改约按caller_name匹配事件标题,姓名拼写不一致会找不到事件
  • closed_days整天使查空档返回空,测试时别把日期选在休息日
  • webhook必须先有call.call_id,手工测试时漏掉这个字段会被直接拒绝

原文与作者资料 ↗

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

原文标题
Book and manage auto repair appointments with Retell AI and Google Calendar
原作者
Anna Cole
原始发布日期
2026-09-29T07:06:48.995Z
来源
https://n8n.io/workflows/20127