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

2026-10-06 · 原文发布日

会议逐字稿自动整理成带待办的纪要并插入文档

n8n模板:通过表单上传.txt会议逐字稿,可选填日期和标题;清洗文本后把内容发给经OpenRouter接入的Claude,要求返回严格JSON格式的议程、议题要点和待办事项,再对字数、负责人、日期合法性做校验,不合格就中止。通过后把格式化纪要插到既有Google Doc最上方,旧纪要保留在分隔线下,最后给上传者返回完成页和待办数量。

原文要点

这是Fafa Modey的n8n免费模板:表单接收单个.txt会议逐字稿上传,可选填会议日期与标题;先校验文件类型和大小、清洗文本、推导日期标题并核对说话人标签是否匹配配置的参会人名单;再把逐字稿和会议上下文发给经OpenRouter chat completions接口接入的Claude,要求返回严格JSON(议程、议题要点、待办事项);随后对输出做字数上限、议程与议题一致性、待办长度、负责人白名单、截止日期合法性校验,任一不合格即中止;通过后把既有Google Doc从Drive导出为HTML,把新纪要插到文档顶部、旧纪要保留在分隔线下方,再传回同一文件;最后给上传者显示含文档链接和待办数量(含未分配负责人项)的完成页。设置需填notesDocId、Google Drive OAuth2凭据、OpenRouter的Authorization: Bearer头凭据,并配置组织名、参会人、时区、术语表、模型slug等。

这次做成什么

搭好这条逐字稿→严格JSON纪要→置顶写入Google Doc的流水线,并用一段虚构会议逐字稿走通成功与校验失败两种结局,确认中止逻辑确实拦得住坏输出。

准备什么

  • n8n实例与一个可编辑的Google Doc(复制其文档ID)
  • Google Drive OAuth2凭据(导出和回传HTML用)
  • OpenRouter账号与API key,账户内有少量余额
  • 一段.txt格式的会议逐字稿练习文件(可用下方合成示例)
  • 明确的参会人名单,用于负责人白名单校验

具体怎么做

  1. 准备Google Doc并取ID

    新建一个Google Doc(如“周会纪要汇总”),从地址栏/docs/d/后面复制文档ID。在n8n导入模板(n8n.io/workflows/20535)后,把ID粘到配置步骤的notesDocId字段。文档里可以先放一行旧内容,便于稍后验证“新纪要置顶、旧纪要留在分隔线下”。

  2. 配置凭据与团队参数

    在n8n新建Google Drive OAuth2凭据并挂到导出、上传两个节点;新建HTTP Header Auth凭据,头部名Authorization,值填Bearer 加你的OpenRouter key,挂到OpenRouter请求节点。在配置步骤更新:组织名、参会人姓名列表、例会日、时区、术语表、模型slug(如anthropic/claude系某型号,以OpenRouter可用列表为准)、逐字稿与纪要字数上限。

  3. 先离线调通严格JSON提示词

    在OpenRouter网页Playground或curl里,用下方材料的提示词加示例逐字稿先测一轮,确认模型只输出JSON、字段齐全。把这份独立练习提示词的结构要求与原模板内提示词对照,理解模板要校验哪些字段,再在n8n里跑整链。

  4. 用Test URL走成功路径

    构建期用表单的Test URL上传示例.txt(填日期2026-10-09、标题“收银系统周会”)。核对:Claude返回的JSON通过全部校验;Google Doc顶部出现格式化纪要,旧内容被压到分隔线下方;完成页显示文档链接和待办总数(含1条未分配)。

  5. 故意触发校验失败

    做两个负例:一是上传.docx或20MB大文件,应在入口校验被拦;二是临时把提示词里的“只输出JSON”删掉再跑,模型大概率夹带解释文字导致JSON解析或字段校验失败,工作流应按设计中止且不改动Google Doc。验完恢复提示词。

  6. 切换到Production URL日常使用

    测试通过后激活工作流,把表单Production URL发给负责整理纪要的同事;约定逐字稿命名与说话人标签格式(与参会人名单一致),减少说话人匹配告警。

可直接复制的材料

严格JSON纪要提示词(本站独立练习版)

本站独立撰写,非原模板内提示词;大括号变量需替换后再用,模型slug以OpenRouter实际可用为准。

你是会议纪要整理助手。组织:{org_name};允许的任务负责人仅限:{attendee_list};今天日期:{today}。下面是会议逐字稿:"""{transcript}"""。请只输出一个JSON对象,不要任何解释或代码块标记,结构为:{"meeting_title":"...","meeting_date":"YYYY-MM-DD","agenda":["至多5条,每条不超过20字"],"topics":[{"heading":"...","bullets":["每条不超过40字"]}],"action_items":[{"task":"不超过50字","owner":"必须在允许名单内,无法判断则填\"未分配\"","due":"YYYY-MM-DD,必须是今天之后的合法日期,无法判断则填null"}]}。若逐字稿信息不足,对应字段给空数组,不得编造。

练习用合成逐字稿 standup-2026-10-09.txt

本站虚构会议内容,说话人“林珊、周凯”需加入参会人名单配置才能通过负责人白名单校验。

林珊: 开始吧。第一件,新版收银界面灰度到20%门店,崩溃率0.3%,比上周降了。
周凯: 我这边会员积分接口偶发超时,怀疑是缓存穿透,我下周三前加一层兜底。
林珊: 好。第二件,双十一预案还没人认领压测脚本这块。
周凯: 先记下来,会上不定人。
林珊: 行。第三件,客服反馈退款到账慢,周凯你查一下对账批处理,周五前给结论。
周凯: 可以,10月16号前回复。
林珊: 散会。

输入与输出示例

本站虚构演示输出,非Claude真实返回;日期合法性以运行当天为基准校验。

输入

上传standup-2026-10-09.txt,日期2026-10-09,标题“收银系统周会”,参会人名单含林珊、周凯。

对应输出

模型应返回类似:{"meeting_title":"收银系统周会","meeting_date":"2026-10-09","agenda":["灰度进展","双十一预案","退款到账慢"],"topics":[{"heading":"灰度进展","bullets":["新版收银界面灰度20%门店,崩溃率0.3%"]}],"action_items":[{"task":"为会员积分接口加缓存兜底","owner":"周凯","due":"2026-10-14"},{"task":"认领双十一压测脚本","owner":"未分配","due":null},{"task":"排查退款对账批处理并给结论","owner":"周凯","due":"2026-10-16"}]};完成页显示待办3条,其中1条未分配负责人。

做完检查这些

  • 上传非.txt或超大文件时工作流在校验阶段停止,Google Doc无任何改动
  • 成功执行后新纪要出现在文档最上方,旧纪要完整保留在分隔线之下
  • 完成页展示的待办数量与JSON中action_items条数一致,且未分配项被计入
  • owner不在参会人名单内的输出会被校验拦下并中止,而不是写入文档
  • OpenRouter请求节点带Authorization: Bearer头且模型slug与配置一致,否则请求报错

容易卡住的地方

  • 配置里Bearer与key之间必须有空格,少了会得到401且报错信息不明显
  • Google Doc导出/回传HTML来回转换可能丢失复杂格式,先在测试文档上验证再用于正式纪要库
  • Claude经OpenRouter调用按token计费,长逐字稿单次成本不低,记得设置字数上限
  • 说话人标签与参会人名单不一致(如“林珊”vs“林姗”)会导致负责人校验失败而中止
  • 校验失败即中止是设计行为,不是故障;排查时先看执行记录里卡在哪条规则

原文与作者资料 ↗

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

原文标题
Summarize meeting transcripts into Google Docs with Claude via OpenRouter
原作者
Fafa Modey
原始发布日期
2026-10-06T12:36:05.035Z
来源
https://n8n.io/workflows/20535