Fireflies会议转录和摘要自动化
高级
这是一个Document Extraction, AI Summarization领域的自动化工作流,包含 26 个节点。主要使用 Set, Code, Gmail, Merge, Webhook 等节点。 使用Gemini和Gmail从Fireflies转录自动化会议摘要
前置要求
- •Google 账号和 Gmail API 凭证
- •HTTP Webhook 端点(n8n 会自动生成)
- •OpenAI API Key
使用的节点 (26)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"id": "MBDLFA4yk0BfFQcM",
"meta": {
"instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
"templateCredsSetupCompleted": true
},
"name": "Fireflies会议转录和摘要自动化",
"tags": [],
"nodes": [
{
"id": "2e6b7379-7002-48ce-b96e-9ce85802b158",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"position": [
-784,
112
],
"webhookId": "880cfe0f-5c81-46cd-b717-be89dfa045cf",
"parameters": {
"path": "880cfe0f-5c81-46cd-b717-be89dfa045cf",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "171f9f42-d428-4788-b922-eacdf20ec81a",
"name": "获取转录",
"type": "@firefliesai/n8n-nodes-fireflies.fireflies",
"position": [
496,
112
],
"parameters": {
"transcriptId": "={{ $json.body.meetingId }}"
},
"credentials": {
"firefliesApi": {
"id": "86mwg8Qt4yqONbKB",
"name": "Fireflies account"
}
},
"typeVersion": 1
},
{
"id": "ee48206c-8bfc-4dd7-aee4-2ff2d8396b25",
"name": "当点击“执行工作流”时",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-784,
-80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e00e737b-7e6a-46d2-8bb4-6c3bdd268c90",
"name": "Gmail 触发器",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
-784,
304
],
"parameters": {
"filters": {
"q": "subject:Your meeting recap",
"sender": "fred@fireflies.ai"
},
"pollTimes": {
"item": [
{
"mode": "everyHour",
"minute": 1
}
]
}
},
"credentials": {
"gmailOAuth2": {
"id": "nyuHvSX5HuqfMPlW",
"name": "Gmail account (n3w.it)"
}
},
"typeVersion": 1.2
},
{
"id": "ba732ec4-b1d0-456f-93e1-8697f327207f",
"name": "获取消息",
"type": "n8n-nodes-base.gmail",
"position": [
-512,
304
],
"webhookId": "97c9b3fa-56ea-4a0d-867e-7084579c6701",
"parameters": {
"simple": false,
"options": {},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"id": "nyuHvSX5HuqfMPlW",
"name": "Gmail account (n3w.it)"
}
},
"typeVersion": 2.1
},
{
"id": "73d609de-1675-488c-9d8c-68adcaf53870",
"name": "信息提取器",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
-96,
304
],
"parameters": {
"text": "={{ $json.text }}",
"options": {
"systemPromptTemplate": "You are an expert extraction algorithm.\nOnly extract relevant information from the text.\nIf you do not know the value of an attribute asked to extract, you may omit the attribute's value."
},
"attributes": {
"attributes": [
{
"name": "meeting_notes",
"required": true,
"description": "Estrai il link del meeting"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "c4c85559-784b-4b8b-a944-7a78b0266328",
"name": "OpenAI 聊天模型2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-160,
512
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "TefveNaDaMERl1hY",
"name": "OpenAi account (Eure)"
}
},
"typeVersion": 1.2
},
{
"id": "bd1ec6e4-cbe1-499e-9a72-dfc3c1a8395c",
"name": "代码1",
"type": "n8n-nodes-base.code",
"position": [
256,
304
],
"parameters": {
"jsCode": "// Loop over input items and extract meeting ID from the URL\nfor (const item of $input.all()) {\n const url = item.json.output.meeting_notes;\n \n // Find the position of \"::\" and \"?\"\n const startIndex = url.indexOf(\"::\") + 2;\n const endIndex = url.indexOf(\"?\");\n \n // Extract the meeting ID\n const meetingId = url.substring(startIndex, endIndex);\n \n // Replace the entire item with the desired structure\n item.json = { \n body: { \n meetingId: meetingId \n } \n };\n}\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "76cf2b34-d1a4-4a4e-88c9-cae79f7133ee",
"name": "设置会议链接",
"type": "n8n-nodes-base.set",
"position": [
-304,
304
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "095e5770-57bb-4471-83a6-f83a00887c9d",
"name": "text",
"type": "string",
"value": "={{ $json.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "ad53b5f9-7b95-49f3-aca6-cd9b6e5aa8de",
"name": "设置会议ID",
"type": "n8n-nodes-base.set",
"position": [
-304,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "2b842573-706d-499d-a106-8808f39a9920",
"name": "body.meetingId",
"type": "string",
"value": "01K18TW3MEX4XQ3TBG4RAD88HX"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3da55996-bd1f-43f1-8d10-4294db196b45",
"name": "发送消息1",
"type": "n8n-nodes-base.gmail",
"position": [
2144,
576
],
"webhookId": "a9460f49-968a-412d-8805-9c583f23c52f",
"parameters": {
"sendTo": "YOUR_EMAIL",
"message": "={{ $json.data }}",
"options": {
"appendAttribution": false
},
"subject": "=Short Meeting Recap"
},
"credentials": {
"gmailOAuth2": {
"id": "nyuHvSX5HuqfMPlW",
"name": "Gmail account (n3w.it)"
}
},
"typeVersion": 2.1
},
{
"id": "2aa61dca-63be-4085-a994-0be038738ab3",
"name": "合并",
"type": "n8n-nodes-base.merge",
"position": [
1824,
112
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "d51ab401-514d-4683-9cf6-b9534b634b5e",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
2144,
112
],
"parameters": {
"options": {},
"fieldsToAggregate": {
"fieldToAggregate": [
{
"renameField": true,
"outputFieldName": "text",
"fieldToAggregate": "content.parts[0].text"
}
]
}
},
"typeVersion": 1
},
{
"id": "4ea0f903-9b61-4c0c-a85d-a084ebf865d1",
"name": "设置句子",
"type": "n8n-nodes-base.set",
"position": [
816,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "0065541b-565a-484a-b52f-c89a579392b7",
"name": "sentences",
"type": "array",
"value": "={{ $json.data.sentences }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "df665dab-2ee4-42e6-bd43-0ee3e2349335",
"name": "设置摘要",
"type": "n8n-nodes-base.set",
"position": [
816,
240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "3b86bb4c-e4fc-4af7-a644-cbef02675eed",
"name": "short_summary",
"type": "string",
"value": "={{ $json.data.summary.short_summary }}"
},
{
"id": "fc5a137a-a77d-4480-8c82-f7066ba2a9e5",
"name": "short_overview",
"type": "string",
"value": "={{ $json.data.summary.short_overview }}"
},
{
"id": "b84c63d6-2b28-4d0a-bb6e-b3c1b74cd0df",
"name": "overview",
"type": "string",
"value": "={{ $json.data.summary.overview }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "00e4b3cf-5fb0-4818-b361-c5eef944f0e8",
"name": "完整转录",
"type": "n8n-nodes-base.code",
"position": [
1072,
-80
],
"parameters": {
"jsCode": "// Accedi all'array sentences dal primo item\nconst transcriptArray = $input.first().json.sentences;\n\n// Verifica che l'array esista\nif (!transcriptArray || !Array.isArray(transcriptArray)) {\n throw new Error('Array sentences non trovato o non è un array');\n}\n\n// Crea la trascrizione combinata\nlet fullTranscript = '';\n\ntranscriptArray.forEach((segment) => {\n // Usa text_cleanup se disponibile, altrimenti fallback su text o raw_text\n const text = segment.ai_filters?.text_cleanup || segment.text || segment.raw_text;\n const speakerName = segment.speaker_name || 'Unknown Speaker';\n \n // Aggiungi il segmento alla trascrizione completa\n fullTranscript += `${speakerName}: ${text}\\n`;\n});\n\n// Rimuovi l'ultimo \\n se presente\nfullTranscript = fullTranscript.trim();\n\n// Loop over input items e aggiungi il campo full_transcript\nfor (const item of $input.all()) {\n item.json.full_transcript = fullTranscript;\n item.json.total_segments = transcriptArray.length;\n}\n\n//return $input.all();\n// Restituisci solo i campi richiesti\nreturn [{\n json: {\n full_transcript: fullTranscript,\n total_segments: transcriptArray.length\n }\n}];"
},
"typeVersion": 2
},
{
"id": "d2de3745-e563-4c52-9b0d-8754ffc45b31",
"name": "完整转MD",
"type": "n8n-nodes-base.markdown",
"position": [
1808,
-80
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.content.parts[0].text }}"
},
"typeVersion": 1
},
{
"id": "09926a2c-386d-4da6-9087-5d9bf01a274c",
"name": "发送完整会议摘要",
"type": "n8n-nodes-base.gmail",
"position": [
2128,
-80
],
"webhookId": "a9460f49-968a-412d-8805-9c583f23c52f",
"parameters": {
"sendTo": "YOUR_EMAIL",
"message": "={{ $json.data }}",
"options": {
"appendAttribution": false
},
"subject": "=Full meeting summary: {{ $('Gmail Trigger').item.json.Subject }}"
},
"credentials": {
"gmailOAuth2": {
"id": "nyuHvSX5HuqfMPlW",
"name": "Gmail account (n3w.it)"
}
},
"typeVersion": 2.1
},
{
"id": "9a46a1ad-72c8-4d36-a35b-fa5ee5fd0a22",
"name": "专家会议转录",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
1312,
-80
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.5-pro",
"cachedResultName": "models/gemini-2.5-pro"
},
"options": {
"systemMessage": "=You're an expert at interpreting meeting transcripts. Summarize the text provided to you in Italian."
},
"messages": {
"values": [
{
"content": "=Full transcript:\n{{ $json.full_transcript }}"
}
]
}
},
"credentials": {
"googlePalmApi": {
"id": "AaNPKXAphyMzRgfA",
"name": "Google Gemini(PaLM) (Eure)"
}
},
"typeVersion": 1
},
{
"id": "fa0b5315-4211-48da-9a37-15e770d2cfd8",
"name": "转MD",
"type": "n8n-nodes-base.markdown",
"position": [
2528,
352
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.content.parts[0].text }}"
},
"typeVersion": 1
},
{
"id": "1b18001c-bd1a-4976-b4ab-c39b207d9cc0",
"name": "邮件撰写器",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
2128,
352
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.5-pro",
"cachedResultName": "models/gemini-2.5-pro"
},
"options": {
"systemMessage": "=You must combine the two texts provided to you and make a complete email about what was discussed in the meeting in a single text to send to the client."
},
"messages": {
"values": [
{
"content": "=Summary\n'''\n{{ $json.text }}\n'''"
}
]
}
},
"credentials": {
"googlePalmApi": {
"id": "AaNPKXAphyMzRgfA",
"name": "Google Gemini(PaLM) (Eure)"
}
},
"typeVersion": 1
},
{
"id": "b8e6610b-0e1c-423d-adc7-ca954e9f4c9b",
"name": "会议摘要专家",
"type": "@n8n/n8n-nodes-langchain.googleGemini",
"position": [
1312,
240
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "models/gemini-2.5-pro",
"cachedResultName": "models/gemini-2.5-pro"
},
"options": {
"systemMessage": "=You're an expert at interpreting meeting transcripts. You aggregate and summarize the texts provided to you."
},
"messages": {
"values": [
{
"content": "=Short summary:\n{{ $json.short_summary }}\n\nShort overview:\n{{ $json.short_overview }}\n\nOverview:\n{{ $json.overview }}"
}
]
}
},
"credentials": {
"googlePalmApi": {
"id": "AaNPKXAphyMzRgfA",
"name": "Google Gemini(PaLM) (Eure)"
}
},
"typeVersion": 1
},
{
"id": "6cead83a-0661-4e2d-a1f6-d2d8469a07ae",
"name": "起草给客户的邮件",
"type": "n8n-nodes-base.gmail",
"position": [
2752,
352
],
"webhookId": "a9460f49-968a-412d-8805-9c583f23c52f",
"parameters": {
"message": "={{ $json.data }}",
"options": {},
"subject": "Recap Meeting",
"resource": "draft"
},
"credentials": {
"gmailOAuth2": {
"id": "nyuHvSX5HuqfMPlW",
"name": "Gmail account (n3w.it)"
}
},
"typeVersion": 2.1
},
{
"id": "a879cf0d-3d91-45bb-b58d-6b92b5aa2b19",
"name": "回顾转MD",
"type": "n8n-nodes-base.markdown",
"position": [
1808,
576
],
"parameters": {
"mode": "markdownToHtml",
"options": {},
"markdown": "={{ $json.content.parts[0].text }}"
},
"typeVersion": 1
},
{
"id": "5c0ee665-875d-4676-963d-c36ea029c62c",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-672
],
"parameters": {
"color": 3,
"width": 832,
"height": 352,
"content": "## Fireflies会议转录和摘要自动化"
},
"typeVersion": 1
},
{
"id": "d889fe43-dc9b-4147-b754-536d05826c03",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-288
],
"parameters": {
"width": 832,
"height": 144,
"content": "### 初步步骤"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2f8ef654-3e08-4219-bc75-281c8d8dff4f",
"connections": {
"Code1": {
"main": [
[
{
"node": "Get a transcript",
"type": "main",
"index": 0
}
]
]
},
"Merge": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
},
"To MD": {
"main": [
[
{
"node": "Draft email to client",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Get a transcript",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Email writer",
"type": "main",
"index": 0
}
]
]
},
"Full to MD": {
"main": [
[
{
"node": "Send Full meeting summary",
"type": "main",
"index": 0
}
]
]
},
"Recap to MD": {
"main": [
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"Set summary": {
"main": [
[
{
"node": "Meeting summary expert",
"type": "main",
"index": 0
}
]
]
},
"Email writer": {
"main": [
[
{
"node": "To MD",
"type": "main",
"index": 0
}
]
]
},
"Set senteces": {
"main": [
[
{
"node": "Full transcript",
"type": "main",
"index": 0
}
]
]
},
"Get a message": {
"main": [
[
{
"node": "Set Meeting link",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Get a message",
"type": "main",
"index": 0
}
]
]
},
"Set MeetingId": {
"main": [
[
{
"node": "Get a transcript",
"type": "main",
"index": 0
}
]
]
},
"Full transcript": {
"main": [
[
{
"node": "Expert Meeting transcripts",
"type": "main",
"index": 0
}
]
]
},
"Get a transcript": {
"main": [
[
{
"node": "Set senteces",
"type": "main",
"index": 0
},
{
"node": "Set summary",
"type": "main",
"index": 0
}
]
]
},
"Set Meeting link": {
"main": [
[
{
"node": "Information Extractor",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "Information Extractor",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Information Extractor": {
"main": [
[
{
"node": "Code1",
"type": "main",
"index": 0
}
]
]
},
"Meeting summary expert": {
"main": [
[
{
"node": "Recap to MD",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Expert Meeting transcripts": {
"main": [
[
{
"node": "Full to MD",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"When clicking ‘Execute workflow’": {
"main": [
[
{
"node": "Set MeetingId",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 文档提取, AI 摘要总结
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用VEXA、OpenAI和Mem0自动化会议智能分析
使用VEXA、OpenAI和Mem0自动化会议对话洞察分析
Set
Code
Merge
+13
26 节点Stephan Koning
文档提取
在可视化参考库中探索n8n节点
在可视化参考库中探索n8n节点
If
Ftp
Set
+93
113 节点I versus AI
其他
使用ScrapeGraph AI提取n8n社区最近添加的工作流
使用ScrapeGraphAI和Gemini提取和存储n8n社区最近添加的工作流
Set
Merge
Split Out
+12
21 节点Davide
杂项
潜在客户开发与邮件工作流
使用Google Maps、SendGrid和AI自动化B2B潜在客户开发与邮件营销
If
Set
Code
+21
141 节点Ezema Kingsley Chibuzo
潜在客户开发
使用AI分析检测病毒式YouTube视频并发送邮件报告
使用AI分析检测病毒式YouTube视频并发送邮件报告
Set
Code
Sort
+14
26 节点gclbck
杂项
使用 AI 和 Gmail 自动更新 YNAB 中的亚马逊交易备注
使用 AI 和 Gmail 自动更新 YNAB 中的亚马逊交易备注
If
Set
Wait
+13
30 节点Angel Menendez
文档提取
工作流信息
难度等级
高级
节点数量26
分类2
节点类型14
作者
Davide
@n3witaliaFull-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza
外部链接
在 n8n.io 查看 →
分享此工作流