2026-09-02 · 原文发布日
Fireflies会议结束自动整理进HubSpot
Fireflies会议完成后发webhook触发流程:通过GraphQL拉全文转写,去重后筛出外部参会人,在HubSpot里找对应联系人和关联商机,再把转写和CRM字段结构交给Gemini,生成Markdown纪要、意向/情绪判断、跟进任务和字段更新。随后更新联系人、公司和商机,建笔记和任务,高意向或陌生联系人会在Slack提醒,出错也有告警。配置项里有多个开关控制同步行为。
原文要点
原模板接收Fireflies“会议完成”webhook(路径fireflies-meeting-completed),经Fireflies GraphQL API拉取全文转写,校验去重、跳过无转写会议,按内部域名列表筛出外部参会人,逐一在HubSpot查联系人和关联商机,再把转写与HubSpot可写字段结构交给Google Gemini,产出Markdown纪要、意向/情绪判断、跟进任务和字段映射更新,随后更新联系人/公司/商机、建笔记和任务,高意向或陌生联系人在Slack提醒,执行出错也告警。配置项含INTERNAL_EMAIL_DOMAINS、UNKNOWN_CONTACT_ACTION、SLACK_CHANNEL、AI_MODEL及多个更新/任务/告警开关。
这次做成什么
把会后整理自动化:会议一结束,纪要、CRM字段更新、跟进任务和Slack提醒自动落地。本站提供独立编写的Gemini抽取提示词、合成webhook测试数据和配置核对清单。
准备什么
- Fireflies账号且已开启API访问,能配置会议完成webhook
- HubSpot私有应用令牌,具备联系人、公司、商机的读写权限
- Google Gemini API密钥及n8n对应凭据
- Slack OAuth2凭据及一个可发消息的频道
- 已导入该模板,四条凭据在n8n中创建完成
具体怎么做
接入四类凭据
在n8n分别创建Fireflies(Header Auth,请求头带API密钥)、HubSpot私有应用令牌、Google Gemini、Slack OAuth2凭据,并在工作流各对应节点逐一选上。
配置webhook与Fireflies
复制工作流webhook节点的URL,到Fireflies的集成设置中把“meeting completed”事件指向该URL(模板路径fireflies-meeting-completed);先用测试URL配合合成数据调通再启用正式URL。
填写工作流配置项
在配置节点填入INTERNAL_EMAIL_DOMAINS(如yourcompany.com)、SLACK_CHANNEL、AI_MODEL,决定UNKNOWN_CONTACT_ACTION取值,并按需打开或关闭公司/商机更新、任务创建和高意向提醒开关。
用合成数据试运行
向测试webhook POST本站提供的合成payload,观察流程是否走完:GraphQL取转写、筛外部参会人、查HubSpot联系人、Gemini产出结构化结果、写回CRM并发Slack。
核对写回结果
在HubSpot检查联系人属性更新、新建笔记与任务,在Slack频道确认高意向或陌生联系人提醒;制造一次凭据失效验证错误告警分支。
可直接复制的材料
Gemini结构化抽取指令
本站独立编写的示例提示词,字段名与模板节点变量需自行核对替换;模型选择以配置项AI_MODEL为准。
你是CRM会议纪要助手。输入是一次会议的完整转写文本、外部参会人邮箱列表,以及HubSpot联系人/公司/商机的可写字段结构(JSON Schema)。
只返回严格JSON,不要输出任何其他文字,格式:
{"summary_md":"Markdown纪要,含决议、要点、待办三节","intent":"high|medium|low","sentiment":"positive|neutral|negative","followup_task":{"title":"跟进任务标题","due_date":"YYYY-MM-DD","body":"任务说明"},"property_updates":{"contact":{"字段内部名":"新值"},"company":{"字段内部名":"新值"},"deal":{"字段内部名":"新值"}}}
规则:property_updates只允许使用Schema中出现的字段内部名;转写中没有依据的字段不要填;intent根据客户表达的采购信号判断,没有明确信号填low;无跟进必要时followup_task填null。
转写文本:{{transcript}}
外部参会人:{{external_attendees}}
字段结构:{{hubspot_schemas}}合成webhook测试数据
本站合成的隔离测试数据,仅用于触发测试webhook;真实字段名需在模板webhook节点与Fireflies文档核对。
{
"eventType": "Transcription completed",
"meetingId": "ff-test-0001",
"title": "山雾咖啡×辰光商贸 合作洽谈",
"date": "2026-09-02T10:00:00Z",
"attendees": [
{"email": "li.wei@yourcompany.com", "name": "李薇"},
{"email": "zhao.qian@chenguang-trade.cn", "name": "赵倩"}
]
}配置项核对清单
键名为原文列出的配置项及开关的本站示意整理,实际名称与取值范围以模板配置节点为准。
{
"INTERNAL_EMAIL_DOMAINS": "yourcompany.com",
"UNKNOWN_CONTACT_ACTION": "create|skip|alert_only(三选一,按团队策略)",
"SLACK_CHANNEL": "#crm-sync",
"AI_MODEL": "按模板下拉可选值填写,以模板实际选项为准",
"UPDATE_COMPANY": true,
"UPDATE_DEAL": true,
"CREATE_TASK": true,
"ALERT_HIGH_INTENT": true,
"ALERT_UNKNOWN_CONTACT": true
}输入与输出示例
本站虚构演示,非模板实际运行结果;字段内部名为示意,需以HubSpot实际Schema为准。
输入
POST合成payload:meetingId=ff-test-0001,参会人含内部li.wei@yourcompany.com与外部zhao.qian@chenguang-trade.cn;转写中客户表示“下个月先订200杯试供应,价格合适就签年度合同”对应输出
{"summary_md":"## 决议\n- 辰光商贸下月试订200杯桂花拿铁\n## 要点\n- 价格条款待我方报价单确认\n## 待办\n- 李薇本周内发送报价单","intent":"high","sentiment":"positive","followup_task":{"title":"向赵倩发送试供应报价单","due_date":"2026-09-05","body":"根据会议决议,提供200杯试供应报价及年度合同条款"},"property_updates":{"contact":{"hs_lead_status":"IN_PROGRESS"},"company":{},"deal":{"dealstage":"appointmentscheduled"}}}做完检查这些
- 内部域名邮箱被排除,只有外部参会人触发HubSpot联系人查询与更新
- 重复投递同一meetingId时流程被去重分支拦截,不产生第二条笔记
- 无转写的会议被跳过且不写CRM,按开关决定是否发Slack摄取通知
- intent为high时Slack频道收到高意向提醒;凭据失效时收到错误告警
容易卡住的地方
- webhook路径必须与Fireflies侧配置完全一致(模板为fireflies-meeting-completed),否则收不到事件
- HubSpot字段更新只允许Schema中存在的内部名,提示词约束不严时Gemini可能编造字段导致写入失败
- UNKNOWN_CONTACT_ACTION选create会为新邮箱自动建联系人,需团队确认数据策略后再开
- 去重依赖执行记录或外部存储,清历史执行数据可能导致重复处理旧会议
- Gemini与Slack、HubSpot调用均按各自服务计费,免费模板不等于零成本
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Sync Fireflies meeting notes to HubSpot CRM using Google Gemini and Slack alerts
- 原作者
- Ciphernutz IT Services
- 原始发布日期
- 2026-09-02T13:44:39.617Z
- 来源
- https://n8n.io/workflows/19076