Automatización de transcripción y resumen de reuniones de Fireflies
Este es unDocument Extraction, AI Summarizationflujo de automatización del dominio deautomatización que contiene 26 nodos.Utiliza principalmente nodos como Set, Code, Gmail, Merge, Webhook. Automatización de resúmenes de reuniones a partir de transcripciones de Fireflies con Gemini y Gmail
- •Cuenta de Google y credenciales de API de Gmail
- •Punto final de HTTP Webhook (n8n generará automáticamente)
- •Clave de API de OpenAI
Nodos utilizados (26)
{
"id": "MBDLFA4yk0BfFQcM",
"meta": {
"instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
"templateCredsSetupCompleted": true
},
"name": "Fireflies Meeting Transcript & Summary Automation",
"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": "Obtener una transcripción",
"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": "Al hacer clic en 'Ejecutar flujo de trabajo'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-784,
-80
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e00e737b-7e6a-46d2-8bb4-6c3bdd268c90",
"name": "Gmail Trigger",
"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": "Obtener un mensaje",
"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": "Extractor de Información",
"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 Chat Model2",
"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": "Code1",
"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": "Establecer enlace de reunión",
"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": "Establecer MeetingId",
"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": "Enviar un mensaje1",
"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": "Combinar",
"type": "n8n-nodes-base.merge",
"position": [
1824,
112
],
"parameters": {},
"typeVersion": 3.2
},
{
"id": "d51ab401-514d-4683-9cf6-b9534b634b5e",
"name": "Agregar",
"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": "Establecer oraciones",
"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": "Establecer resumen",
"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": "Transcripción completa",
"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": "Completa a 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": "Enviar resumen completo de la reunión",
"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": "Transcripciones de reuniones expertas",
"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": "A 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": "Escritor de correo",
"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": "Experto en resúmenes de reuniones",
"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": "Borrador de correo para el cliente",
"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": "Resumen a 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": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-672
],
"parameters": {
"color": 3,
"width": 832,
"height": 352,
"content": "## Fireflies Meeting Transcript & Summary Automation\nThis workflow automates the process of retrieving meeting transcripts from [Fireflies.ai](https://app.fireflies.ai/login?referralCode=01K0V2Z1QHY76ZGY9450251C99), extracting and summarizing relevant content using Google Gemini, and sending or drafting well-formatted summaries and emails via Gmail.\n\n**Fireflies** is an AI-powered meeting assistant that automatically records, transcribes, and summarizes meetings. It integrates with popular video conferencing tools like Zoom, Google Meet, and Microsoft Teams, helping teams capture key insights and action items without manual note-taking.\n\n\nThis workflow automates meeting recap generation, from email detection to AI-powered summarization and delivery.\n\n3 possible triggers:\n- Manual trigger (set-up the MeetingId)\n- Webhook trigger\n- Gmail trigger\n"
},
"typeVersion": 1
},
{
"id": "d889fe43-dc9b-4147-b754-536d05826c03",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-784,
-288
],
"parameters": {
"width": 832,
"height": 144,
"content": "### PRELIMINARY STEPS\n- Sign up for FREE to [Fireflies.ai](https://app.fireflies.ai/login?referralCode=01K0V2Z1QHY76ZGY9450251C99) \n- Get API Key in \"Settings\"->\"Developer Settings\"->\"API Key\"\n- If you want to activate \"Webhook\", set n8n Webhook trigger url on \"Settings\"->\"Developer Settings\"->\"Webhook\"\n- In send:message Gmail node set your email address"
},
"typeVersion": 1
}
],
"active": true,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "2f8ef654-3e08-4219-bc75-281c8d8dff4f",
"connections": {
"bd1ec6e4-cbe1-499e-9a72-dfc3c1a8395c": {
"main": [
[
{
"node": "171f9f42-d428-4788-b922-eacdf20ec81a",
"type": "main",
"index": 0
}
]
]
},
"2aa61dca-63be-4085-a994-0be038738ab3": {
"main": [
[
{
"node": "d51ab401-514d-4683-9cf6-b9534b634b5e",
"type": "main",
"index": 0
}
]
]
},
"fa0b5315-4211-48da-9a37-15e770d2cfd8": {
"main": [
[
{
"node": "6cead83a-0661-4e2d-a1f6-d2d8469a07ae",
"type": "main",
"index": 0
}
]
]
},
"2e6b7379-7002-48ce-b96e-9ce85802b158": {
"main": [
[
{
"node": "171f9f42-d428-4788-b922-eacdf20ec81a",
"type": "main",
"index": 0
}
]
]
},
"d51ab401-514d-4683-9cf6-b9534b634b5e": {
"main": [
[
{
"node": "1b18001c-bd1a-4976-b4ab-c39b207d9cc0",
"type": "main",
"index": 0
}
]
]
},
"d2de3745-e563-4c52-9b0d-8754ffc45b31": {
"main": [
[
{
"node": "09926a2c-386d-4da6-9087-5d9bf01a274c",
"type": "main",
"index": 0
}
]
]
},
"a879cf0d-3d91-45bb-b58d-6b92b5aa2b19": {
"main": [
[
{
"node": "3da55996-bd1f-43f1-8d10-4294db196b45",
"type": "main",
"index": 0
}
]
]
},
"df665dab-2ee4-42e6-bd43-0ee3e2349335": {
"main": [
[
{
"node": "b8e6610b-0e1c-423d-adc7-ca954e9f4c9b",
"type": "main",
"index": 0
}
]
]
},
"1b18001c-bd1a-4976-b4ab-c39b207d9cc0": {
"main": [
[
{
"node": "fa0b5315-4211-48da-9a37-15e770d2cfd8",
"type": "main",
"index": 0
}
]
]
},
"4ea0f903-9b61-4c0c-a85d-a084ebf865d1": {
"main": [
[
{
"node": "00e4b3cf-5fb0-4818-b361-c5eef944f0e8",
"type": "main",
"index": 0
}
]
]
},
"ba732ec4-b1d0-456f-93e1-8697f327207f": {
"main": [
[
{
"node": "76cf2b34-d1a4-4a4e-88c9-cae79f7133ee",
"type": "main",
"index": 0
}
]
]
},
"e00e737b-7e6a-46d2-8bb4-6c3bdd268c90": {
"main": [
[
{
"node": "ba732ec4-b1d0-456f-93e1-8697f327207f",
"type": "main",
"index": 0
}
]
]
},
"ad53b5f9-7b95-49f3-aca6-cd9b6e5aa8de": {
"main": [
[
{
"node": "171f9f42-d428-4788-b922-eacdf20ec81a",
"type": "main",
"index": 0
}
]
]
},
"00e4b3cf-5fb0-4818-b361-c5eef944f0e8": {
"main": [
[
{
"node": "9a46a1ad-72c8-4d36-a35b-fa5ee5fd0a22",
"type": "main",
"index": 0
}
]
]
},
"171f9f42-d428-4788-b922-eacdf20ec81a": {
"main": [
[
{
"node": "4ea0f903-9b61-4c0c-a85d-a084ebf865d1",
"type": "main",
"index": 0
},
{
"node": "df665dab-2ee4-42e6-bd43-0ee3e2349335",
"type": "main",
"index": 0
}
]
]
},
"76cf2b34-d1a4-4a4e-88c9-cae79f7133ee": {
"main": [
[
{
"node": "73d609de-1675-488c-9d8c-68adcaf53870",
"type": "main",
"index": 0
}
]
]
},
"c4c85559-784b-4b8b-a944-7a78b0266328": {
"ai_languageModel": [
[
{
"node": "73d609de-1675-488c-9d8c-68adcaf53870",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"73d609de-1675-488c-9d8c-68adcaf53870": {
"main": [
[
{
"node": "bd1ec6e4-cbe1-499e-9a72-dfc3c1a8395c",
"type": "main",
"index": 0
}
]
]
},
"b8e6610b-0e1c-423d-adc7-ca954e9f4c9b": {
"main": [
[
{
"node": "a879cf0d-3d91-45bb-b58d-6b92b5aa2b19",
"type": "main",
"index": 0
},
{
"node": "2aa61dca-63be-4085-a994-0be038738ab3",
"type": "main",
"index": 1
}
]
]
},
"9a46a1ad-72c8-4d36-a35b-fa5ee5fd0a22": {
"main": [
[
{
"node": "d2de3745-e563-4c52-9b0d-8754ffc45b31",
"type": "main",
"index": 0
},
{
"node": "2aa61dca-63be-4085-a994-0be038738ab3",
"type": "main",
"index": 0
}
]
]
},
"ee48206c-8bfc-4dd7-aee4-2ff2d8396b25": {
"main": [
[
{
"node": "ad53b5f9-7b95-49f3-aca6-cd9b6e5aa8de",
"type": "main",
"index": 0
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Avanzado - Extracción de documentos, Resumen de IA
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
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
Compartir este flujo de trabajo