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

2026-09-01 · 原文发布日

会议录音自动转纪要、同步CRM并起草跟进邮件

把会议录音POST到webhook后,这个n8n流程先用Whisper转写,再用Claude提取参会人、议题、决议和待办,按邮箱搜HubSpot联系人并更新摘要、创建任务;还会算会议情绪分,负面情绪做深入分析,正面信号则建商机。随后为每位参会者起草Gmail跟进邮件草稿,纪要存Google Docs,摘要和高优先级待办提醒发到Slack。需要六套凭证,适合销售或客户团队。

原文要点

原模板为n8n工作流:webhook接收会议录音二进制文件,OpenAI Whisper转写,Anthropic Claude提取参会人、议题、决议、待办、情绪与关系信号并重排待办优先级;按邮箱搜HubSpot联系人、更新摘要并建任务;按情绪分流——负面做深入情绪分析,正面建HubSpot商机;Claude为每位参会者起草跟进邮件并存Gmail草稿;纪要存Google Docs,摘要与高优先级待办提醒发Slack。webhook路径为POST /meeting-upload,共需六套凭证。

这次做成什么

在自托管或云端n8n里搭好这条“录音进、纪要+CRM+邮件草稿出”的流水线,并用一条合成的两分钟中文会议录音跑通全链路,确认六个外部系统各自落库正确。

准备什么

  • 一个可访问的n8n实例(云版或自托管均可),能从n8n.io模板页导入该工作流
  • OpenAI、Anthropic、HubSpot、Gmail、Google Drive/Docs、Slack六套账号及各自API凭证
  • HubSpot私有应用token(用于联系人搜索的HTTP Header Auth)
  • 一段用于测试的合成中文会议录音文件(mp3/m4a,几分钟即可)
  • HubSpot中预先建好一个与测试参会者邮箱匹配的联系人

具体怎么做

  1. 导入模板并配置webhook

    在n8n.io/workflows/18984页面下载该模板JSON,在n8n画布右上角菜单选Import from File导入。打开第一个Webhook节点,确认方法是POST、路径是meeting-upload、接收二进制音频字段;激活工作流后复制生产URL,在你的录音工具或上传脚本里把音频以binary data POST到该地址。

  2. 配置六套凭证与占位符

    在n8n的Credentials里依次新建:OpenAI(Whisper转写节点用)、Anthropic(Claude分析节点用)、HubSpot、Gmail OAuth2、Google Drive/Docs OAuth2、Slack。模板中的占位符需逐一替换:HubSpot主联系人邮箱、Slack频道ID、存纪要的Google Drive文件夹ID。若使用HubSpot联系人搜索的HTTP请求节点,新建HTTP Header Auth凭证,头部写Authorization: Bearer 加你的私有应用token。

  3. 核对Claude分析节点的输出结构

    打开提取节点,确认它要求Claude输出参会人(含邮箱)、议题、决议、待办(含截止时间与优先级)、情绪与关系信号的结构化结果,后续节点按这些字段流转:待办进HubSpot任务,参会者邮箱进联系人搜索,情绪分进分支判断。可用材料区的提示词替换为你团队的字段口径,但要保持JSON键名与下游映射一致。

  4. 用合成录音做端到端测试

    准备一段两三分钟、明确说出人名、邮箱、两项待办(其中一项标高优先级)和一项决议的中文会议录音,用curl或Postman以二进制POST到webhook。逐节点查看执行日志:Whisper出文字、Claude出JSON、HubSpot联系人被命中并更新、任务创建、情绪分支走向、Gmail出现草稿、Docs生成纪要、Slack收到摘要和高优先级提醒。

  5. 验证情绪分流与正面商机分支

    再准备一段语气积极的录音(客户明确表达续约意向),确认正面分支在HubSpot创建了商机;负面分支可用一段投诉语气录音验证是否触发深入情绪分析。两段测试数据都用虚构公司与邮箱,避免污染真实CRM。

可直接复制的材料

会议信息提取提示词(替代/校准Claude节点用)

本站独立编写,键名需与你实际工作流下游字段映射核对后再替换

你是一名会议纪要分析助手。请阅读下面的会议转写文本,只输出一个JSON对象,不要输出任何其他文字。JSON结构如下:{"attendees":[{"name":"姓名","email":"邮箱,若文中未提到则为null"}],"topics":["议题1","议题2"],"decisions":["决议1"],"action_items":[{"task":"待办描述","owner":"负责人姓名","deadline":"YYYY-MM-DD,未提到则填null","priority":"high|medium|low"}],"sentiment":"positive|neutral|negative","sentiment_score":0到100的整数,"relationship_signals":["如续约意向、投诉风险等"]}
要求:待办必须是从对话中明确指派或承诺的事项;不要编造邮箱;情绪分0-39为负面、40-69为中性、70-100为正面。
转写文本:
{{ $json.transcript }}

webhook端到端测试数据

本站虚构测试数据,邮箱与频道ID为占位,需换成你的测试值;录音按script朗读生成即可

{
  "test_audio_script": "大家好,今天参会的是林舟(linzhou@example-corp.cn)和苏漫(suman@example-corp.cn)。议题有两个:一是三季度续费报价,二是新功能排期。决议:续费按九折报价。待办一:林舟在2026-09-10前发出正式报价单,这个优先级高。待办二:苏漫在2026-09-20前整理客户反馈清单,优先级中。客户整体态度积极,提到有续约意向。",
  "hubspot_contact_email": "linzhou@example-corp.cn",
  "slack_channel": "C0123TEST45",
  "drive_folder": "meeting-notes-test"
}

curl上传测试命令

仅上传你自己生成的合成录音到测试实例,URL需替换为激活后的生产webhook地址

curl -X POST "https://你的n8n域名/webhook/meeting-upload" \
  -H "Content-Type: audio/mpeg" \
  --data-binary @./test-meeting.mp3

输入与输出示例

本站虚构演示,非原作者运行结果;字段名以你导入后的实际节点为准

输入

按测试脚本朗读生成的2分40秒中文录音test-meeting.mp3,二进制POST到/meeting-upload,参会邮箱linzhou@example-corp.cn在HubSpot已建联系人

对应输出

Whisper产出转写文本;Claude返回JSON:attendees含林舟/苏漫,action_items两条(报价单/high/2026-09-10,反馈清单/medium/2026-09-20),sentiment=positive,sentiment_score=82;HubSpot该联系人写入会议摘要并创建两条任务;正面分支创建一条商机;Gmail生成两封跟进草稿;Google Docs新增一篇纪要;Slack收到摘要及一条高优先级待办提醒

做完检查这些

  • Webhook执行日志中Whisper节点输出完整中文转写,无音频格式报错
  • Claude节点输出合法JSON且action_items含deadline与priority字段
  • HubSpot联系人被按邮箱命中,摘要写入且每条待办生成对应任务
  • Gmail草稿数量等于参会者人数,Docs与Slack均收到内容
  • 高优先级待办触发了额外的Slack提醒

容易卡住的地方

  • 六套凭证缺任何一套都会在中途节点报错,导入后先逐节点检查凭证绑定再激活
  • HubSpot联系人搜索若用HTTP请求节点,必须用私有应用token配HTTP Header Auth,普通OAuth凭证可能导致搜索失败
  • 参会者邮箱在HubSpot不存在时搜索无结果,需确认模板的空结果分支处理,避免整流中断
  • Whisper对长录音有限制,超长会议需先自行分段,模板未提供切片逻辑
  • 情绪分阈值与商机创建条件以模板内实际判断节点为准,导入后先核对再上线
  • 占位符(主联系人邮箱、频道ID、文件夹ID)不替换会写入失败或发错位置

原文与作者资料 ↗

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

原文标题
Summarize meetings and sync action items with Whisper, Claude, HubSpot, Gmail and Slack
原作者
ResilNext
原始发布日期
2026-09-01T06:03:38.008Z
来源
https://n8n.io/workflows/18984