Makani Tech: Build. Automate. Evolve.

Meeting Notes to Tasks with n8n + Claude (free workflow)

How to turn every client call into tasks, owners and a recap email automatically

FreeWorkflowBy Kishan Makani · updated 19 October 2026 · 7 min read

Google Drive (Meet/Zoom transcript)ClaudeClickUp/NotionGmail

Downloads

  • Download the n8n workflow (JSON)

    meeting-notes-to-tasks-n8n-claude.json · n8n workflow · 20 steps · starts with New transcript in Drive · uses Google Drive, Google Docs, Google Calendar, Anthropic, Google Sheets, Click Up, Slack, Gmail · 32 KB

    Import into n8n: Create Workflow, then the menu, then Import from File.

How to import it into n8n
  1. In n8n, create a new workflow.
  2. Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
  3. Open each node with a warning and connect your own account: the file carries no passwords or keys.
  4. Run it once with Test workflow, check the result, then switch it to Active.

What it does

When a Google Meet call ends, the transcript lands in your Drive. n8n picks it up, skips anything already handled or too short to be a real meeting, and finds the calendar invite to get the client's email address. Claude reads the whole call and returns what was decided, every promise made (task, owner, due date, and the words that created it), open questions and a short recap email for the client. Your team's tasks become ClickUp tasks matched to the right person. The summary and the recap come to Slack: Send recap emails it to the client, Keep as draft leaves it in Gmail for you. Every meeting is logged in a sheet.

Who it is for

Agencies, consultants, CA firms and sales teams that run several client calls a week and lose follow-ups between 'we'll send it' and Monday morning.

What you need

  • An n8n account (n8n Cloud or self-hosted)
  • Google Workspace with Meet transcripts turned on (or Zoom/Fireflies transcripts saved to a Drive folder)
  • Google Calendar for the meeting invites
  • An Anthropic API key for Claude
  • ClickUp (or swap for Notion), a Google Sheet, Slack and Gmail

How the workflow runs, node by node

The slides show the same steps. Open the workflow in n8n and you will see a sticky note over each one.

Step 1 · Catch the transcript

Google Meet saves a transcript to your Drive when the call ends. n8n checks that folder every 5 minutes, keeps only files named 'Transcript', and skips any meeting it has already handled.

  • New transcript in Drive: Checks your 'Meet Recordings' folder in Drive every 5 minutes for new files. Google Meet saves transcripts there when transcription is on.
  • Transcripts only: Keeps only Google Docs whose name contains 'Transcript'. Recordings and chat logs in the same folder are ignored.
  • Skip processed: Remembers every transcript file id, so a meeting is never turned into tasks twice.

Step 2 · Read it and find who was there

The transcript is read, timestamps are stripped and the speakers listed. Tiny test calls are dropped. The matching calendar invite gives the client's email address for the recap.

  • Get transcript: Reads the transcript text from the Google Doc.
  • Clean transcript: Gets the meeting title and date from the file name, strips timestamp lines, lists the speakers and caps the text at 60,000 characters.
  • Real meeting?: Drops test calls and 2 minute 'can you hear me' meetings (under 800 characters) before any AI cost.
  • Find meeting attendees: Finds the calendar event with the same title on that day, to get the attendees' email addresses for the recap.

Step 3 · Claude pulls out decisions and tasks

Claude lists what was decided, every promise made (task, owner, due date, and the exact words), open questions, and writes a short recap email for the client. Unclear owner or date? It leaves it blank instead of guessing.

  • Extract with Claude: Reads the whole call and returns a summary, decisions, every action item (task, owner, due date, client or our side, and the words that created it), open questions and a client recap email.
  • Claude: Claude (claude-sonnet-5-5) at temperature 0.2, so answers stay consistent from run to run.
  • Meeting schema: Forces fixed fields (summary, decisions, action_items with task/owner/due/client_side/quote, open_questions, recap_subject, recap_body).

Step 4 · Tasks land in ClickUp

Each of your team's tasks becomes a ClickUp task with the right person, the due date, the quote that created it and a link to the transcript. Client to-dos stay out of ClickUp and go into the recap.

  • Load team: Reads your Team tab (Name, Email, ClickUp ID) so spoken names like 'Rhea' map to the right ClickUp user. Runs once.
  • Build task list: Keeps only our side's tasks, matches each spoken owner name to a team member (first name match, else the first person in the Team tab) and adds the quote and transcript link.
  • Create ClickUp task: Creates one ClickUp task per action item with owner, due date and the quote that created it. Its error output goes to the alert.
  • Collect created tasks: Gathers the names and links of every task created, for the meeting log.
  • Alert owner: Tells you in Slack if ClickUp or Gmail refused a call, so a follow-up is never silently lost.

Step 5 · You approve the client recap

Slack shows the summary, both sides' tasks and the recap email. Send recap emails it to the client attendees. Keep as draft saves it in Gmail for you to edit. Every meeting is logged in a sheet.

  • Approve recap email: Posts the summary, decisions, both sides' tasks, open questions and the recap email to #client-calls, and waits up to 24 hours.
  • Approved?: True only when you tapped Send recap.
  • Send recap to client: Emails the recap to the client attendees from the calendar invite (or to you, if none were found). Its error output goes to the alert.
  • Save recap as draft: Saves the recap as a Gmail draft when you tap Keep as draft, so you can edit it and send it yourself.
  • Log meeting: Writes one row per meeting to the Meetings tab, keyed on File ID: decisions, task counts, client to-dos, open questions and whether the recap was sent.

Setup

  1. In n8n, create a new workflow, open the menu and choose Import from File, then pick the JSON file.
  2. In Google Meet, turn on transcripts for your calls. Find the 'Meet Recordings' folder in the organiser's Drive and put its id in New transcript in Drive.
  3. Connect Google Drive, Google Docs and Google Calendar (the same Google account that owns the meetings).
  4. Create an Anthropic credential on Claude. In Extract with Claude, replace YOUR_TEAM_NAMES (for example 'Kishan, Rhea, Aman'), YOUR_COMPANY and YOUR_NAME.
  5. Make a Google Sheet with a Team tab (Name, Email, ClickUp ID) and a Meetings tab (File ID, Date, Meeting, Decisions, Our tasks, Client tasks, Open questions, Recap, Transcript). Paste its URL in Load team and Log meeting.
  6. Connect ClickUp and replace YOUR_TEAM_ID, YOUR_SPACE_ID and YOUR_LIST_ID in Create ClickUp task (pick them from the dropdowns).
  7. Replace YOUR_DOMAIN in the three places that build the client email list, so your own team is never emailed the recap. Replace YOUR_EMAIL.
  8. Connect Slack (#client-calls) and Gmail. Copy one old transcript into the folder, click Execute workflow, and check the tasks and Slack card. Then activate.

How to customise it

  • Use Notion instead of ClickUp: swap Create ClickUp task for a Notion 'create database page' node.
  • For Zoom, save cloud recording transcripts (.vtt) to a Drive folder and add an Extract from File node before Clean transcript.
  • Post client to-dos to a shared WhatsApp group note instead of the email.
  • Add a scheduled workflow that checks ClickUp for tasks past their due date and nudges the owner.
  • For sales calls, add fields to the schema like budget, decision maker and next meeting date, and log them to your CRM.

Guardrails

The recap reaches the client only after you tap Send recap. Otherwise it waits as a Gmail draft.

  • The recap is never sent to the client without your tap. Keep as draft, or no answer, leaves it in Gmail.
  • Claude is told to use only what was said, and to leave owner or date blank rather than guess.
  • Every task carries the exact words that created it and a transcript link, so anyone can check.
  • Your own domain is filtered out of the recipient list, and if no client email is found the recap goes to you.
  • Tell clients you record and transcribe calls, and turn transcription off for sensitive conversations.

Troubleshooting

  • Nothing happens after a call. Transcripts are saved only when transcription was turned on during the call, and they can take a few minutes. Check the Meet Recordings folder of the person who organised the meeting.
  • Find meeting attendees returns nothing. The calendar event title must match the meeting title in the file name. Renamed events will not match; the recap then goes to you.
  • Tasks go to the wrong person. Owner matching uses first names. Make sure names in the Team tab match how people are named in the transcript.
  • ClickUp tasks have no due date. No date was said on the call. Say dates out loud, or add a default (for example +3 days) in Build task list.
  • Claude's output fails to parse on a long call. Raise max tokens on the Claude node, or lower the 60,000 character cap in Clean transcript.

Want the members-only resources too?

A free account unlocks them all, including the ones shared in DMs.

Create a free account