Use caseWorkflow automationAI agent
Sales calls and emails that update the CRM on their own, after the rep approves
An agent that reads sales call transcripts and email threads, proposes CRM field updates with the quote behind each, and writes them once the rep approves.
A blueprint, not a client story. The business described is illustrative; the architecture, integrations and trade-offs are real, and this is how I would build it. By Ergini, .
The short version
A workflow that keeps HubSpot or Salesforce current without asking reps to type. After each customer call or email exchange, it reads the transcript or thread, matches it to the right deal, and proposes field updates such as stage, next step, close date, stakeholders and qualification fields, each backed by a quote from the conversation. The rep approves in Slack with one click. It never writes without approval, never replaces a value with a blank, and logs every change it makes.
- Best for
- Sales teams of five to thirty on HubSpot or Salesforce whose forecast depends on fields nobody updates.
- Connects to
- HubSpot, Salesforce, Gmail or Outlook, Zoom, Google Meet or Microsoft Teams, Slack
- The AI does
- Reads call transcripts and email threads, proposes field changes with the sentence that supports each one, and drafts the follow-up email.
- People do
- Reps approve, edit or reject every proposed change and send their own follow-ups. Sales leadership owns the field definitions.
- Built as
- AI Workflow Automation, usually $15K - $30K
The deal record, and the call it should reflect
One mid-size deal, after a 40-minute call with the customer's head of operations and their IT lead.
In HubSpot on Friday
- Stage: Discovery, unchanged for five weeks
- Close date: 30 June, already in the past
- Next step: empty
- Contacts: one champion, nobody from IT or finance
- Last activity: an email logged three weeks ago
Proposed after Tuesday's call
- Stage: Solution review, because the customer asked for a technical walkthrough
- Close date: moved to December, from the customer's own deadline
- Next step: technical demo with their IT lead, week of 22 September
- New contact: the IT lead, as technical evaluator
- A risk noted: budget sign-off sits with a CFO nobody has met
Why the forecast is fiction by Thursday
Picture a twelve-person sales team on HubSpot Sales Hub: eight account executives, three SDRs and a head of sales who runs the forecast call every Monday. Each AE has around a dozen customer calls a week and dozens of live email threads. The CRM wants a stage, a next step, a close date, the people involved and a handful of qualification fields. Reps fill in what they must to move a deal and skip the rest.
Nobody is lazy here. Updating the CRM after a call means ten minutes of typing what they already know, at exactly the moment they would rather prepare the next call. So close dates slide into the past, deals sit in the wrong stage, and the second stakeholder who joined the last call never becomes a contact. On Monday the head of sales asks each rep what is really going on, which is the forecast meeting doing the CRM's job.
The usual fix is a notetaker that summarizes calls. A summary helps, but it lands as a note, and notes do not move stages or dates. What the team needs is the step after the summary: specific field changes, proposed with evidence, that a rep can accept in the time it takes to read them. Once the fields are current, everything downstream improves with them, from the forecast to the weekly KPI brief.
From a finished call to an updated deal
Two model calls, each producing a proposal. Everything that touches the CRM is code, and nothing is written until a person says yes.
01 Trigger · Zoom, Google Meet, Microsoft Graph, Gmail API
A call ends or a thread moves
When a transcript is ready, the meeting platform's webhook fires; email threads are picked up when a customer replies. Internal meetings, where every participant is on your own domain, are skipped before anything is read.
02 Plain code · HubSpot or Salesforce API
Find the deal
Participants' addresses resolve to contacts, and contacts to open deals. One open deal settles it. With several, the meeting title, the calendar invite and the deal owner narrow it down, and if it is still ambiguous the rep is asked which one.
03 AI model · Structured output
Propose field changes
A model reads the transcript alongside the deal's current values and your field definitions, and proposes changes to stage, next step, close date, amount, contacts and qualification fields. Each proposal must carry a verbatim quote and a timestamp.
04 Plain code
Check every proposal
The quote must appear in the transcript, word for word after normalizing whitespace, or the proposal is dropped. Blanks never replace values, stage moves must follow your pipeline's allowed transitions, and new close dates must be in the future.
05 AI model · Gmail or Outlook drafts
Draft the follow-up email
A short email summarizing what was agreed, in the language of the call, saved as a draft in the rep's mailbox. It is never sent by the system.
06 Person · Slack
The rep reviews in Slack
One message per call lists each proposed change with its quote, the current value and the new one. Approve all, pick some, edit or reject, each a single click.
07 Decision
What did the rep decide?
The rep's answer, applied by code.
- Approved or edited then written to the CRM, with old value, new value, quote and approver logged
- Rejected with a reason then nothing is written, and the reason joins the evaluation set
- No answer within 48 hours then one reminder, then the proposal expires; stale proposals are never applied later
08 Result
A change log and a Monday nudge
Every write lands in a change log beside the CRM's own history. Deals with no approved activity for too long, or a close date in the past, appear in a weekly nudge to their owner.
Tuesday's call, as it reached the rep
Five proposals from one German-language transcript, the checks behind them, and the one that did not survive.
Slack, Tuesday 16:12
- get_transcript(meeting_id)41 min / 4 participants, 2 external: head of operations, IT lead / language: German
- match_deal(participants)2 open deals for this company / invite title matches the platform rollout / deal selected / owner: Lena
- propose_updates(deal, transcript)5 proposals: stage, close date, next step, new contact, amount
- verify_quotes(proposals)4 verified / 1 dropped: amount, the quoted sentence does not occur in the transcript
Agent · Slack
Platform rollout, after today's call. 1) Stage: Discovery to Solution review. 'Können Sie die Integration nächste Woche unserem IT-Leiter zeigen?' (12:40, 'Can you show the integration to our IT lead next week?') 2) Close date: 30 Jun to 30 Nov. 'Wir wollen vor der Preisänderung im Januar live sein.' (31:05, 'We want to be live before the January price change.') 3) Next step: technical demo with IT, week of 22 Sep (12:40). 4) New contact: IT lead, technical evaluator. [Approve all] [Choose] [Edit] [Reject]
Lena · Slack
Approve 1, 3 and 4. Close date: make it 15 Dec.
- write_crm(deal, changes, proposal_id: "p_8841")3 changes written, close date 15 Dec as edited / key p_8841 already used on retry: no second write / change log updated
- A follow-up email is waiting in Lena's Gmail drafts, in German, confirming the demo request and the January deadline.
What counts as evidence, field by field
Field rules are written with the head of sales before anything runs. They decide what the model may propose and what the code will accept.
| Field | The agent may propose it from | Rule enforced in code |
|---|---|---|
| Stage | A customer action that meets your exit criteria, such as requesting a technical demo or a proposal | Only transitions your pipeline allows; never backwards without the rep |
| Close date | A date or deadline the customer states | Must lie in the future; a move of more than a quarter is highlighted |
| Next step | An agreed action with an owner and a time | Replaces the old step only when it is done or clearly superseded |
| Amount | A figure spoken on the call or a quote document already sent | Never inferred; a change above 20 percent also notifies the head of sales |
| Contacts and roles | People who spoke, with the role they described | Created only with an address from the invite or thread, never a guessed one |
| Qualification fields (MEDDICC, BANT) | Statements about budget, authority, need, timeline or decision process | One quote per field; an empty field stays empty until someone says something |
| Commitments ('we will sign', 'we agreed to pay') | Nothing | Never proposed; commitments are the rep's to record |
The ways this gets a deal wrong, and the guard for each
The call lands on the wrong deal
An account with a renewal and an expansion open at once gives one call two plausible homes. When participants, invite and owner do not settle it, the rep answers a two-button question. The agent never splits the difference or picks the bigger deal.
Commitments nobody made
Models are prone to hearing agreement in polite noises. A proposal without a verbatim quote is dropped in code, and some statements, a customer agreeing to sign or to pay, are never proposed at all, whatever the transcript seems to say.
Good data overwritten
The rep typed a careful next step yesterday, and today's call barely touched it. Blanks never replace values, and every write first checks that the field still holds the value the proposal was based on. If it changed in the meantime, the proposal is rebuilt, not applied.
Retries that write twice
Webhooks retry and Slack buttons get double-clicked. Each proposal's ID is the idempotency key for its write, so approving the same proposal twice changes nothing the second time.
Calls in German, Dutch or French
Transcription degrades with accents, crosstalk and product vocabulary. The agent reads the original-language transcript and keeps quotes in the original with a translation, and a transcript below a quality threshold produces no proposals at all, only a note to the rep.
Recording without consent
People must know a call is recorded; in Germany, recording a conversation without consent can be a criminal offense under section 201 of the Criminal Code. The invite says so, the recorder announces itself, and a customer who declines means no recording and no proposals. With a works council, involve it early, because a system that reads reps' calls falls under its co-determination rights on monitoring (section 87 of the Works Constitution Act).
Gong, Attention or your CRM's own AI, or a build?
Several products do this well now. Attention and Momentum fill CRM fields from calls, Gong records and analyzes calls and pushes insights into the CRM, and HubSpot Breeze and Salesforce's Einstein and Agentforce work inside their own platforms. If your team uses standard fields in one CRM and the per-seat price fits, buy one of them and put your effort into field definitions. If that is the answer, I will tell you on the first call.
A build wins when the field logic is yours: a custom qualification framework, fields that depend on data outside the CRM such as product usage or quotes in an ERP, or rules like 'amount only from a sent quote'. It also wins when seat pricing does not fit, for example many occasional sellers, or when call data has to stay in an EU region under your own processing agreement. The design choices here, verbatim evidence, approval before write, no blank overwrites, are general human-in-the-loop patterns.
Often the sensible version is a hybrid: keep the recording or notetaker tool you already pay for, and build only the proposal, approval and write-back layer on its transcripts. The AI meeting notes post covers the transcript side, and the layer on top is the part I would build as workflow automation.
How you would know it is working
A blueprint has no results to report, so here is what I would measure from the first week instead, on your own data.
- Proposal acceptance, per field
- Share of proposals approved without edits. A low rate on one field means its rule or definition is wrong, not that reps are difficult.
- Dropped proposals
- Proposals removed by the quote check, tracked weekly. A rising count means the prompt or the model has drifted.
- Field freshness
- Open deals with a next step and a future close date, measured every Monday before the forecast call.
- Admin minutes per call
- Sampled before and after launch, because the point is time back for selling.
- Forecast accuracy
- Committed deals that closed in the forecast period, compared quarter on quarter. It moves slowly, so it is the last check, not the first.
What a build like this costs
This is built as AI Workflow Automation, which runs $3.5K - $60K overall. A build like this one usually lands in the multi-step workflow tier: $15K - $30K, 3-5 weeks. The first working version runs on your real data well before the end of that window.
What it costs to run
Transcript length drives model cost: an hour-long call is a long input, so expect cents to low tens of cents per call for the proposals and the follow-up draft. Transcription is often included in your Zoom, Meet or Teams plan; if not, speech-to-text is billed per minute. CRM and Slack API usage adds nothing noticeable at this volume.
What moves the price
- The CRM and how customized it is: standard HubSpot deal properties are quick, a Salesforce org with custom objects and validation rules takes longer
- Which call platforms, and whether transcripts come from Zoom, Meet and Teams directly or from a recording tool you already use
- How many fields, and how precise their rules are, especially for custom qualification frameworks
- The languages spoken on calls, and whether processing has to stay in the EU
Who this is for
- Sales teams of five to thirty whose Monday forecast call exists because nobody trusts the CRM
- Companies with custom qualification fields that off-the-shelf notetakers fill badly or not at all
- Teams selling across Europe with calls in German, French or Dutch
- Heads of sales who want CRM hygiene without adding another seat-priced tool for every rep
Questions people ask about this
How do I automate CRM data entry from sales calls?
Take the transcript after each call, let a model propose specific field changes backed by quotes from the conversation, and have the rep approve them before anything is written. The order matters: automatic writes without approval are how CRMs fill up with confident nonsense, while approval in Slack takes seconds when the evidence sits next to each change.
Can AI update HubSpot deals automatically?
It can prepare the updates and write them through HubSpot's API, and in this design it writes only after the deal owner approves. HubSpot keeps property history for each change, and the agent keeps its own log with the quote and the approver, so any value can be traced to the sentence that justified it.
Does it work with Salesforce?
Yes. Opportunities, contact roles and custom fields are writable through the REST API, and your validation rules still apply, which is a useful second check. Salesforce field history tracking covers a limited number of fields per object, so the build keeps its own change log for everything it touches.
How do I automate follow-up emails in HubSpot without sending the wrong thing?
Draft them, and let the rep send. After each call the agent writes a short follow-up listing what was agreed, in the language of the call, and leaves it in the rep's Gmail or Outlook drafts. The rep edits and sends it. Sequences can take over later for the steps that really are identical every time.
Is it legal to record and analyze sales calls in the EU?
Yes, with transparency and a lawful basis. Tell participants in the invite and at the start of the call, give them a way to decline, and set a retention period for recordings and transcripts. In Germany, recording without consent can be a criminal offense, and a works council has a say in systems that can monitor staff, so involve it before the pilot.
Will reps actually use it?
Reps use what saves them time and never embarrasses them. That is why proposals arrive in Slack where they already work, why each one shows its evidence, and why nothing changes without their click. Acceptance rates per field show within two weeks whether it is working, and a low rate points at the rule to fix.