Auto-enrich HubSpot deals from Otter.ai sales call recaps
Push every Otter sales call into the right HubSpot deal with a clean recap, next steps, and buying signals, so reps never log a call by hand.
Build an agent workflow triggered by an Otter.ai workspace webhook on the conversation.completed event. The webhook payload includes the transcript, the Otter-generated summary, the attendee list with names and emails, and the call start/end timestamps.
When a call finishes, the agent should run end-to-end without any human in the loop:
1. Pull the attendee emails, transcript, and summary out of the webhook payload. Drop attendees whose email domain matches our own company domain so we don't try to match a deal off an internal teammate.
2. Call HubSpot Search Contacts with a filter on the email property to find the HubSpot contact records for the remaining attendees. Collect their contact IDs and associated company IDs.
3. Call HubSpot Search Deals to find open deals (deal stage is not closed-won and not closed-lost) associated with those contacts, sorted by most recently updated. Pick the matched deal with a simple confidence score: high if two or more attendees are associated with the same open deal, medium if only one attendee maps to an open deal and we use that contact's most recently updated one, low if no clear match.
4. On a medium or high confidence match, call HubSpot Update Deal to write a normalized set of sales insight properties extracted from the transcript and summary: next_step, decision_maker_mentioned, budget_signal, timeline_signal, and blockers. Use the team's existing deal property names if they differ. Never invent a value the transcript doesn't actually support; leave the property blank when the signal isn't clearly there.
5. Then call HubSpot Create Note to attach a clean meeting recap to the deal. The recap should include a short TL;DR, key decisions, and action items with owners, plus a link back to the original Otter conversation. Associate the note with the deal, the matched contacts, and the deal's company so it shows up everywhere a rep looks.
6. On a low confidence match, skip Update Deal. Instead, call HubSpot Create Note to attach the recap to the most likely contact only, with a clear "needs deal assignment" line at the top of the note body so a rep can route it to the right opportunity manually.
The outcome is a HubSpot deal that always reflects the latest sales conversation, with no manual call logging from the rep.
Additional information
What does this prompt do?
- Listens for every completed Otter.ai sales call and pulls the transcript, summary, and attendees automatically.
- Finds the matching HubSpot deal by checking who was on the call and picking the most recently updated open opportunity.
- Updates the deal with normalized sales fields like next step, decision maker, budget signal, timeline, and blockers.
- Drops a tidy meeting recap as a HubSpot note on the deal, contacts, and company so the whole account history stays in one place.
What do I need to use this?
- An Otter.ai Enterprise workspace with Public API access enabled by your account manager.
- A HubSpot account where you can manage deals, contacts, companies, and notes.
- A short list of the deal properties you want the agent to fill in (next step, budget, timeline, decision maker, blockers).
How can I customize it?
- Change which deal fields get written so they match the properties your team already tracks in HubSpot.
- Adjust how confident the agent has to be about the match before it updates a deal versus just leaving a note on the contact.
- Limit the trigger to a specific Otter channel like Customer Calls so internal meetings never touch the CRM.
Frequently asked questions
Do I need Otter on a paid plan?
What happens if no HubSpot deal matches the call?
Will it overwrite fields a rep has already set?
Does this work for internal meetings too?
Can I send the recap somewhere other than a HubSpot note?
Related templates
Stop logging sales calls by hand.
Connect Otter.ai and HubSpot once. Geni updates the right deal the moment each call finishes recording.