Turning sales call transcripts into structured CRM data automatically
Mar 20266 min read
Valuable insights from sales calls get trapped in recordings, inaccessible and unsearchable. We built a workflow for a client that ingests their Fireflies and Sybill transcripts, extracts 21 structured deal fields using GPT-4o, and writes them back to their HubSpot custom properties, no manual entry required.
- Ingesting and normalizing transcripts from Fireflies and Sybill
- Prompting GPT-4o to extract 21 structured fields from unstructured calls
- Auto-populating HubSpot custom properties from extracted data
Sales calls carry real signal about a deal: an objection raised, a timeline mentioned, a competitor named, a stakeholder who has to sign off. Most of it stays trapped in a recording nobody replays. We built a workflow for a client that reads their Fireflies and Sybill transcripts as soon as a call ends. It extracts 21 structured deal fields with GPT-4o and writes them straight into the client's HubSpot custom properties. Nobody takes notes by hand.
Why call notes never make it into the CRM
Reps take notes in whatever is fastest in the moment: a notebook, a personal doc, a mental note before the next call starts. Most of that never gets typed into the CRM in a usable form. Writing structured notes after every call is extra work on top of a full day, so it gets skipped or cut short.
You end up with a CRM full of deals that have a stage and a dollar amount, and none of the context that explains why a deal is stuck or what it will take to close.
What kind of fields does the model pull out?
The prompt asks for 21 structured fields per call. They cover the categories that matter to a deal: budget signals, timeline, the stakeholders mentioned, objections raised, competitors that came up and the agreed next step. Because the prompt targets specific fields and doesn't ask for a free-form summary, the output comes back in the same shape every time. That consistency is what makes it safe to write straight into HubSpot properties. The alternative is a free-text notes field someone still has to read.
How the pipeline moves from recording to CRM field
- A call ends and Fireflies or Sybill finishes generating the transcript
- The workflow ingests the transcript and normalizes it into one common format
- GPT-4o runs a structured extraction prompt against the normalized transcript
- Extracted fields are validated and written to the matching HubSpot custom properties
- The deal record is updated with no rep involvement
Why normalizing two transcript formats first matters
Fireflies and Sybill structure their transcript output differently. The speaker labels differ, the timestamp formats differ, and so does the metadata around each call. Feed both formats into the same extraction prompt without normalizing them and the results come back inconsistent, because the model reacts to the formatting differences and not to the conversation. So the workflow converts both sources into one common shape before extraction. That keeps the 21 fields reliable whichever tool recorded the call.
What happens when a field isn't in the call?
Few calls cover budget, timeline and every stakeholder in one conversation, and the workflow has to handle that honestly. The prompt tells the model to leave a field blank when the call doesn't cover it, and never to guess, so a missing data point stays missing. An empty CRM field is a known gap. A confidently wrong one is worse than no automation at all.
Why this beats a generic call summary tool
A generic call summary tool gives you a paragraph describing what happened on a call. That's fine for a quick memory jog and useless as CRM data, because you can't query or report on a paragraph of prose. With 21 discrete fields, a sales manager can filter every deal where budget wasn't confirmed, or every account where a specific competitor came up, across the whole pipeline at once. Structured data gets more valuable as it accumulates. A pile of separate summaries never does.
Where this workflow stands today
This system is currently in validation with the client. Each field is being checked against real call outcomes before the workflow runs unsupervised across every deal. We planned that step on purpose. A pipeline that writes directly into a CRM has to prove its accuracy while a human is still checking the output, and validation is where it does that.
Is this worth building for your sales team?
If your reps already record calls through a transcription tool, the raw material for this kind of pipeline exists and is sitting unused. It's worth building once your team has more calls than anyone has time to review and log by hand.
- n8n
- GPT-4o
- HubSpot
- Fireflies
- Sybill