8
n8n 中文网amn8n.com

Fireflies会议转录和摘要自动化

高级

这是一个Document Extraction, AI Summarization领域的自动化工作流,包含 26 个节点。主要使用 Set, Code, Gmail, Merge, Webhook 等节点。 使用Gemini和Gmail从Fireflies转录自动化会议摘要

前置要求
  • Google 账号和 Gmail API 凭证
  • HTTP Webhook 端点(n8n 会自动生成)
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 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)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量26
分类2
节点类型14
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者

Full-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 查看

分享此工作流