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

2026-09-21 · 原文发布日

Telegram 站会转 Notion 任务

监听 Telegram 消息,先用确定性过滤只放行 #DailyPlan 与 #DailyProgress,减少闲聊消耗;OpenAI 把站会文本解析成任务、项目标签、状态、优先级和阻塞等级,校验 JSON 后逐条拆分。用 YYYY-MM-DD:用户名:任务哈希做 source key 查 Notion,重复或编辑过的报告更新旧卡而不是新建;关键阻塞推到项目负责人 Telegram,回报者收到执行回执。

原文要点

原工作流由 Scale On Fajar 发布(n8n.io/workflows/19799,免费模板):Telegram 触发后先标准化发送人/会话/日期/消息 ID,再用确定性过滤只放行 #DailyPlan 与 #DailyProgress,省掉闲聊的 token;OpenAI(默认 gpt-4o-mini)把站会文本解析为任务、项目标签、状态、优先级与阻塞等级的 JSON,校验后拆成独立条目。去重键为 YYYY-MM-DD:用户名:任务哈希,重复或编辑过的报告更新旧卡而非新建;中高危阻塞推送到项目负责人 Telegram,回报者收到执行回执。Notion 库需含 Task Name、Status、Priority、Project、Assignee、Source Key、Date、Notes 八个属性。

这次做成什么

搭一条 n8n 工作流:Telegram 群里的站会消息自动变成 Notion 任务卡,重复报告更新旧卡,严重阻塞单独提醒负责人,并给回报者发回执。练习方案:先用一条合成站会消息走手动测试,再切真群。

准备什么

  • n8n 实例(自托管或云端),能连 Telegram/OpenAI/Notion
  • 通过 @BotFather 创建的测试机器人 token,进群需关闭 Group Privacy
  • OpenAI API 密钥,可用 gpt-4o-mini 或兼容聊天模型
  • Notion 内部集成 token,测试 Tasks 库已共享给该集成并含八个指定属性
  • 一个测试用 Notion 数据库和测试用 Telegram 群/私聊,别直接动生产库
  • 项目负责人的 Telegram Chat ID(先用自己账号测试)

具体怎么做

  1. 准备 Notion 库与凭据

    在 notion.so/my-integrations 建内部集成,把测试 Tasks 库共享给它;确认库含 Task Name(Title)、Status(Status)、Priority(Select)、Project(Rich Text)、Assignee(Rich Text)、Source Key(Rich Text)、Date(Date)、Notes(Rich Text)。在 n8n 分别添加 Telegram、OpenAI、Notion 凭据。

  2. 接 Telegram 触发并做确定性过滤

    加 Telegram Trigger 监听消息;接 Code 节点把发送人用户名、chat id、日期、message id、原文标准化成字段;再加 IF/Switch 节点只放行文本含 #DailyPlan 或 #DailyProgress 的消息,其余直接丢弃,避免闲聊消耗 OpenAI token。标签名可换成团队习惯用语。

  3. 用 OpenAI 抽取任务并校验拆分

    把过滤后的文本交给 OpenAI 聊天节点,使用下方提示词要求只输出 JSON;后接 Code 节点校验状态枚举(To Do/In Progress/Done/On Review)与必填字段,逐条拆成独立 item,并为每条算 source key:当天日期(YYYY-MM-DD)+用户名+任务名哈希,用冒号拼接。

  4. 按 source key 查 Notion 决定新建或更新

    Notion 节点按 Source Key 等于当前键过滤查询;查不到走 Create 分支写入全部属性,查到走 Update 分支更新状态/优先级/阻塞说明等字段,保证重复发送或编辑过的报告不会造出重复卡片。

  5. 阻塞提醒与回执

    IF 节点判断 blocker 等级为 critical 或 moderate 时,向负责人 Chat ID(先填自己的测试号)发一条 HTML 格式提醒,含任务名、阻塞描述、报告人;无论是否有阻塞,最后都向原 chat id 回一条执行回执,列出新建/更新/跳过的任务数。

  6. 手动测试再激活

    用模板自带的手动测试或自定义测试按钮,以示例中的合成站会消息跑一遍,确认 Notion 出现 3 张卡(对应示例消息中的三项任务)、负责人收到一条阻塞提醒、回报会话收到回执;第二次重发同一条消息应只更新不新建。全部通过后再激活工作流。

可直接复制的材料

站会任务抽取提示词(本站独立编写)

本站独立编写的示例提示词,非原作者原文;状态枚举需与你的 Notion Status 属性选项一致,模型名与参数在原模板 Extract Tasks from Standup 节点核对。

你是站会消息解析器。输入是一段中文或英文的团队站会文本(以 #DailyPlan 或 #DailyProgress 开头)。请抽取其中每一项任务,只输出 JSON,不要输出任何解释或 Markdown 代码块。
输出格式:{"tasks":[{"taskName":"任务一句话描述","project":"项目名,无法判断填 General","status":"To Do|In Progress|Done|On Review 之一","priority":"Low|Medium|High","blocker":"无阻塞填 none,否则填 moderate 或 critical","blockerNote":"阻塞原因一句话,无则填空字符串","assignee":"负责人用户名,未提及填空字符串","date":"YYYY-MM-DD 格式的任务日期,未提及填当天"}]}
规则:1) 一条消息可含多个任务,逐条拆开;2) 状态必须从四个枚举中选,已完成对应 Done,进行中对应 In Progress;3) 提及被卡住、等依赖、无法上线等视为 critical 或 moderate,按影响面判断;4) 拿不准的字段用默认值,不要编造人名或日期。

合成站会测试消息

本站虚构测试数据,用户名与项目均为虚构;可直接发到测试群验证整条链路。

#DailyPlan @li.wei
1. 完成结账页接口联调(项目:商城重构),进行中,优先级 High
2. 修复导出报表乱码(项目:数据中台),已完成
3. 新版搜索上线被卡住:等后端索引重建完成,今天无法继续(项目:商城重构),阻塞严重

输入与输出示例

本站虚构演示,哈希值与日期为示意,未实际运行,非原作者结果。

输入

在测试群发上面的合成站会消息:含 @li.wei 的三个任务,第三个任务标注阻塞严重。

对应输出

Notion 出现 3 张卡:「完成结账页接口联调」Status=In Progress、Priority=High、Project=商城重构;「修复导出报表乱码」Status=Done;「新版搜索上线被卡住」Status=To Do 且 Source Key 形如 2026-09-21:li.wei:a1b2c3d4。负责人会话收到一条含「新版搜索上线被卡住」的阻塞提醒;原群收到回执:新建 3、更新 0、阻塞升级 1。重发同一消息后回执变为:新建 0、更新 3。

做完检查这些

  • 发一条不带 #DailyPlan/#DailyProgress 标签的普通闲聊,OpenAI 节点不应被触发,Notion 无新卡
  • 合成消息运行后 Notion 恰好出现 3 张卡,且 Source Key 属性不为空、格式为 日期:用户名:哈希
  • 完全重发同一条站会消息,卡片数量不变,只更新既有卡的字段
  • 含 critical 阻塞的任务触发负责人会话的提醒消息,原文所在会话收到执行回执
  • 状态字段只出现 To Do/In Progress/Done/On Review 四种,非法值被校验节点拦下

容易卡住的地方

  • 机器人在群里收不到消息通常是 @BotFather 的 Group Privacy 未关闭,需 /setprivacy 设为 Disable 后重新拉群
  • Notion 属性名或类型与要求不一致(如把 Assignee 建成 Person 类型而非 Rich Text)会导致写入失败
  • 负责人 Chat ID 填错会让阻塞提醒静默丢失,先用开发者自己的账号测试
  • 状态枚举与 Notion Status 属性的选项不同步时校验会全部失败,两处需保持一致
  • 编辑过的旧消息若哈希算法只取任务名则仍会命中旧键,若把正文也纳入哈希则会误建新卡,需在 Code 节点明确取舍

原文与作者资料 ↗

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

原文标题
Dispatch Telegram standups into Notion tasks and blocker alerts with OpenAI
原作者
Scale On Fajar
原始发布日期
2026-09-21T15:07:27.312Z
来源
https://n8n.io/workflows/19799