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

2026-09-08 · 原文发布日

会议提醒邮件里一键确认、改期或取消

给提醒邮件里的三个按钮各配一个带参数的webhook链接:确认时流程取出日历事件里的参会人邮箱和Meet链接发确认信;改期时由带日历工具的OpenAI代理按新时间创建替代事件并删掉原事件,再发含新链接的通知;取消则直接删事件并发取消信。需把模板里的日历ID和时区换成自己的。

原文要点

原模板(n8n工作流19368,Incrementors发布,免费)用一个Webhook接收提醒邮件里的三个按钮链接,链接携带action、email、eventId、可选newDateTime四个查询参数;按action分流到确认/改期/取消三条路径。确认路径按eventId取Google日历事件,提取参会人邮箱与Meet链接后用Gmail发确认信;改期路径交给带Google日历工具的OpenAI代理,新建带Meet的替代事件并删除原事件,再发含新链接的通知;取消路径直接删事件并发取消信。部署需替换模板中所有YOUR_CALENDAR_ID与YOUR_TIMEZONE,并配置Google日历OAuth2、Gmail、OpenAI三组凭据。

这次做成什么

在自己的n8n中搭好这条三分支Webhook流程,并让一封自建的提醒邮件里的三个按钮真正能触发确认、改期、取消三种处理。本站额外设计一个本地练习方案:先用n8n测试Webhook与虚构事件ID走通确认分支,再激活生产Webhook替换真实日历。

准备什么

  • n8n 1.x 自托管或云账号,能创建并激活工作流
  • Google日历OAuth2凭据,且能访问目标日历(需先在日历中有一个含Meet链接的测试事件)
  • Gmail发送凭据(OAuth2),用于三封通知邮件
  • OpenAI API凭据,仅改期分支的代理节点使用
  • 提醒邮件系统或任意能发HTML邮件的工具,用于放置三个按钮链接

具体怎么做

  1. 导入模板并替换两处占位值

    在n8n工作流页导入模板19368;打开所有Google日历节点,把Calendar字段里的YOUR_CALENDAR_ID换成目标日历ID(Google日历设置页“集成”里的Calendar ID,形如xxx@group.calendar.google.com);打开OpenAI代理节点,把系统指令与日历工具描述中的YOUR_TIMEZONE换成如Asia/Shanghai。

  2. 配置三组凭据并检查分支逻辑

    分别在Google日历节点、Gmail节点、OpenAI节点绑定对应凭据。查看Webhook后的Switch节点:它按查询参数action的值分流,确认匹配confirm,改期匹配reschedule,取消匹配cancel;改期分支要求额外传入newDateTime参数。

  3. 用测试Webhook走通确认分支

    点Webhook节点的“Listen for test event”,在浏览器访问测试URL并附加?action=confirm&email=test@example.com&eventId=你日历里真实测试事件的ID。流程应取到事件、读到参会人邮箱与Meet链接、Gmail发出确认信。取消分支同理用action=cancel验证事件被删除(建议先复制一个可删的测试事件)。

  4. 验证改期分支

    再次监听测试事件,URL附加?action=reschedule&email=test@example.com&eventId=测试事件ID&newDateTime=2026-10-12T15:00:00。OpenAI代理会按newDateTime调用日历工具新建带Meet的事件并删除原事件,随后Gmail发出含新时间与新Meet链接的通知。在Google日历里核对:原事件消失、新事件出现在指定时间。

  5. 激活生产Webhook并改造提醒邮件

    激活工作流,复制Webhook节点的Production URL。在提醒邮件HTML里放三个按钮:确认链接为URL?action=confirm&email={{参会人}}&eventId={{事件ID}},改期链接额外带newDateTime,取消链接带action=cancel。发一封测试邮件给自己,逐个点三个按钮核对三种结果。

可直接复制的材料

改期分支OpenAI代理系统指令(本站独立编写示例)

本站按原模板逻辑独立撰写;原模板要求在指令与工具描述中替换YOUR_TIMEZONE,请按你的时区调整,具体字段名以导入后的实际节点为准。

你是会议改期助手。当前时区为Asia/Shanghai。用户请求将事件ID为{{ $json.eventId }}的会议改到{{ $json.newDateTime }}(ISO 8601格式,按Asia/Shanghai解释)。
请依次执行:
1. 使用Google日历工具读取原事件的标题、描述、参会人列表与时长;
2. 以相同标题、描述、参会人和时长,在newDateTime指定的时间创建一个新事件,并勾选添加Google Meet视频会议;
3. 删除原事件;
4. 输出JSON:{"newEventId":"...","meetLink":"...","startTime":"..."}。
若newDateTime无法解析,不要创建任何事件,输出{"error":"无法解析的新时间"}。

提醒邮件三按钮HTML片段(本站示例)

本站独立示例,需替换为你的生产Webhook域名、真实参会人邮箱与真实eventId;eventId应由你的提醒邮件系统在发信时动态填充。

<p>您的会议将于明天举行:</p>
<a href="https://your-n8n.example.com/webhook/meeting-action?action=confirm&email=zhangsan@example.com&eventId=abc123">确认参加</a>
<a href="https://your-n8n.example.com/webhook/meeting-action?action=reschedule&email=zhangsan@example.com&eventId=abc123&newDateTime=2026-10-12T15:00:00">改期到10月12日15:00</a>
<a href="https://your-n8n.example.com/webhook/meeting-action?action=cancel&email=zhangsan@example.com&eventId=abc123">取消会议</a>

输入与输出示例

本站虚构演示,未实际运行,事件ID与Meet链接均为示例格式,非真实返回值。

输入

浏览器访问生产Webhook:https://your-n8n.example.com/webhook/meeting-action?action=reschedule&email=zhangsan@example.com&eventId=evt_9f2k&newDateTime=2026-10-12T15:00:00,原事件为10月11日14:00-15:00的“季度复盘会”,含Meet链接。

对应输出

代理输出{"newEventId":"evt_77ab","meetLink":"https://meet.google.com/xyz-abcd-pqr","startTime":"2026-10-12T15:00:00+08:00"};日历中原10月11日事件被删除,出现10月12日15:00-16:00同名新事件;Gmail向zhangsan@example.com发出改期通知,正文含新时间与新Meet链接。

做完检查这些

  • Switch节点能按action参数把confirm/reschedule/cancel三种请求分别路由到三条分支,无请求落入默认分支
  • 确认分支执行后Gmail发出的邮件中包含从日历事件提取的真实Meet链接,而非占位文本
  • 改期分支执行后原事件在Google日历中消失,新事件出现在newDateTime指定的Asia/Shanghai时间且带Meet
  • 所有Google日历节点中不再存在YOUR_CALENDAR_ID,代理指令中不再存在YOUR_TIMEZONE
  • 测试邮件里三个按钮逐个点击后均触发对应分支,邮件与日历结果一致

容易卡住的地方

  • 测试URL与生产URL不同:激活工作流后必须用Production URL,测试URL只在点击监听时有效一次
  • newDateTime缺少时区信息时代理可能按UTC解释,务必在代理指令中明确时区并在示例中验证
  • 日历ID不是邮箱地址,而是日历设置页“集成”区的Calendar ID,填错会报事件不存在
  • 取消与改期都会删除事件,对真实会议先建可牺牲的测试事件再演练
  • 改期依赖OpenAI代理调用日历工具,若OpenAI凭据额度不足,改期分支会失败而确认/取消不受影响

原文与作者资料 ↗

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

原文标题
Handle meeting no-shows via Gmail, Google Calendar, and OpenAI
原作者
Incrementors
原始发布日期
2026-09-08T06:22:20.886Z
来源
https://n8n.io/workflows/19368