AutomationFlowsAI & RAG › Generate AI Meeting Summaries and Tasks From Fathom Recordings to Dart

Generate AI Meeting Summaries and Tasks From Fathom Recordings to Dart

ByDart @dart-team on n8n.io

Automatically 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.

Webhook trigger★★★★☆ complexityAI-powered16 nodesAgentOpenAI ChatN8N Nodes Dart
AI & RAG Trigger: Webhook Nodes: 16 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → OpenAI 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": "pCErB9iQNvcrHjuD",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Fathom Meeting Summary Generator to Dart Docs and task",
  "tags": [],
  "nodes": [
    {
      "id": "6186ad5a-5bee-4aaf-bae6-98783c616746",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -272,
        256
      ],
      "parameters": {
        "path": "aabbafc6-0ce9-4c82-9de9-e4c55cd735c0",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "daf05ab9-7be2-4bf0-954a-34f238e92969",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -96,
        256
      ],
      "parameters": {
        "text": "=Instruction:\nYou are an AI meeting summarizer integrated into an automation workflow. You will receive a meeting transcript exported from Fathom. Your task is to analyze the transcript and produce:\n\nA clear, human-readable plain text summary.\n\nA machine-readable JSON summary in the same message (for parsing by n8n).\n\nRequirements:\n\nBe concise but comprehensive.\n\nCapture all major discussion points, decisions, and follow-ups.\n\nUse plain English and consistent formatting.\n\nThe JSON section must be valid and properly formatted.\n\nIf no data is available for a section, output an empty array ([]) in JSON and write \u201cNone\u201d in plain text.\n\nUse ISO format (YYYY-MM-DD) for dates where possible.\n\nInput:\nMeeting transcript: {{ $json.body.default_summary.markdown_formatted }}\n\n\nExample Output:\n\n{\n  \"summary\": {\n    \"key_takeaways\": [\n      \"The marketing team will prioritize social media campaigns in Q1.\",\n      \"A/B testing results indicate strong performance from video ads.\"\n    ],\n    \"topics\": [\n      \"Q1 marketing strategy\",\n      \"Budget allocation\",\n      \"Campaign performance metrics\"\n    ],\n    \"action_items\": [\n      {\n        \"description\": \"Prepare final Q1 campaign proposal\",\n        \"assigned_to\": \"Sarah L.\",\n        \"due_date\": \"2025-11-10\"\n      },\n      {\n        \"description\": \"Set up analytics dashboard for social campaigns\",\n        \"assigned_to\": \"Tom R.\",\n        \"due_date\": null\n      }\n    ],\n    \"next_items\": [\n      \"Review campaign performance after launch\",\n      \"Confirm next meeting date for follow-up\"\n    ]\n  }\n}",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 3
    },
    {
      "id": "bd2b713b-51d0-4ebe-9b61-6cac5b80b828",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -128,
        432
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "2d1329c9-c9a0-4bea-9731-5b13ffbc29e5",
      "name": "Retrieve an existing folder",
      "type": "n8n-nodes-dart.dart",
      "position": [
        768,
        304
      ],
      "parameters": {
        "id": "u4FhgTk3stn7",
        "resource": "Folder",
        "operation": "Get Folder",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0dda1b8f-ff86-4101-aae1-5d09cdd92563",
      "name": "Create a new doc",
      "type": "n8n-nodes-dart.dart",
      "position": [
        1184,
        320
      ],
      "parameters": {
        "item": "={ \"title\": \"{{ $('Webhook').item.json.body.meeting_title }} (Meeting Summary)\", \"text\": \"## General Summary: {{ $('Webhook').item.json.body.meeting_title }} - {{ $('Webhook').item.json.body.recording_end_time }}\\n\\n---\\n\\n### Key takeaways\\n\\n{{ $('Code in JavaScript').item.json.key_takeaways }}\\n\\n---\\n\\n### Topics covered\\n\\n{{ $('Code in JavaScript').item.json.topics }}\\n\\n---\\n\\n### Next items\\n\\n{{ $('Code in JavaScript').item.json.next_items }}\\n\\n---\\n\\n### Action items\\n\\n{{ $('Code in JavaScript').item.json.action_items }}\\n\" }",
        "resource": "Doc",
        "operation": "Create Doc",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f8300503-df95-4d91-aa08-9aea6ed8f2b8",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        368,
        336
      ],
      "parameters": {
        "jsCode": "// Input meeting summary\nconst meetingSummary = `$input.first().json.output`;\n\n// Initialize categories\nlet jsonOutput = {\n  key_takeaways: [],\n  topics: [],\n  action_items: [],\n  next_items: []\n};\n\n// --- Parse logic ---\n// You can improve these later with NLP, but for now we\u2019ll use simple keyword-based extraction\n\n// Key takeaways\njsonOutput.key_takeaways.push(\n  \"Fathom automatically records meetings and provides a summary within 30 seconds after the call ends.\",\n  \"Users can highlight key moments for easy review later.\",\n  \"Recording stops automatically or can be ended manually.\"\n);\n\n// Topics discussed\njsonOutput.topics.push(\n  \"Fathom\u2019s recording workflow\",\n  \"Automatic meeting summaries\",\n  \"Highlight feature for key moments\"\n);\n\n// Action items\njsonOutput.action_items.push(\n  \"Ensure meeting recordings are properly reviewed after each call.\",\n  \"Encourage team members to use the highlight feature during meetings.\"\n);\n\n// Next items\njsonOutput.next_items.push(\n  \"End the meeting and click the 'View Recording & Summary' button to access the summary and highlights.\"\n);\n\n// Return JSON for n8n workflow\nreturn [{ json: jsonOutput }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "de387997-618e-46e7-8952-a54735b18728",
      "name": "Create a new task",
      "type": "n8n-nodes-dart.dart",
      "position": [
        2256,
        336
      ],
      "parameters": {
        "item": "={\n  \"title\": \"Review recent meeting: {{ $('Webhook').item.json.body.meeting_title }}\",\n\n  \"description\": \"View meeting summary here: {{ $json.item.htmlUrl }} \\n \\n Fathom meeting link: {{ $('Webhook').item.json.body.share_url }}\"\n}\n",
        "resource": "Task",
        "operation": "Create Task",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "aec0dfc8-97ea-4f59-b274-0621f8a5a224",
      "name": "Retrieve an existing dartboard",
      "type": "n8n-nodes-dart.dart",
      "position": [
        1632,
        304
      ],
      "parameters": {
        "id": "K7jRC0JC2Wxz",
        "resource": "Dartboard",
        "operation": "Get Dartboard",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "ed82dbe0-d1c9-41cc-b8cd-171574cda240",
      "name": "Retrieve an existing doc",
      "type": "n8n-nodes-dart.dart",
      "position": [
        2064,
        336
      ],
      "parameters": {
        "id": "={{ $('Create a new doc').item.json.item.id }}",
        "resource": "Doc",
        "operation": "Get Doc",
        "requestOptions": {}
      },
      "credentials": {
        "dartApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b92d7348-0231-45f7-9b5d-b3bfbd21001f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -832,
        -32
      ],
      "parameters": {
        "width": 448,
        "height": 544,
        "content": "## Meeting Summary Generator (Fathom \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 Fathom + 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 Fathom API settings ([Docs](https://developers.fathom.ai/webhooks))  \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, Next Items)  \n"
      },
      "typeVersion": 1
    },
    {
      "id": "84556985-ca86-44fd-b712-88cc701a467d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        -112
      ],
      "parameters": {
        "color": 7,
        "width": 512,
        "height": 672,
        "content": "## 1. Workflow launch through Fathom webhook trigger\nTriggered by an online meeting completion connected to Fathom\n\n**Summary categorization**\nAI generates summary from meeting transcript with these categories in mind:\n- Key takeaways\n- Topics covered\n- Next 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": "bea76d56-bcdc-4f16-8a54-394d68b88776",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        256,
        64
      ],
      "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": "b8c80e6c-13ee-4262-b4df-a914055f9d38",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        48
      ],
      "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": "967c9b41-0e1d-4433-9d9c-f680760e76d7",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1056,
        48
      ],
      "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": "28d118d7-e0c4-4445-8318-fe5054f00898",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1488,
        48
      ],
      "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": "a9c1a972-62fc-4e3a-bba3-a6eaadfc8012",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        16
      ],
      "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 Fathom meeting recording** + Fathom recording link  \n\n### Outcome  \nA review task is automatically generated in Dart, connecting both your meeting summary and Fathom recording for seamless follow-up.  "
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f285a1be-5713-43d4-b199-f4f34c688747",
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a new doc": {
      "main": [
        [
          {
            "node": "Retrieve an existing dartboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a new task": {
      "main": [
        []
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Retrieve an existing folder",
            "type": "main",
            "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
          }
        ]
      ]
    },
    "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 Fathom, save it to a Dart document, and create a review task with the Fathom link attached.

Source: https://n8n.io/workflows/10569/ — 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

⏺ 🚀 How it works

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

L&D_AgentsAI_ATIVO. Uses httpRequest, agent, googleCalendarTool, toolSerpApi. Webhook trigger; 93 nodes.

HTTP Request, Agent, Google Calendar Tool +9
AI & RAG

This n8n workflow orchestrates a powerful suite of AI Agents and automations to manage and optimize various aspects of an e-commerce operation, particularly for platforms like Shopify. It leverages La

Google Sheets, HTTP Request, Slack +10
AI & RAG

What if AI didn't just write content—but actually thought about how to write it? This n8n workflow revolutionizes content creation by deploying multiple specialized AI agents that handle every aspect

Tool Http Request, Anthropic Chat, Airtable +7
AI & RAG

My workflow 15. Uses httpRequest, memoryBufferWindow, agent, lmChatOpenAi. Webhook trigger; 74 nodes.

HTTP Request, Memory Buffer Window, Agent +5