Auto-log sales call recordings from Google Drive to HubSpot

Drop a call recording or voice memo in a shared Google Drive folder and Geni transcribes it, drafts the recap, and files it on the right HubSpot contact.

Agentic Task
Google DriveElevenLabsHubSpotSlackSalesOperationsMeeting WorkflowsDocument Processing

Build me an agent that watches a Google Drive folder for new sales call recordings and voice memos, transcribes each one, and logs a clean recap against the right HubSpot contact so reps never have to write call notes by hand.

Trigger: cron, every 15 minutes.

On each run:

1) Call Google Drive List Files against a configured folder ID using a query that filters to audio and video MIME types (mp3, m4a, wav, mp4) and files modified since the last successful run. Track the last-run timestamp in the agent's own state. If nothing new is found, exit quietly.

2) For each new file: call Google Drive Download File Content to fetch the bytes, then send the audio to ElevenLabs Speech to Text (Transcribe) with speaker diarization enabled so each speaker is labelled.

3) From the transcript, draft a short structured recap with these sections: customer's main points, objections raised, action items committed (with owner if mentioned), and overall sentiment (positive, neutral, negative with a one-line reason). Keep it to roughly 150 to 250 words.

4) Identify the prospect. Intro lines of sales calls usually contain a first and last name and sometimes an email or company. Extract the most likely prospect name and email from the opening minute of the transcript. Call HubSpot Search Contacts and try to match by email first, then by full name. If exactly one contact matches with high confidence, proceed.

5) When a contact is matched: call HubSpot Create Note with the recap as the note body, associate it to that contact, and include a link back to the original Google Drive file at the bottom of the note. Then call Slack Send a Message to a configured sales channel with a one-paragraph 'call logged' update: prospect name, the matched HubSpot contact link, the headline takeaway, and the action items.

6) When no contact matches, or multiple contacts match and the agent is not confident: do NOT guess and do NOT create the note. Post the recap to the same Slack channel with a clear 'needs routing' header, list the candidate matches if any, and ask the rep to reply with which HubSpot contact to attach it to.

7) When the transcript has no recognizable prospect identity at all (no name, no email, no company in the opening minute), skip filing entirely and post a short Slack note that the recording was skipped and which filename it was, so the rep can rename or move it.

Configuration the user should be asked for: the Google Drive folder ID to watch, the Slack channel for recap and routing posts, and an optional recap style preference (default to plain bullets; offer BANT or MEDDIC as alternatives).

Reliability rules: never re-process a file that was already handled (track processed file IDs in state), never invent a HubSpot contact, and prefer asking the rep over auto-attaching when the match confidence is low.

Additional information

What does this prompt do?
  • Watches one Google Drive folder for new sales call recordings and voice memos every 15 minutes.
  • Transcribes each file with speaker labels, then writes a clean recap covering the customer's points, objections, action items, and overall sentiment.
  • Finds the right HubSpot contact and attaches the recap as a note with a link back to the original recording.
  • Posts a short 'call logged' update to your sales Slack channel, and asks the rep for help when no matching contact is found.
What do I need to use this?
  • A Google Drive account with a folder your reps will drop call recordings or voice memos into.
  • An ElevenLabs account for transcription (Scribe handles long files and multi-speaker calls).
  • A HubSpot login that can search contacts and create notes.
  • A Slack workspace with the channel you want the recap pings to land in.
How can I customize it?
  • Change the Drive folder, or point it at one folder per rep so notes file under the right owner.
  • Edit the recap template to match how your team likes call notes (BANT, MEDDIC, plain bullets).
  • Swap the Slack channel, or send the heads-up to a Slack DM instead of a channel.
  • Tighten or loosen the contact match rules, for example require an email match before auto-filing and otherwise always ask the rep.

Frequently asked questions

What kinds of recordings does this work with?
Anything your reps can drop into a Drive folder: dialer exports, Zoom or Google Meet recordings saved to Drive, and quick phone voice memos. Common audio and video files like mp3, m4a, wav, and mp4 are all supported.
How long can the recordings be?
ElevenLabs Scribe handles files up to about 10 hours and 3 GB, which covers full discovery calls and demos without splitting them up.
What happens if the agent can't tell which contact a call belongs to?
It does not guess. It posts the recap to your sales Slack channel with a short note explaining it could not identify the prospect, and asks the rep which HubSpot contact to attach it to.
Will reps still need to write call notes by hand?
No. The recap that gets filed on the HubSpot contact includes the customer's main points, objections, action items, and sentiment, plus a link back to the original recording if anyone wants to listen.
Does it work for non-English calls?
Yes. ElevenLabs Scribe supports 99 plus languages, so calls in Spanish, French, Portuguese, German, and more get transcribed and summarized the same way.

Stop asking reps to write call notes.

Connect Google Drive, ElevenLabs, HubSpot, and Slack once, and every recording in the folder turns into a filed call note within minutes.