Free n8n template

AI meeting notes to HubSpot n8n template (Google Calendar, Zoom, Slack)

What it does

This n8n template checks Google Calendar every 15 minutes for finished external Zoom meetings, drops internal, private and short ones before any AI step, fetches the Zoom transcript and matches attendees to HubSpot contacts by email. Claude drafts a summary, deal fields and quoted next steps, and code drops any step whose quote is not in the transcript. The rep approves in Slack before the note is written. You need Google Calendar, Zoom, HubSpot, Slack and an Anthropic API key.

What this workflow does

  1. Every 15 minutes starts a run, and Google Calendar: recent meetings lists events from the last eight hours on the connected account’s primary calendar.
  2. Pick meeting keeps meetings that ended 30 minutes to 6 hours ago, lasted at least 10 minutes, are not private, have a Zoom link and include at least one attendee outside your domains. It picks one meeting per run, because the Slack approval step waits on a single item, and records attempts in workflow static data so nothing is drafted twice.
  3. Zoom: recording files asks Zoom for the meeting’s recordings, and Pick transcript stops quietly if the transcript is not ready, so the next run tries again for up to about three hours.
  4. Download transcript fetches the VTT file. HubSpot: match attendees searches HubSpot contacts by the external attendees’ email addresses.
  5. Build notes request strips timestamps from the transcript and asks Claude for five to eight summary lines, deal fields (pain, decision process, timeline, competitors) and next steps with an owner side, a due date only if one was said, and the exact quote.
  6. Parse notes drops next steps whose quote does not appear in the transcript, skips conversations Claude marks as not customer meetings, and sends meetings with no matching HubSpot contact to Slack as an exception.
  7. Ask rep to approve sends the meeting owner a Slack preview with a “Log to HubSpot” button. HubSpot: create note then writes the note and associates it with every matched contact. Ignoring the message logs nothing.
  8. Post notes issue receives download, matching, drafting and HubSpot errors.

Before you import

  • A current n8n version, active (workflow static data only persists in production runs).
  • A Google account whose primary calendar holds your sales meetings, usually the rep’s own. To read a shared sales calendar instead, replace primary in the calendar node’s URL with that calendar’s ID.
  • A Zoom OAuth app with permission to read cloud recordings, and cloud recording with audio transcripts turned on for your account.
  • A HubSpot private app token that can read contacts and write notes.
  • An Anthropic API key and a Slack bot that can send direct messages.

Setup

  1. Import the JSON file and connect the Google Calendar, Zoom, HubSpot, Anthropic and Slack credentials. The two HubSpot nodes share one credential, and so do the two Zoom nodes.
  2. In Pick meeting, replace REPLACE_WITH_YOUR_DOMAIN.com with every domain your team uses, map each rep’s email (in lowercase) to their Slack member ID, and set REPLACE_WITH_DEFAULT_REVIEWER_SLACK_USER_ID.
  3. Replace REPLACE_WITH_SLACK_CHANNEL in Post notes issue.
  4. Confirm your recorder setting produces transcripts on your current Zoom plan.

Test it

Hold a 15-minute Zoom call with a colleague using a personal email address that exists as a HubSpot contact, and agree on one next step out loud. Activate the workflow. About 30 to 60 minutes after the call ends, you should get a Slack preview listing the contact, a short summary and the next step. Click “Log to HubSpot” and check the note on the contact. Then hold an internal-only meeting and confirm nothing is drafted.

Make it production-ready

  • Deals. Search the matched contacts’ open deals and associate the note with the right one, asking the rep when there are several.
  • Fields and tasks. Write deal properties and create HubSpot tasks for “us” next steps after approval, keeping stage, amount and close date on manual review.
  • Team calendars. For a whole team, run one copy per rep calendar or move the per-meeting part into a sub-workflow so several meetings can wait for approval at once.
  • Privacy rules. Add keywords or calendar colors that always skip a meeting, and tell customers you record and summarize calls.
  • Error workflow and retries. Set an error workflow and add retries to the Zoom and HubSpot nodes.
  • Model choice. claude-haiku-5-5 is a cheaper option for short meetings.

Read the full guide, how to push AI meeting notes into your CRM, or talk to Lumeor about connecting Salesforce or Microsoft Teams.

Next steps