Fireflies to Gmail, client-ready meeting recaps
Your meeting ends, everyone says “great chat,” and then the real work starts. You hunt down the Fireflies recap email, open the transcript, skim for decisions, rewrite action items, and try to make it sound like you, not a robot.
This Fireflies Gmail recaps automation hits consultants and client-facing project managers hardest. Honestly, sales leads feel it too, because follow-ups are where deals get won or quietly lost. The outcome is simple: consistent, client-ready recap emails sent or drafted without you rebuilding the same summary from scratch.
Below you’ll see how the workflow turns a “Your meeting recap” email into a formatted Gmail draft (or send) with clear next steps, plus a fuller internal summary when you want it.
How This Automation Works
See how this solves the problem:
n8n Workflow Template: Fireflies to Gmail, client-ready meeting recaps
flowchart LR
subgraph sg0["When clicking ‘Execute workflow’ 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:cog", form: "rounded", label: "Get a transcript", pos: "b", h: 48 }
n2@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking ‘Execute workf..", pos: "b", h: 48 }
n3@{ icon: "mdi:play-circle", form: "rounded", label: "Gmail Trigger", pos: "b", h: 48 }
n4@{ icon: "mdi:message-outline", form: "rounded", label: "Get a message", pos: "b", h: 48 }
n5@{ icon: "mdi:robot", form: "rounded", label: "Information Extractor", pos: "b", h: 48 }
n6@{ icon: "mdi:brain", form: "rounded", label: "OpenAI Chat Model2", pos: "b", h: 48 }
n7["<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/>Code1"]
n8@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set Meeting link", pos: "b", h: 48 }
n9@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set MeetingId", pos: "b", h: 48 }
n10@{ icon: "mdi:message-outline", form: "rounded", label: "Send a message1", pos: "b", h: 48 }
n11["<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/merge.svg' width='40' height='40' /></div><br/>Merge"]
n12@{ icon: "mdi:cog", form: "rounded", label: "Aggregate", pos: "b", h: 48 }
n13@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set senteces", pos: "b", h: 48 }
n14@{ icon: "mdi:swap-vertical", form: "rounded", label: "Set summary", pos: "b", h: 48 }
n15["<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/>Full transcript"]
n16["<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/markdown.dark.svg' width='40' height='40' /></div><br/>Full to MD"]
n17@{ icon: "mdi:message-outline", form: "rounded", label: "Send Full meeting summary", pos: "b", h: 48 }
n18@{ icon: "mdi:robot", form: "rounded", label: "Expert Meeting transcripts", pos: "b", h: 48 }
n19["<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/markdown.dark.svg' width='40' height='40' /></div><br/>To MD"]
n20@{ icon: "mdi:robot", form: "rounded", label: "Email writer", pos: "b", h: 48 }
n21@{ icon: "mdi:robot", form: "rounded", label: "Meeting summary expert", pos: "b", h: 48 }
n22@{ icon: "mdi:message-outline", form: "rounded", label: "Draft email to client", pos: "b", h: 48 }
n23["<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/markdown.dark.svg' width='40' height='40' /></div><br/>Recap to MD"]
n7 --> n1
n11 --> n12
n19 --> n22
n0 --> n1
n12 --> n20
n16 --> n17
n23 --> n10
n14 --> n21
n20 --> n19
n13 --> n15
n4 --> n8
n3 --> n4
n9 --> n1
n15 --> n18
n1 --> n13
n1 --> n14
n8 --> n5
n6 -.-> n5
n5 --> n7
n21 --> n23
n21 --> n11
n18 --> n16
n18 --> n11
n2 --> n9
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 n2,n3 trigger
class n5,n18,n20,n21 ai
class n6 aiModel
class n0 api
class n7,n15 code
classDef customIcon fill:none,stroke:none
class n0,n7,n11,n15,n16,n19,n23 customIcon
The Challenge: Turning transcripts into follow-ups (fast)
Fireflies does its job and captures the meeting. But you still have to turn that raw material into something a client can read in 30 seconds. That means finding the actual decisions buried in chatter, extracting action items that are implied (not spoken cleanly), and rewriting everything so it sounds confident and specific. Do this a few times a day and you’re stuck in recap purgatory: your calendar is full, your inbox is fuller, and follow-ups start slipping to “tomorrow.”
It adds up fast. Here’s where it breaks down in real life.
- Someone sends “quick notes” that miss the only decision that mattered, so the project drifts for a week.
- You copy-paste from the transcript, and now the email is three screens long and nobody reads it.
- Action items live in your head (or a sticky note), which means there’s no consistent accountability.
- When you’re rushing, names, dates, and ownership get mixed up, and that’s a bad look with clients.
The Fix: Fireflies transcripts → polished Gmail recap drafts
This workflow watches your Gmail inbox for Fireflies recap emails (subject: “Your meeting recap”). When one lands, it pulls the full message, extracts the meeting link, and uses OpenAI to identify the key details it needs (including the URL to the meeting). Then it parses the meeting ID and retrieves the complete transcript from Fireflies via the API. From there, Google Gemini generates structured summaries (including an expert-style recap in Italian) and a client-friendly version you can send as-is. Finally, the content is converted from Markdown into clean HTML and either drafted in Gmail for review or sent automatically, depending on which send/draft path you keep enabled.
The flow starts in Gmail, then jumps to Fireflies for the source transcript. AI turns that transcript into a short recap, a fuller summary, and a ready-to-send email. Gmail gets the final output, already formatted so it reads like a proper client follow-up.
What Changes: Before vs. After
| What This Eliminates | Impact You’ll See |
|---|---|
|
|
Real-World Impact
Say you handle 3 client calls a day. Manually, a decent recap usually takes about 20 minutes: 5 minutes to find the right transcript, 10 minutes to pull decisions and actions, and another 5 minutes to rewrite and format. That’s roughly an hour daily. With this workflow, the trigger is automatic, the recap is generated while you move to the next task, and you mostly spend a quick 2-minute skim before hitting send.
Requirements
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Fireflies.ai for transcript retrieval via API.
- Gmail to monitor, draft, and send recap emails.
- OpenAI API key (get it from the OpenAI API dashboard).
- Google Gemini (PaLM) access (get it from Google AI Studio / Google Cloud).
Skill level: Intermediate. You’ll connect credentials, edit a couple of fields (like recipient email), and test with a real Fireflies recap message.
Need help implementing this? Talk to an automation expert (free 15-minute consultation).
The Workflow Flow
Gmail detects the recap email. The Gmail Trigger watches for messages with the subject line “Your meeting recap” and checks about once an hour. For testing, there’s also a manual start option, plus a webhook trigger if you want to kick things off from another system.
The meeting link gets extracted. The workflow fetches the full email, maps the meeting link, then uses an Information Extractor (OpenAI-powered) to reliably pull the URL even when the email format shifts a bit.
Fireflies provides the full transcript. A small code step parses the meeting ID from the URL. With that ID, the Fireflies node retrieves the transcript, plus structured fields like sentences and short summaries that are useful for downstream formatting.
Gemini writes the recap and Gmail delivers it. Google Gemini generates a client-friendly email recap and a longer expert summary, then Markdown is converted to HTML for clean formatting. The workflow drafts the client email in Gmail (or sends it), and it can also email a fuller meeting summary to an internal address.
You can easily modify the email tone and structure to match your brand voice, or change the destination from Gmail to somewhere like Slack or a CRM. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Webhook Trigger
Set up the inbound and manual triggers so the workflow can run from a webhook, Gmail inbox polling, or manual execution.
- Open Incoming Webhook Trigger and set HTTP Method to
POST. - Set Path to
880cfe0f-5c81-46cd-b717-be89dfa045cfin Incoming Webhook Trigger. - Configure Gmail Inbox Listener filters: set q to
subject:Your meeting recapand sender to[YOUR_EMAIL]. - Set Gmail Inbox Listener poll time to
everyHouratminute: 1. - Use Manual Execution Start for ad-hoc testing and pass into Assign Meeting ID.
Step 2: Connect Primary Services
Attach required credentials for Fireflies and Gmail so transcripts and emails can be retrieved and sent.
- In Retrieve Transcript, set Credential Required: Connect your
firefliesApicredentials. - In Gmail Inbox Listener, set Credential Required: Connect your
gmailOAuth2credentials. - In Fetch Email Message, set Credential Required: Connect your
gmailOAuth2credentials. - In Send Brief Recap Email, Email Full Summary, and Draft Client Email, set Credential Required: Connect your
gmailOAuth2credentials.
Step 3: Set Up Meeting ID Extraction and Transcript Retrieval
Extract the meeting link from Gmail, transform it into a meeting ID, and retrieve the transcript from Fireflies.
- In Fetch Email Message, set Message ID to
{{ $json.id }}and Operation toget. - In Map Meeting Link, create a string field text with value
{{ $json.text }}. - In Extract Key Details, set text to
{{ $json.text }}and keep the attribute meeting_notes required. - Open Transform Meeting ID and keep the provided jsCode to extract the meeting ID from the URL.
- In Assign Meeting ID, set body.meetingId to
[YOUR_ID]for manual test runs. - In Retrieve Transcript, set Transcript ID to
{{ $json.body.meetingId }}.
Execution Note: Retrieve Transcript outputs to both Map Sentences List and Map Summary Fields in parallel.
Credential Required: OpenAI Chat Engine is connected as the language model for Extract Key Details — ensure credentials are added to OpenAI Chat Engine using openAiApi.
Step 4: Configure Transcript Processing and AI Summaries
Build the full transcript, generate summaries with Gemini, and synthesize short and long summaries.
- In Map Sentences List, set sentences to
{{ $json.data.sentences }}. - In Compile Full Transcript, keep the provided jsCode to build
full_transcriptandtotal_segments. - In Transcript Summarizer, set Credential Required: Connect your
googlePalmApicredentials and keep the system message. - In Map Summary Fields, map fields to
{{ $json.data.summary.short_summary }},{{ $json.data.summary.short_overview }}, and{{ $json.data.summary.overview }}. - In Summary Synthesizer, set Credential Required: Connect your
googlePalmApicredentials.
Execution Note: Transcript Summarizer outputs to both Convert Full Markdown and Combine Summaries in parallel, and Summary Synthesizer outputs to both Convert Short Recap and Combine Summaries in parallel.
Step 5: Configure Email Composition and Output
Convert AI outputs to HTML, compile a client email, and send or draft the results in Gmail.
- In Convert Full Markdown, set Mode to
markdownToHtmland Markdown to{{ $json.content.parts[0].text }}. - In Convert Short Recap, set Mode to
markdownToHtmland Markdown to{{ $json.content.parts[0].text }}. - In Combine Summaries and Aggregate Text Blocks, keep defaults and aggregate content.parts[0].text into text.
- In Compose Client Email, set Credential Required: Connect your
googlePalmApicredentials and keep the system message. - In Convert Recap Markdown, set Mode to
markdownToHtmland Markdown to{{ $json.content.parts[0].text }}. - In Email Full Summary, set sendTo to
[YOUR_EMAIL], message to{{ $json.data }}, and subject toFull meeting summary: {{ $('Gmail Inbox Listener').item.json.Subject }}. - In Send Brief Recap Email, set sendTo to
[YOUR_EMAIL], message to{{ $json.data }}, and subject toShort Meeting Recap. - In Draft Client Email, set resource to
draft, subject toRecap Meeting, and message to{{ $json.data }}.
⚠️ Common Pitfall: If you only receive the recap or only the full summary, verify that both Transcript Summarizer and Summary Synthesizer are connected to Combine Summaries and that Aggregate Text Blocks aggregates content.parts[0].text.
Step 6: Test and Activate Your Workflow
Run a manual test, verify emails and drafts, then activate the workflow for production use.
- Click Manual Execution Start and verify Assign Meeting ID is set to a real meeting ID.
- Execute the workflow and confirm Retrieve Transcript returns sentences and summary fields.
- Check that Email Full Summary sends an email and Draft Client Email creates a draft in Gmail.
- Trigger the webhook with a POST request to the Incoming Webhook Trigger URL and confirm a brief recap is sent via Send Brief Recap Email.
- Activate the workflow using the Active toggle once tests succeed.
Watch Out For
- Gmail OAuth credentials can expire or lose scope after password changes. If drafts stop appearing, check the Gmail credential in n8n first and re-auth if needed.
- If you’re using the webhook path or processing multiple recaps at once (Split in Batches), timing matters. Increase any waits and watch for empty transcript responses before the AI nodes run.
- Gemini and OpenAI prompts ship generic by default, so the writing can feel “samey.” Add a short brand voice block early (greeting style, sign-off, how you phrase action items) or you will be editing every recap.
Common Questions
Usually in about 30 minutes once your accounts are connected.
Yes. You won’t write code, but you will connect credentials and update a couple of fields like the recipient address.
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 and Gemini usage, which is usually a few cents per meeting unless your transcripts are huge.
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.
You can adjust the writing style inside the Gemini nodes (Transcript Summarizer, Compose Client Email, and Summary Synthesizer) by editing the prompts to match your client tone. If you want the recap in a different language, change the “expert transcript” prompt and keep the client email prompt aligned. You can also switch the output behavior by keeping Draft Client Email as-is (safer), or enabling the Gmail send nodes for fully automatic delivery.
Most of the time it’s expired OAuth consent or missing permissions. Reconnect the Gmail credential in n8n, then confirm the trigger mailbox and the “Send/Draft” nodes are using the same authorized account. If you recently tightened Google Workspace security, your admin may have blocked the scopes this workflow needs.
Plenty for a typical client-facing team.
Often, yes, because this workflow has several moving parts (extracting a meeting URL, parsing IDs, fetching transcripts, then generating multiple summaries and formatting email-ready HTML). n8n handles branching and richer logic without punishing you for every extra step. If you self-host, you also avoid per-task pricing that gets expensive when you run this after every call. Zapier or Make can still work if you only want a basic “send summary to Gmail” flow, but the moment you care about formatting, multiple outputs, or dual AI models, things get messy. Talk to an automation expert if you want help picking the cleanest route.
Once this is running, your recaps stop being a daily chore and start being a reliable system. The workflow handles the repetitive parts, so you can focus on the work the meeting was supposed to move forward.
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.