2026-09-15 · 原文发布日
开会前自动汇总邮件上下文生成议程草稿
适合会议多的职场人的n8n模板:每15分钟扫一次Google Calendar即将开始的会议,对照Google Sheets里的处理记录跳过已办会议;对每个新会议,搜索近30天内与参会人的Gmail往来邮件,把摘要片段和会议信息一起交给GPT-4o-mini生成Markdown议程与会前简报。产出物自动建成一封发给参会人的Gmail草稿,同时推一条Telegram提醒,并把事件ID写回表格防重复;流程出错时向Slack和Telegram发告警。
原文要点
原模板为n8n官方模板站免费工作流(Rahul Joshi),每15分钟由Schedule触发器拉取Google Calendar即将开始的会议,读取Google Sheets“Meeting Prep Log”表中的已处理事件ID去重;对每个新会议搜索近30天参会人的Gmail邮件摘要,连同会议信息交给OpenAI gpt-4o-mini生成Markdown议程与会前简报,然后创建一封发参会人的Gmail草稿、发Telegram提醒、把Event ID写回表格;流程出错时通过错误触发器向Slack和Telegram发告警。模板中表格ID、Telegram聊天ID等以占位符给出需自行替换。
这次做成什么
照着本指南在n8n里搭一条“会前自动生成议程草稿”流程:定时发现新会议→查重→抓取邮件上下文→AI生成议程→产出Gmail草稿+Telegram提醒→记录防重。本站给出分步搭建方案与独立练习配置,节点名以n8n界面为准。
准备什么
- 一个n8n实例(云版或自托管均可,版本含Schedule Trigger节点)
- Google账号及Calendar、Gmail、Sheets的OAuth2凭据
- OpenAI API密钥,能调用gpt-4o-mini
- Telegram Bot Token及两个聊天ID(本人提醒与管理员告警)
- Slack工作区OAuth2凭据及一个告警频道
- 一张含“Meeting Prep Log”标签页且首列为Event ID的Google表
具体怎么做
建触发与查重段
新建工作流,加Schedule Trigger设为每15分钟;接Google Calendar节点拉取即将开始的会议;再接Google Sheets节点读取“Meeting Prep Log”的Event ID列,用IF节点比较事件ID是否已存在,已存在则跳过。
收集邮件上下文
对每个未处理会议,用Gmail节点(Search Messages)按参会人邮箱和近30天时间范围搜索往来邮件,用Set或Code节点把各邮件摘要片段拼成一段“会议上下文”文本,和会议标题、时间、参会人放进同一字段。
AI生成议程
接OpenAI节点选gpt-4o-mini,把会议信息与邮件上下文填入下方材料里的中文提示词,输出Markdown议程与会前简报。
产出与回写
用Gmail节点Create Draft以参会人为收件人、议程正文为邮件内容建草稿;Telegram节点向本人聊天ID发送格式化议程;Google Sheets节点Append把Event ID与会议标题追加进Meeting Prep Log。
错误告警
在工作流设置中指定Error Workflow:新建一条含Error Trigger的流程,分别接Slack节点(发到告警频道)和Telegram节点(发到管理员聊天ID),消息模板含出错节点名与错误信息。
可直接复制的材料
议程生成提示词(本站独立撰写)
本站独立编写示例;字段名(summary、start.dateTime等)需按你实际节点的输出字段调整。
你是一名会议筹备助理。请根据以下信息生成一份Markdown格式的会前材料。
会议标题:{{ $json.summary }}
会议时间:{{ $json.start.dateTime }}
参会人:{{ $json.attendees }}
近30天相关邮件摘要:
{{ $json.emailContext }}
要求:
1. 先给“会议背景”一段,概述邮件往来中体现的最新进展与分歧点;
2. 再给“建议议程”,3至6条,每条注明建议时长(分钟);
3. 然后给“待确认问题”,列出邮件中提到但未定论的事项;
4. 最后给“会前准备清单”,列出参会人应提前准备的材料;
5. 全文使用简体中文,语气正式,不要编造邮件中没有的事实。Meeting Prep Log表结构示例
合成示例数据;Event ID列名与模板占位符一致,替换为你的真实表格ID后使用。
Event ID,Meeting Title,Processed At
_demo_evt_001,季度预算评审会,2026-09-14 10:15
_demo_evt_002,供应商续约沟通会,2026-09-14 16:30测试触发参数占位符清单
前三个占位符来自原模板设置说明,必须替换成自己的ID;后三项为本站建议练习参数,可按需改。
{
"sheetId": "REPLACE_WITH_YOUR_MEETING_PREP_SHEET_ID",
"telegramChatId": "REPLACE_WITH_YOUR_TELEGRAM_CHAT_ID",
"adminTelegramChatId": "YOUR_ADMIN_TELEGRAM_CHAT_ID",
"calendarWindowMinutes": 120,
"gmailLookbackDays": 30,
"openaiModel": "gpt-4o-mini"
}输入与输出示例
本站虚构演示,非作者流程实际运行结果;议程文字为示意,真实输出取决于你的邮件内容。
输入
日历中有一条新会议“产品定价讨论会”,明天14:00开始,参会人为chen@example.com和liu@example.com;Gmail近30天检索到3封往来邮件,主题分别是“定价方案v2反馈”“折扣权限确认”“下周会议时间敲定”,Meeting Prep Log中不存在该事件ID。对应输出
Gmail草稿箱新增一封发两位参会人的草稿,正文含“会议背景:围绕定价方案v2的折扣权限尚有分歧”“建议议程:1. v2方案回顾(10分钟)2. 折扣权限边界(15分钟)3. 上线时间确认(10分钟)”等Markdown内容;Telegram收到同议程提醒;Meeting Prep Log追加一行“_demo_evt_003,产品定价讨论会,2026-09-15 14:05”。做完检查这些
- 在日历建一个测试会议后,15分钟周期内Gmail草稿箱出现以参会人为收件人的草稿
- Meeting Prep Log中新增该事件ID后,下个周期不再重复生成草稿
- 把OpenAI密钥临时改为无效值触发错误,Slack告警频道与管理员Telegram均收到含节点名的告警
- Telegram提醒的议程内容与Gmail草稿正文一致
容易卡住的地方
- 六套OAuth2/API凭据(Calendar、Gmail、Sheets、Slack、Telegram、OpenAI)缺一不可,任何一套未连通流程都会中断
- Sheets表必须提前建好“Meeting Prep Log”标签页和Event ID列,否则查重与回写都会报错
- 占位符(表格ID、两个Telegram聊天ID、Slack频道)不替换会导致流程跑不通或告警发错人
- gpt-4o-mini调用按量计费,会议多、邮件多时注意用量
- 邮件检索按参会人地址匹配,会议里未留邮箱的参会人不会产生上下文
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Prep meeting agendas from Google Calendar with Gmail, OpenAI, and Telegram
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-09-15T08:22:39.128Z
- 来源
- https://n8n.io/workflows/19618