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中预先建好一个与测试参会者邮箱匹配的联系人
具体怎么做
导入模板并配置webhook
在n8n.io/workflows/18984页面下载该模板JSON,在n8n画布右上角菜单选Import from File导入。打开第一个Webhook节点,确认方法是POST、路径是meeting-upload、接收二进制音频字段;激活工作流后复制生产URL,在你的录音工具或上传脚本里把音频以binary data POST到该地址。
配置六套凭证与占位符
在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。
核对Claude分析节点的输出结构
打开提取节点,确认它要求Claude输出参会人(含邮箱)、议题、决议、待办(含截止时间与优先级)、情绪与关系信号的结构化结果,后续节点按这些字段流转:待办进HubSpot任务,参会者邮箱进联系人搜索,情绪分进分支判断。可用材料区的提示词替换为你团队的字段口径,但要保持JSON键名与下游映射一致。
用合成录音做端到端测试
准备一段两三分钟、明确说出人名、邮箱、两项待办(其中一项标高优先级)和一项决议的中文会议录音,用curl或Postman以二进制POST到webhook。逐节点查看执行日志:Whisper出文字、Claude出JSON、HubSpot联系人被命中并更新、任务创建、情绪分支走向、Gmail出现草稿、Docs生成纪要、Slack收到摘要和高优先级提醒。
验证情绪分流与正面商机分支
再准备一段语气积极的录音(客户明确表达续约意向),确认正面分支在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