AutomationFlowsAI & RAG › Create AI Meeting Summaries with Fireflies Transcripts & Dart Tasks Using Gemini

Create AI Meeting Summaries with Fireflies Transcripts & Dart Tasks Using Gemini

ByDart @dart-team on n8n.io

Automatically generate a meeting summary from your meetings through Fireflies.ai, save it to a Dart document, and create a review task with the meeting link attached.

Webhook trigger★★★★☆ complexityAI-powered17 nodesN8N Nodes Dart@Firefliesai/N8N Nodes FirefliesGoogle Gemini ChatAgent
AI & RAG Trigger: Webhook Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #10851 — we link there as the canonical source.

This workflow follows the Agent → Google Gemini Chat recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "uWXfAKNr8y3eNGPN",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Fireflies Meeting Summary Generator",
  "tags": [],
  "nodes": [
    {
      "id": "e85d42cb-2d0c-4ef3-bf74-8da917225114",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -496,
        1440
      ],
      "parameters": {
        "path": "437a1a60-35af-4c81-9058-176d825b7173",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "5e60de8c-9768-4596-8cf2-6fca402597d0",
      "name": "Retrieve an existing folder",
      "type": "n8n-nodes-dart.dart",
      "position": [
        752,
        1456
      ],
      "parameters": {
        "id": "u4FhgTk3stn7",
        "resource": "Folder",
        "operation": "Get Folder",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4b35b0d9-4fa9-489d-a64a-77f388647de8",
      "name": "Create a new doc",
      "type": "n8n-nodes-dart.dart",
      "position": [
        1168,
        1472
      ],
      "parameters": {
        "item": "={\n  \"title\": \"{{ $('Get a transcript').item.json.data.title }}\",\n  \"text\": \"Overview:\\n\\n{{ $('Parsing stage for logic result').item.json.summary.overview }}\\n\\nSummary:\\n\\n{{ $('Parsing stage for logic result').item.json.summary.summary }}\\n\\nKey items:\\n\\n{{ $('Parsing stage for logic result').item.json.summary.key_items }}\\n\\nAction Items:\\n\\n{{ $('Parsing stage for logic result').item.json.summary.action_items }}\"\n}\n",
        "resource": "Doc",
        "operation": "Create Doc",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "20b69417-1bfc-46aa-9248-cef1bacccf5c",
      "name": "Create a new task",
      "type": "n8n-nodes-dart.dart",
      "position": [
        2240,
        1488
      ],
      "parameters": {
        "item": "={\n  \"title\": \"Review recent meeting: {{ $('Get a transcript').item.json.data.title }}\",\n\n  \"description\": \"View meeting summary here: {{ $json.item.htmlUrl }} \\n \\n [Fireflies meeting link]({{ $('Get a transcript').item.json.data.transcript_url }})\"\n}\n",
        "resource": "Task",
        "operation": "Create Task",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "56073419-d61f-4ba3-ab34-3a0570404e00",
      "name": "Retrieve an existing dartboard",
      "type": "n8n-nodes-dart.dart",
      "position": [
        1616,
        1456
      ],
      "parameters": {
        "id": "K7jRC0JC2Wxz",
        "resource": "Dartboard",
        "operation": "Get Dartboard",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f3ea69f3-cbd3-47b4-a321-4b2e0f39645b",
      "name": "Retrieve an existing doc",
      "type": "n8n-nodes-dart.dart",
      "position": [
        2048,
        1488
      ],
      "parameters": {
        "id": "={{ $('Create a new doc').item.json.item.id }}",
        "resource": "Doc",
        "operation": "Get Doc",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "aa95f65d-5812-4d3d-879d-ffaf4cf8692c",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1056,
        1136
      ],
      "parameters": {
        "width": 448,
        "height": 576,
        "content": "## Meeting Summary Generator (Fireflies.AI \u2192 Dart)  \nAutomatically generate a meeting summary from your meetings through Fathom, save it to a Dart document, and create a review task with the Fathom link attached.  \n\n### Who\u2019s It For  \n- Teams or individuals needing automatic meeting notes  \n- Project managers tracking reviews and actions  \n- Users of Fireflies + Dart for streamlined documentation  \n\n### How to Set Up  \n- Connect your Dart account (workspace + folder access)  \n- Add your PROD webhook link in the webhook node to Fireflies API settings ([Docs](https://docs.fireflies.ai/graphql-api/webhooks)) \n- Add your [API key](https://docs.fireflies.ai/fundamentals/authorization) on the Fireflies Transcript node\n- Replace dummy Folder ID and Dartboard ID with your targets  \n- Choose your preferred AI model for summaries  \n\n### Customizing the Workflow  \n- Edit the AI prompt to adjust tone or style  \n- Add or change summary sections (e.g., Key takeaways, Action Items, Summary)  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "022adf2d-b07b-400a-b3fa-f15ed2e08881",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        1072
      ],
      "parameters": {
        "color": 7,
        "width": 512,
        "height": 672,
        "content": "## 1. Workflow launch through Fireflies AI webhook trigger\nTriggered by an online meeting completion connected to Fireflies\n\n**Summary categorization**\nAI generates summary from fireflies transcript node with these categories in mind:\n- Overview\n- Summary\n- Key items \n- Action items\n\n\n**Model selection**\nTest and use any AI chat model. (Results could vary by model quality)"
      },
      "typeVersion": 1
    },
    {
      "id": "6d97e704-98fb-412c-b11a-536c62e95dc0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        1200
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 416,
        "content": "## 2. Parsing the AI output\nParse output into a usable format for the next nodes.\n\n### JSON formatting\n- **Parse:** AI output into structured JSON  \n- **Extract:** Key takeaways, Topics covered, Next items, Action items\n- **Ensure:** Clean, consistent, taggable data"
      },
      "typeVersion": 1
    },
    {
      "id": "4d739392-bcb0-4305-92a9-f17b47e77082",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        624,
        1200
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 432,
        "content": "## 3. Retrieve target folder\nSelect the Folder in your workspace where new meeting documents will be created.\n\n### Folder targeting\n- Locate your Folder ID in the workspace  \n- Replace the placeholder ID in this node\n- Confirms all generated documents route to the correct folder\n"
      },
      "typeVersion": 1
    },
    {
      "id": "0a46bf0e-76da-4bc1-971c-8f9a6ad162fc",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1040,
        1200
      ],
      "parameters": {
        "color": 7,
        "width": 368,
        "height": 432,
        "content": "## 4. Create new document\nThis step creates a new document in your selected folder containing the generated meeting summary.\n\n### Document creation includes\n- Document title\n- Key takeaways\n- Topics covered\n- Next items\n- Action items \n"
      },
      "typeVersion": 1
    },
    {
      "id": "5cea5d1b-c220-44cb-96af-52f1c5d026ae",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1472,
        1200
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 432,
        "content": "## 5. Retrieve target dartboard\nSelect the Dartboard in your workspace where new tasks will be created.\n\n### Dartboard targeting\n- Locate your Dartboard ID in the workspace  \n- Replace the placeholder ID in this node\n- Confirms all generated tasks route to the correct board\n"
      },
      "typeVersion": 1
    },
    {
      "id": "2af85a1d-db82-4e7e-896b-f260e40d3f4c",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1936,
        1168
      ],
      "parameters": {
        "color": 7,
        "width": 496,
        "height": 496,
        "content": "## 6. Create a review task in Dart  \nCreate a task in Dart to review the summary of your recent online meeting through your newly linked document.  \n\n### Task creation includes  \n- **CTA to view meeting summary** + linked newly generated document  \n- **CTA to view Fireflies meeting recording** + Fathom recording link  \n\n### Outcome  \nA review task is automatically generated in Dart, connecting both your meeting summary and Fireflies recording for seamless follow-up.  "
      },
      "typeVersion": 1
    },
    {
      "id": "2b001f3c-1024-4f9b-8bbd-9149e58a27bf",
      "name": "Get a transcript",
      "type": "@firefliesai/n8n-nodes-fireflies.fireflies",
      "position": [
        -272,
        1440
      ],
      "parameters": {
        "transcriptId": "={{ $json.body.meetingId }}"
      },
      "credentials": {
        "firefliesApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "718dbe93-e008-42eb-97e3-ecd0351cb3ca",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -128,
        1600
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4a68f164-43bb-45bf-bd7a-6a329b63ed07",
      "name": "Parsing stage for logic result",
      "type": "n8n-nodes-base.code",
      "position": [
        336,
        1456
      ],
      "parameters": {
        "jsCode": "// Get raw input\nlet rawString = $input.first().json.output;\n\n// Clean up markdown formatting if present\nrawString = rawString\n  .trim()\n  .replace(/^```(json)?/i, '')  // remove leading ``` or ```json\n  .replace(/```$/i, '')         // remove trailing ```\n  .trim();\n\n// Try parsing the cleaned string\nlet parsed;\ntry {\n  parsed = JSON.parse(rawString);\n} catch (error) {\n  throw new Error(`Failed to parse JSON. Cleaned input was:\\n${rawString}\\n\\nError: ${error.message}`);\n}\n\nreturn parsed;"
      },
      "typeVersion": 2
    },
    {
      "id": "4d5c9cab-ee63-4731-a702-625f28b4e0a8",
      "name": "Fireflies auto-summary",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -96,
        1440
      ],
      "parameters": {
        "text": "=You are a silent, automated JSON-generating AI. Your only purpose is to analyze a meeting transcript and return a single, valid JSON object.\n\nCRITICAL RULES:\n\n- Your entire response MUST be a valid JSON object.\n- Do NOT include any text, greetings, or explanations before or after the JSON.\n- Do NOT wrap the JSON in Markdown code fences.\n- Do NOT output any characters before `{` or after `}`.\n\nTask:\nAnalyze the following input transcript and generate a JSON object according to the schema defined below.\n\nInput Transcript:\n{{ $json.data.summary.overview }}\n{{ $json.data.summary.short_summary }}\n{{ $json.data.summary.bullet_gist }}\n{{ $json.data.summary.action_items }}\n\nJSON Output Schema (you MUST follow EXACTLY):\n\n{\n  \"summary\": {\n    \"overview\": \"\",\n    \"summary\": \"\",\n    \"key_items\": \"\",\n    \"action_items\": \"\"\n  }\n}\n\nSchema Details:\n\n- summary.overview: (String) A brief, one-sentence overview of the meeting.\n- summary.summary: (String) A concise, one-paragraph summary of the discussion.\n- summary.key_items: (String) A single string containing all major decisions or key points. If multiple items exist, join them with semicolons.\n- summary.action_items: (String) A single string containing all action items. If multiple items exist, join them with semicolons. Each item should follow this format:\n\n  description - assigned_to - due_date\n\n  Example:\n  \"Prepare budget report - Sarah Lee - 2025-01-15\"\n\nData Handling Rules:\n\n- If no information is found for any field, return an empty string.\n- Do NOT omit any keys.\n- Ensure all text is in plain English and properly escaped for JSON.\n- Convert key items and action items to plain STRING output (not arrays).\n",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6d335d70-508c-4d20-8de6-462ef48bd9ee",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Get a transcript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a new doc": {
      "main": [
        [
          {
            "node": "Retrieve an existing dartboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get a transcript": {
      "main": [
        [
          {
            "node": "Fireflies auto-summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fireflies auto-summary": {
      "main": [
        [
          {
            "node": "Parsing stage for logic result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Fireflies auto-summary",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve an existing doc": {
      "main": [
        [
          {
            "node": "Create a new task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve an existing folder": {
      "main": [
        [
          {
            "node": "Create a new doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parsing stage for logic result": {
      "main": [
        [
          {
            "node": "Retrieve an existing folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve an existing dartboard": {
      "main": [
        [
          {
            "node": "Retrieve an existing doc",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automatically generate a meeting summary from your meetings through Fireflies.ai, save it to a Dart document, and create a review task with the meeting link attached.

Source: https://n8n.io/workflows/10851/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Webhook Trigger: The workflow starts when Fireflies notifies that a transcription has finished. Transcript Retrieval: The transcript is pulled from Fireflies based on the meeting ID. Pre-processing: T

@Firefliesai/N8N Nodes Fireflies, Google Gemini Chat, ClickUp +2
AI & RAG

⏺ 🚀 How it works

Agent, Anthropic Chat, Output Parser Structured +6
AI & RAG

Are you drowning in daily operational chaos, desperately trying to juggle sales, projects, content, and client communication? Imagine an AI brain that handles it all, freeing you to lead your business

Telegram Trigger, Telegram, OpenAI +13
AI & RAG

secretaria. Uses postgres, n8n-nodes-evolution-api, openAi, httpRequest. Webhook trigger; 71 nodes.

Postgres, N8N Nodes Evolution Api, OpenAI +12
AI & RAG

Resume Screening & Behavioral Interviews with Gemini, Elevenlabs, & Notion ATS copy. Uses outputParserStructured, chainLlm, googleDrive, stickyNote. Webhook trigger; 67 nodes.

Output Parser Structured, Chain Llm, Google Drive +9