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

2026-10-13 · 原文发布日

每周自动汇总团队站会进展并邮件发送周报

TeamRetro站会完成时触发webhook,去重后把当天的纯文本站会记录存进n8n Data Table;每周五下午取出最近几天(默认7天)的记录按团队分组,交给OpenAI生成含进展、遗留阻塞和下周风险板块的Markdown周报,转HTML后用Gmail发给收件人,同时清理四周前的旧数据控制表体积。需要TeamRetro开启Standup Completed webhook并配置签名密钥,以及OpenAI和Gmail凭据。

原文要点

原工作流来自TeamRetro发布在n8n模板库的免费模板:TeamRetro站会完成时通过webhook触发,去重并跳过无成员更新的站会,把当天纯文本记录存入名为standup_days的n8n Data Table(列含date、day、team、standup、people、transcript);每周五下午4点取出最近N天(默认7天)的记录按团队分组,交给OpenAI(GPT-5 Mini)生成含进展、遗留阻塞、下周风险三板块的Markdown周报,转HTML后经Gmail发给配置的收件人,同时删除四周前的旧行控制表体积。需在TeamRetro开启Standup Completed webhook并把签名密钥配进触发节点。

这次做成什么

在自有n8n里实现:TeamRetro站会结束自动落库,每周五下午自动按团队生成Markdown周报、转HTML并用Gmail群发,同时定期清理旧数据。本站提供独立的周报提示词、表结构和一条合成测试数据,搭建时按原模板节点逐项核对。

准备什么

  • TeamRetro账号,且套餐支持webhook集成并能开启Standup Completed事件
  • 一个可接收外部webhook的n8n实例(生产URL可被TeamRetro访问)
  • n8n中创建Data Table的权限(或使用对应版本的内置数据表功能)
  • OpenAI API凭据,账号需可访问GPT-5 Mini或改用你可用的聊天模型
  • Gmail OAuth凭据,且该邮箱允许代表团队发送周报

具体怎么做

  1. 在TeamRetro配置webhook

    在TeamRetro的集成设置中新建webhook,事件选Standup Completed,URL粘贴n8n触发节点的生产webhook地址(注意是生产URL而非测试URL),保存后拿到签名密钥,回填到n8n的TeamRetro Trigger节点的密钥字段。先在TeamRetro里手动完成一场测试站会,确认触发节点能收到事件。

  2. 建立standup_days数据表

    在n8n中新建名为standup_days的Data Table,列结构为:date(日期)、day(星期)、team(团队名)、standup(站会名称)、people(参与人)、transcript(当天纯文本记录)。列名与原模板保持一致,后续查询节点按这些列名读写,改名会导致取数失败。

  3. 落库前去重并过滤空站会

    在触发器后加判断逻辑:用webhook的交付ID或站会ID查standup_days是否已有记录,有则直接跳过(TeamRetro可能重复投递);再检查该站会是否有任何成员更新,没有更新的不写入。通过检查后,把成员发言拼成一段纯文本transcript,连同日期、团队等字段插入一行。

  4. 配置周五定时汇总

    用Schedule Trigger设为每周五16:00触发。之后查询standup_days中最近7天(天数在报告设置中可调)的行,按team字段分组,每个团队得到一段本周站会合集文本。收件人列表和天数这两个值集中在报告设置节点里改,不要散落在各处。

  5. 用OpenAI生成Markdown周报

    对每个团队的合集文本调用OpenAI聊天节点,使用下方材料中的提示词,要求输出固定三板块:本周进展、遗留阻塞、下周风险,Markdown格式。随后用Markdown转HTML节点转换,接Gmail节点发送给该团队对应的收件人,主题建议含团队名和日期区间。模型名以原模板默认(GPT-5 Mini)为准,若你的账号不可用请整体替换并回归测试。

  6. 清理四周前旧数据

    在发送成功后加一个删除步骤:计算当前日期减28天的边界,删除standup_days中date早于该边界的所有行,防止表无限膨胀。把清理放在发送之后,避免周报还没生成就把本周数据误删。

可直接复制的材料

团队周报生成提示词

本站独立编写的替代提示词,{{ $json.transcript }}为n8n表达式占位;原模板具体提示词未公开,板块名称与原模板描述一致。

你是一名工程团队助理。下面是某团队本周多次站会的纯文本记录合集。请据此生成一份Markdown周报,严格使用以下三个二级标题,顺序不变:
## 本周进展
按主题归并成员的已完成事项,每条一行要点,不写空话。
## 遗留阻塞
列出本周被提到但到周尾仍未解除的阻塞,注明卡了几天(如记录中可判断)。
## 下周风险
根据未完成的依赖和计划推断下周风险,每条说明影响对象。
要求:只使用记录中出现的信息,不编造事项;每条要点不超过30字;没有内容的小节写「本小节无」。
站会记录:
{{ $json.transcript }}

standup_days测试行(合成数据)

本站虚构的一行合成数据,字段名与原模板描述一致,可用于手动插入Data Table后测试周五汇总链路,不含真实人员信息。

{"date":"2026-10-12","day":"Monday","team":"支付组","standup":"每日站会","people":"林岚,周启","transcript":"林岚:完成了退款接口的单元测试,今天开始接对账模块;阻塞是测试环境的证书过期,已提工单。周启:联调支付回调,等网关组提供新的回调地址;计划周四前完成。"}

收件人与窗口的配置示例

本站设计的集中配置示例:recipients按团队映射收件邮箱,days控制取数窗口,retentionDays控制清理边界;需替换为你的真实内部邮箱,具体存放节点以原模板为准。

{
  "recipients": {
    "支付组": ["pay-team@example.com"],
    "网关组": ["gateway-team@example.com"]
  },
  "days": 7,
  "retentionDays": 28
}

输入与输出示例

本站虚构演示,非OpenAI实际输出,数字与输入记录一一对应。

输入

standup_days中支付组本周两行记录:周一林岚完成退款接口单测、被测试环境证书过期阻塞,周启等网关组回调地址;周三林岚证书问题已解除并接入对账模块,周启仍在等回调地址

对应输出

# 支付组周报(10.12-10.16)
## 本周进展
- 退款接口单元测试完成并接入对账模块
- 支付回调联调推进中
## 遗留阻塞
- 网关组新回调地址未提供,已卡约3天
## 下周风险
- 回调地址若继续延迟,将影响支付回调联调整体收尾

做完检查这些

  • 在TeamRetro手动完成一场测试站会后,standup_days能新增一行且字段完整、transcript为纯文本
  • 同一场站会重复投递webhook时只落库一次,无成员更新的站会不产生新行
  • 手动触发周五节点后,每个团队各收到一封HTML邮件,含进展、遗留阻塞、下周风险三个板块
  • 邮件中的事实均能在当周站会记录里找到,不出现记录之外的事项
  • 清理步骤执行后,28天前的行被删除而本周行保留

容易卡住的地方

  • 触发节点必须用生产webhook URL,测试URL只在编辑器监听时有效,TeamRetro在非测试时段触发会丢事件
  • 签名密钥不配或填错会导致webhook校验失败,事件根本进不了流程,排错时先看触发节点是否有执行记录
  • GPT-5 Mini的可用性取决于你的OpenAI账号,账号不支持时需整体替换模型并重测输出格式
  • 无成员更新的站会若不去重过滤,会在表里积累空行并污染周报,务必保留这两道闸
  • Gmail OAuth凭据过期或收件人邮箱写错会导致发送静默失败,建议先发到自己的测试邮箱验证
  • 清理逻辑若误用大于号方向或时区不一致,可能删掉本周数据,上线前用合成旧行验证边界

原文与作者资料 ↗

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

原文标题
Send weekly TeamRetro standup reports with OpenAI GPT-5 Mini and Gmail
原作者
TeamRetro
原始发布日期
2026-10-13T08:28:36.718Z
来源
https://n8n.io/workflows/20865