Zoom transcript → AI call summary on the HubSpot contact + Slack post
Zoom call summaries reach the HubSpot contact minutes after the transcript is ready.
Once Zoom finishes a transcript, the workflow summarises it into a fixed structure and writes a note on the matching HubSpot contact. Decisions, action items and the next step come out as headed sections. A Slack post carries the same summary with links to the note, the open deal and the recording. For sales teams who run calls on Zoom and log them in HubSpot by hand, or not at all.
How it works
- Z
Trigger
Recording transcript completed: Zoom's recording.transcript_completed webhook for a cloud recording
Zoom
- if
Step 1
Validate the webhook
Answers Zoom's one-time URL validation challenge, checks the signature header on every delivery, and drops meetings whose host is not on the watched list.
- Z
Step 2
Fetch the transcript
Downloads the VTT transcript file from the recording's download URL using the app's access token, and strips timestamps so each line is a speaker and what they said.
- Z
Step 3
Pull the participant list
Reads the past-meeting participants endpoint and stops if everyone on the call is on your own domain. Zoom returns emails for your users and for outside attendees who were on the calendar invite or registered; other guests come back blank.
- AI
Step 4
Summarise the call
Passes the cleaned transcript to the model with a fixed prompt and returns JSON: summary, decisions, action items with owner and date, objections raised, and the agreed next step.
- H
Step 5
Match the contact and deal
Searches HubSpot for each outside email Zoom returned and, on a match, reads the contact's open deals so the note can attach to both. A call with no usable email is routed to Slack as unmatched.
- H
Step 6
Write the note
Creates a HubSpot note with the headed summary, the recording link and the attendee list, associated with the matched contact and the most recent open deal.
- S
Step 7
Post the summary
Posts the summary to the host as a DM, or to a channel, with links to the HubSpot note, the deal and the Zoom recording. Unmatched calls carry a 'no contact matched' line instead of the CRM links.
What changes once it runs
- A headed summary sits on the HubSpot contact within minutes of Zoom finishing the transcript.
- Action items carry an owner and a date when the call stated one; the rest are marked open.
- The Slack post links the note, the open deal and the recording, so checking the source is one click.
- Calls with no matching HubSpot contact are flagged in Slack rather than dropped.
- Internal-only meetings are skipped; only calls with at least one outside attendee are summarised.
What you get
- n8n workflow export with Zoom's URL-validation handshake and signature check built in
- The summary prompt and the JSON schema it returns, editable in one node
- Setup guide for the Zoom Server-to-Server app, its scopes and event subscription, and the HubSpot private app
- Two Slack message layouts: matched contact, and 'no contact matched'
- Walkthrough video of one recorded call flowing through to HubSpot and Slack
Before you start
- Zoom Pro or above with cloud recording on and the 'Audio transcript' recording setting turned on
- A Zoom Server-to-Server OAuth app with recording and past-meeting read scopes, its event subscription, and the secret token
- Outside attendees invited through Zoom's Google Calendar or Outlook add-in, or meeting registration on, so Zoom returns their email
- An OpenAI API key with billing enabled; the model is one setting in the workflow
- HubSpot with a private app token that can read and write contacts, notes and deals
- n8n reachable on a public HTTPS URL for Zoom's webhook delivery, and a Slack workspace where you can install a bot user
Built for
Questions before you buy
- Which HubSpot contact gets the note?
- The one whose email matches an outside attendee in Zoom's participant list. Since March 2022 Zoom blanks the email of any guest who was not on the calendar invitation, did not register and was not authenticated by you. Book the call through Zoom's Google Calendar or Outlook add-in and the match holds. Calls with no usable email go to Slack with a 'no contact matched' line and the full summary, and someone attaches it by hand.
- What if a meeting was recorded but has no transcript?
- It never triggers. The workflow listens for Zoom's transcript-completed event, not the recording-completed one, so a meeting recorded with the audio transcript setting off is invisible to it. Turn the setting on at account level and every later cloud recording qualifies.
- How reliable is the summary?
- A model is reading a transcript, and Zoom transcripts mishear names and figures. The prompt is told to quote numbers as heard and to mark anything unclear. Treat the note as a draft: read it, correct it, keep it. The recording link is on every post for that reason.
- Can I use Claude instead of OpenAI?
- Yes. Swap the OpenAI node for the Anthropic node in n8n, paste the same prompt, keep the same JSON schema. The guide has a page on the swap and on what to change if you point it at a self-hosted model.
- Do I need a paid n8n plan?
- No. The free self-hosted Community edition runs it, and so does the cheapest n8n Cloud plan. Zoom will only deliver to a public HTTPS URL, so a self-hosted instance on a private network needs a tunnel or a reverse proxy in front of it.
Nearby on the shelf
Whole catalog- CaHGDSMade to order
Calendly booking → HubSpot meeting + Google Docs prep sheet + Slack alert
Booked calls land in HubSpot with a prep sheet and a Slack alert within a minute.
Scheduling & meetings$199 - fAISMade to order
Facebook Page comment or mention → AI-sorted Slack alert
Comments and mentions on the Page reach Slack sorted by what they need.
Social media & community$99 - GAIPSMade to order
Gmail enquiry → AI-extracted Pipedrive person + lead, Slack alert to the owner
Enquiry emails turn into Pipedrive leads with the details already filled in.
Lead capture & routing$199
