Daily sales call recap into HubSpot from Drive recordings

By General Input

Every weekday at 7am ET, transcribe yesterday's sales call recordings and drop the summary, objections, and follow-up tasks straight into the right HubSpot deal.

Integrations

  • Google Drive
  • AssemblyAI
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Build me an agent workflow that updates HubSpot from the previous day's sales call recordings, with no manual recap writing from my reps.

Trigger: a cron that runs every weekday at 7am America/New_York.

On each run, do the following:

1) Use Google Drive's List Files to find new audio recordings in the folder named "Sales Calls". Filter the Drive query by parent folder, by audio mimeType (audio/mpeg, audio/mp4, audio/wav, audio/x-m4a), and by modifiedTime greater than the previous run's timestamp so each file is only processed once. Persist the high-water-mark timestamp between runs.

2) For each new file, download it with Google Drive's Download File Content.

3) Send the bytes to AssemblyAI using Upload Audio File, then call Submit Transcript with speaker_labels enabled so the transcript is diarized. Poll Get Transcript until status is completed (or error out cleanly if the transcript fails).

4) From the diarized transcript, identify which speaker is the rep and which is the prospect (use cues like who is introducing the company, who is pitching, and who is asking pricing or evaluation questions). Then extract the prospect's name and company.

5) In HubSpot, use Search Contacts to find the prospect (match on name and email if available, then fall back to company). Use Search Deals to find an open deal associated with that contact or company.

6) If a matching deal is found, use HubSpot Create Note to attach a recap to the deal containing: a tight 3-5 bullet call summary, a clearly labeled "Objections" section, and a "Commitments" section listing what each side agreed to. Then use HubSpot Create Task for each follow-up action the rep promised, with the rep as the owner, a short subject, the commitment as the body, and a sensible due date (default to 2 business days unless the call specifies otherwise).

7) If no matching deal is found, do NOT guess. Use Slack Bot's Send a Message to post a one-line note to the channel I pick (e.g. #sales-ops) that reads something like: "Needs manual association: <file name> (<prospect name or company if known>)". Include the Drive link to the recording.

Other requirements: process files sequentially so I don't blow through AssemblyAI concurrency limits; keep a short log of which file ids have been processed so reruns are idempotent; and skip files that are already older than 7 days as a safety cap.

The point is reps stop writing recap notes by hand, the CRM stays current without anyone touching it, and anything ambiguous gets bumped to a human instead of being silently misfiled.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account