Fathom + Dart: meeting summaries that drive follow up
Meetings end, everyone rushes to the next thing, and the “notes” live in five places (or nowhere). Then a week later you’re digging for the decision, the owner, and the exact wording because nobody remembers what was agreed.
This is the kind of mess project managers feel daily. A team lead running back-to-back calls sees it too. And if you run a small agency, it shows up as slow follow-through and awkward “remind me what we decided?” emails. This Fathom Dart automation fixes the handoff.
You’ll see how this workflow turns a finished Fathom meeting into a clean Dart doc, then creates a review task with the original Fathom link attached, so nothing slips.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Fathom + Dart: meeting summaries that drive follow up
flowchart LR
subgraph sg0["AI Agent Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/webhook.dark.svg' width='40' height='40' /></div><br/>Webhook"]
n1@{ icon: "mdi:robot", form: "rounded", label: "AI Agent", pos: "b", h: 48 }
n2@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model", pos: "b", h: 48 }
n3@{ icon: "mdi:cog", form: "rounded", label: "Retrieve an existing folder", pos: "b", h: 48 }
n4@{ icon: "mdi:cog", form: "rounded", label: "Create a new doc", pos: "b", h: 48 }
n5["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Code in JavaScript"]
n6@{ icon: "mdi:cog", form: "rounded", label: "Create a new task", pos: "b", h: 48 }
n7@{ icon: "mdi:cog", form: "rounded", label: "Retrieve an existing dartboard", pos: "b", h: 48 }
n8@{ icon: "mdi:cog", form: "rounded", label: "Retrieve an existing doc", pos: "b", h: 48 }
n0 --> n1
n1 --> n5
n4 --> n7
n2 -.-> n1
n5 --> n3
n8 --> n6
n3 --> n4
n7 --> n8
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n1 ai
class n2 aiModel
class n0 api
class n5 code
classDef customIcon fill:none,stroke:none
class n0,n5 customIcon
The Problem: Meeting decisions get lost after the call
Fathom can capture a great transcript, but the moment the meeting ends, the real work begins. Somebody has to turn that raw conversation into something usable: a summary, action items, owners, and what happens next. If that “somebody” is you, it’s a constant context-switch. And if nobody owns it, follow-up becomes guesswork. The cost isn’t just time; it’s momentum. A solid decision made on Tuesday becomes a muddy “I think we said…” by Friday.
It adds up fast. Here’s where it usually breaks down.
- People leave the call with different interpretations, so the next meeting starts with rehashing instead of progress.
- Notes end up in personal docs, Slack threads, or notepad apps, which means there’s no single source of truth.
- Action items get written down but not assigned or reviewed, so follow-through depends on memory and nudges.
- When a stakeholder asks for context, you waste about 30 minutes searching links, timestamps, and “final” versions.
The Solution: Fathom summaries that land in Dart with review tasks
This workflow starts the second your Fathom meeting ends. Fathom pings an n8n webhook, then an AI agent generates a structured meeting summary from the content (not a wall of text). Next, the workflow finds the right destination inside Dart, creates a new Dart document for the meeting, and formats the summary so it reads like something a human would actually send. Finally, it creates a review task in Dart and attaches the Fathom meeting link, so someone can quickly sanity-check the notes and confirm the action items before they spread across your team.
The workflow begins with a webhook trigger from Fathom. Then OpenAI (via the n8n AI Agent) creates the summary and a short transformation step converts it into Dart-friendly fields. After that, Dart nodes generate the meeting document and create a review task tied back to the new doc and the original Fathom link.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you run 10 meetings a week and you want each one summarized, filed, and turned into a follow-up task. Manually, it’s often about 15 minutes to write a decent summary, 5 minutes to format it, and another 5 minutes to create and assign a task, so roughly 25 minutes per meeting (over 4 hours a week). With this workflow, it’s basically zero admin time: the meeting ends, the summary is generated, a Dart doc is created, and a review task appears automatically. You still review, but you’re reviewing instead of starting from scratch.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Fathom to send the “meeting ended” webhook.
- Dart to store docs and manage review tasks.
- OpenAI API key (get it from your OpenAI dashboard).
Skill level: Intermediate. You’ll connect accounts, paste a webhook URL into Fathom, and update a few IDs in Dart.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
Fathom ends a meeting and calls your webhook. That single event kicks off the whole flow, so you’re not uploading files or clicking “run” in n8n.
An AI agent turns the meeting into a structured summary. The workflow uses an OpenAI chat model through n8n’s AI Agent node to produce consistent sections (think decisions, action items, next steps) instead of messy paragraphs.
Dart is prepared and the document is created. The workflow fetches your target folder in Dart, generates the meeting document, then pulls back the created document so the next actions can reference the right URL/ID.
A review task is created with the Fathom link attached. Dart gets a task on the correct board, connected to the new document, so someone can quickly approve or tweak the output before it becomes “official.”
You can easily modify the summary format to match your team’s style, or change where documents and tasks land inside Dart based on client, project, or meeting type. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound endpoint that receives meeting data from your transcript source.
- Add Inbound Webhook Trigger and set HTTP Method to
POST. - Set Path to
aabbafc6-0ce9-4c82-9de9-e4c55cd735c0. - Send test data that includes
body.default_summary.markdown_formatted,body.meeting_title,body.recording_end_time, andbody.share_url.
Step 2: Set Up AI Summarization
Configure the AI agent to summarize the transcript and produce structured JSON for downstream processing.
- Add Summary AI Processor and set Prompt Type to
define. - Paste the full instruction text into Text and ensure the input reference remains
{{ $json.body.default_summary.markdown_formatted }}. - Attach OpenAI Chat Engine as the language model and set the model to
gpt-4.1-mini. - Credential Required: Connect your openAiApi credentials in OpenAI Chat Engine (AI sub-nodes inherit credentials from the parent language model).
Step 3: Transform the Summary Output
Convert the AI output into structured fields that can be inserted into the meeting document.
- Add Transform Summary Script and keep the provided JavaScript Code as-is to generate
key_takeaways,topics,action_items, andnext_items. - Ensure Transform Summary Script receives input directly from Summary AI Processor.
Step 4: Connect Dart and Create the Meeting Document
Retrieve the target folder, create the meeting document, and fetch the created doc for task creation.
- Add Fetch Target Folder and set Resource to
Folder, Operation toGet Folder, and ID to[YOUR_ID]. - Credential Required: Connect your dartApi credentials in Fetch Target Folder.
- Add Generate Meeting Document with Resource set to
Docand Operation toCreate Doc. - Set Item to the full JSON expression:
={ "title": "{{ $('Inbound Webhook Trigger').item.json.body.meeting_title }} (Meeting Summary)", "text": "## General Summary: {{ $('Inbound Webhook Trigger').item.json.body.meeting_title }} - {{ $('Inbound Webhook Trigger').item.json.body.recording_end_time }}\n\n---\n\n### Key takeaways\n\n{{ $('Transform Summary Script').item.json.key_takeaways }}\n\n---\n\n### Topics covered\n\n{{ $('Transform Summary Script').item.json.topics }}\n\n---\n\n### Next items\n\n{{ $('Transform Summary Script').item.json.next_items }}\n\n---\n\n### Action items\n\n{{ $('Transform Summary Script').item.json.action_items }}\n" }. - Credential Required: Connect your dartApi credentials in Generate Meeting Document.
- Add Fetch Created Document and set ID to
{{ $('Generate Meeting Document').item.json.item.id }}, Resource toDoc, and Operation toGet Doc. - Credential Required: Connect your dartApi credentials in Fetch Created Document.
[YOUR_ID] with actual Dart folder and board IDs, or the workflow will fail at fetch steps.Step 5: Create the Review Task in Dart
Attach the created document and meeting link to a review task.
- Add Get Task Board with Resource set to
Dartboard, Operation toGet Dartboard, and ID to[YOUR_ID]. - Credential Required: Connect your dartApi credentials in Get Task Board.
- Add Create Review Task with Resource set to
Taskand Operation toCreate Task. - Set Item to:
={ "title": "Review recent meeting: {{ $('Inbound Webhook Trigger').item.json.body.meeting_title }}", "description": "View meeting summary here: {{ $json.item.htmlUrl }} \n \n Fathom meeting link: {{ $('Inbound Webhook Trigger').item.json.body.share_url }}" }. - Credential Required: Connect your dartApi credentials in Create Review Task.
Execution order follows the flow: Inbound Webhook Trigger → Summary AI Processor → Transform Summary Script → Fetch Target Folder → Generate Meeting Document → Get Task Board → Fetch Created Document → Create Review Task.
Step 6: Test and Activate Your Workflow
Validate the data path, confirm outputs in Dart, and turn on the workflow for production.
- Click Execute Workflow and send a test POST request to the Inbound Webhook Trigger URL.
- Confirm that Generate Meeting Document creates a doc with the summary sections filled in.
- Verify Create Review Task contains the doc link from
{{ $json.item.htmlUrl }}and the meeting link from{{ $('Inbound Webhook Trigger').item.json.body.share_url }}. - Toggle the workflow to Active to begin processing live meeting summaries.
Common Gotchas
- Dart credentials can expire or need specific permissions. If things break, check your Dart workspace and folder access settings first.
- If your AI summary comes back empty sometimes, it’s usually timing or payload shape. Check the webhook sample data in n8n’s execution logs and re-run with a real meeting payload from Fathom.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes once you have your Dart and Fathom accounts ready.
No. You’ll mostly connect accounts and paste IDs into a couple fields. The included code step is already written and usually doesn’t need changes.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs, which are usually a few cents per summary depending on length.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Update the prompt in the Summary AI Processor to match your tone and required sections (for example: Key takeaways, Risks, Decisions, Action items). If you want different document fields in Dart, adjust the Transform Summary Script so the output maps cleanly into your Dart document template. Many teams also change which Dart folder is targeted based on project name or meeting type.
Usually it’s expired credentials or missing workspace/folder permissions in Dart. Reconnect the Dart account in n8n and confirm the integration can access the exact workspace and folder you’re writing into. Also check that you replaced the dummy Folder ID and Dartboard ID with real ones, because the workflow will fail fast if those point to something you can’t access.
A lot.
Often, yes, if you care about consistency and control. This workflow uses an AI agent step plus multiple Dart actions (find folder, create doc, fetch doc, create task), which is where Zapier and Make can get pricey or awkward as the logic grows. n8n also gives you the self-host option, so you’re not watching task counts every time you have a busy week of meetings. That said, if you only want “send the summary to a doc” with no review task, Zapier can be quicker to click together. If you’re unsure, Talk to an automation expert and we’ll point you in the right direction.
Once this is live, your meetings stop being “recorded somewhere” and start becoming work that actually moves forward. Set it up once, then let Dart keep everyone honest.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.