Close & Expand Deal Execution AESDR/BDRCustomer SuccessRevOps

Auto-Draft Follow-Ups and CRM Notes From Call Recordings

Turn every sales call recording into an accurate drafted follow-up email and structured CRM notes, ready for the rep to review and send in two minutes.

StageClose & Expand
Time to build2 hours
DifficultyIntermediate
Best forAE, SDR/BDR, Customer Success, RevOps
The stack

The stack

The problem

The problem

The follow-up email after a sales call is one of the highest-return touches in the entire cycle and one of the most reliably botched. Reps finish back-to-back calls, write the follow-up three hours later from fading memory, forget a commitment they made on the call, and never log the deal in the CRM because they are already on the next call. The follow-up goes out vague, the next step is fuzzy, and the deal quietly loses a week of momentum. Meanwhile the CRM rots, so the manager's pipeline review is built on stale fiction.

Here is what makes this so fixable: everything needed to write a perfect follow-up already exists in the call transcript. What the prospect actually cares about, the objections they raised, who else is involved, and the exact next steps both sides agreed to are all sitting there verbatim. Modern recorders, Gong, Fathom, Fireflies, transcribe every call automatically. The missing piece was never the information; it was turning that transcript into a sent email and clean CRM data without burning an hour of rep time per call.

AI closes that gap precisely. Feed the transcript to a model with a fixed prompt and it produces a draft follow-up in the rep's voice that references real discussion points and restates the agreed next steps, plus a clean block of structured fields for the CRM: next step, pain points, stakeholders, objections, sentiment. The rep reviews and sends in two minutes instead of writing for twenty, and the CRM updates itself with comparable, consistent data across the whole team.

The opinion that has to anchor the whole build: the human stays in the loop on the send, permanently and non-negotiably. The AI removes the blank page, not the judgment. The two ways this play goes wrong are auto-sending unreviewed emails and letting the model invent a next step that was never agreed. Engineer against both, and this is one of the safest, highest-return automations in GTM.

How it works

How it works

  • Record and transcribe every call with one standardized recorder (Gong, Fathom, or Fireflies)
  • On call end, a Zapier/Make/n8n trigger sends the transcript to Claude with a fixed prompt
  • Claude returns a drafted follow-up email plus structured CRM fields as JSON, using only what was said
  • The email draft routes to the rep for review; the structured fields write to the CRM
  • The rep edits and sends in minutes; a task fires from the next-step field so nothing is dropped
  • Optionally, a weekly AI rollup turns the structured fields into pipeline intelligence for leadership
See it run

See it run

zsh
$# extract structured CRM fields from the call transcript
$cat meridian_call.txt | llm "From this discovery transcript return JSON only: summary, pain_points, next_step, stakeholders_mentioned, objections, sentiment, missing_to_advance."
{ "summary": "Strong fit on ramp-time pain; Dana is bought in. Finance buy-in is the gate to advancing.", "pain_points": ["slow new-region ramp", "manual regional planning"], "next_step": "Send case study + ROI by Thu (Marcus); reconvene Tue 2pm with Sam/VP Finance", "stakeholders_mentioned": ["Sam (VP Finance)"], "objections": ["budget approval / finance sign-off"], "sentiment": "positive", "missing_to_advance": "finance sign-off on budget" }
$# draft the follow-up email from the same transcript
$cat meridian_call.txt | llm "Draft a short follow-up email to Dana recapping what I heard and the agreed next steps. Warm, no fluff." > followup_draft.txt
$cat followup_draft.txt
Subject: recap + next steps from today Hi Dana, thanks for the time today. To recap: the priority is cutting new-region ramp time, and the real blocker is getting your VP of Finance comfortable with the budget. As promised, I'll send the logistics case study and a one-page ROI outline by Thursday, and we'll reconnect Tuesday at 2pm with Sam from finance. Anything you'd want me to tailor for Sam ahead of that? Talk Tuesday, Marcus
$
The playbook

The playbook

Confirm every call is recorded and transcribed

Make sure every relevant call is captured by one recorder, because the transcript is the raw material for everything downstream and a missed recording means a missed follow-up. Gong joins calls automatically for teams on the platform. Fathom is a strong free option that records, transcribes, and summarizes Zoom, Meet, and Teams calls. Fireflies is another solid choice. Confirm the transcript is accessible via the tool's integration or API, since that is what the automation will read.

Standardize on a single recorder across the team. If half the reps use Fathom and half use Gong, the automation needs two integrations and the data lands in two shapes, which defeats the consistency that makes this worth building.

Handle recording consent and law properly from the start. Two-party-consent jurisdictions require disclosure and agreement before recording, and the rules vary by region and by who is on the call. Use the recorder's built-in consent prompt and verbal disclosure, and respect anyone who declines.

💡

TipRespect consent and recording laws as a first-class requirement, not an afterthought. Two-party-consent states and many countries require explicit disclosure. Use the recorder's consent prompt, disclose verbally, and have a documented policy your team follows on every call.

Trigger the workflow on call end

Use Zapier (or Make, or n8n) with a trigger that fires when a new call transcript becomes available from your recorder. Fathom, Fireflies, and Gong all expose triggers or webhooks for completed calls. In Zapier, create a Zap with the recorder as the trigger app and 'new transcript' (or equivalent) as the event. The automation then grabs the full transcript, the participant list, and the associated deal or contact so the AI has the context it needs to write in the rep's voice and to the right record.

Pull the participant names and the linked CRM deal or contact ID into the Zap data, not just the transcript text. The email needs to know who the prospect is and the CRM write needs to know which record to update; missing either turns a clean automation into a manual reconciliation chore.

If you want a lighter-touch setup, several recorders can post the transcript straight into a Zap or a Slack channel, and you call the AI step from there. The architecture is identical regardless of which orchestrator draws the wires.

Run the extraction-and-drafting prompt

Pass the transcript to Claude, via Zapier's Anthropic/AI step or a direct API call, with a single prompt that does two jobs at once: draft the follow-up email in the rep's first-person voice, and extract structured CRM fields as JSON. Demanding JSON for the CRM portion makes the downstream field mapping clean and unambiguous. The most important instruction in the prompt is that the model uses only what was actually said and never invents a commitment, date, or fact the rep did not make.

Have the model restate the agreed next steps as close to verbatim as possible. A misremembered next step in a follow-up ('as discussed, you'll loop in legal by Friday' when they said no such thing) is worse than no follow-up, because it creates a false expectation that the rep then has to awkwardly walk back. Build the prompt to handle the case where no next step was agreed by saying so explicitly rather than papering over it.

Test the prompt on three or four real past transcripts before wiring it live. You are checking that the email sounds human and accurate and that the JSON fields are clean and never fabricate a commitment.

Claude post-call prompt
You are assisting a sales rep right after a call. Below is the transcript. Use ONLY what was actually said. Never invent commitments, dates, names, or facts. If something was not discussed, leave it out or mark it explicitly.

TRANSCRIPT:
{{TRANSCRIPT}}

Rep name: {{REP_NAME}}. Prospect: {{PROSPECT_NAME}} at {{COMPANY}}.

Produce TWO things.

1) A follow-up email (under 150 words, the rep's first-person voice, warm and specific):
- Reference 1-2 real things the prospect actually said.
- Restate the agreed next steps EXACTLY as agreed, with owner and date if stated.
- Confirm any commitment the rep made on the call.
- End with the proposed next step.
- If NO next step was agreed, the CTA should propose one, and do not pretend one was agreed.

2) CRM fields as JSON (this exact shape):
{"summary": "<2 sentences>", "pain_points": [..], "next_step": "<what + owner + date, or 'none agreed - propose'>", "stakeholders_mentioned": [..], "objections": [..], "sentiment": "positive|neutral|at_risk", "missing_to_advance": "<the one thing the deal needs next>"}
💡

TipPin the JSON shape exactly and validate it in the Zap before mapping to CRM fields. If Claude occasionally wraps the JSON in prose, add 'output the email, then a line with only ---, then the JSON' so your automation can split reliably on the delimiter.

Route the email draft to the rep, never auto-send

Send the drafted email to the rep for review rather than sending it automatically. The cleanest options: create it as a draft in the rep's Gmail or Outlook so editing and sending is one click in their real client, or post it to a Slack DM with a copy button, or save it as a draft on the HubSpot/Salesforce contact. The rep should always read and lightly edit before sending. The AI removed the blank page; it did not remove the rep's judgment about tone, timing, and what to emphasize for this specific buyer.

Keep this human-in-the-loop step permanent. Auto-sending AI follow-ups is exactly where this play goes wrong: the one time the model misstates a commitment or strikes the wrong tone, it goes out under the rep's name to a live deal, and the rep finds out when the prospect replies confused. Two minutes of review is cheap insurance against that.

Create the draft in the rep's actual email client wherever possible. A draft they have to copy-paste out of Slack into Gmail adds friction that, over a busy day, means it does not get sent at all.

💡

TipCreate the draft in the rep's real email client so sending is genuinely one click. The whole time-saving collapses if the rep has to copy the text out of one tool and paste it into another; convenience is what makes the habit stick.

Write the structured fields into the CRM

Map the JSON fields to CRM properties on the deal or contact: next step and date, sentiment, pain points, stakeholders mentioned, objections, and 'missing to advance.' This is where the time savings compound into something bigger than convenience, because reps almost never log this consistently by hand, and now RevOps suddenly has clean, comparable, structured deal data across the entire team for the first time.

Use the next-step field to drive an actual task or reminder in the CRM, assigned to the rep with the stated date. The point of capturing the next step is that nothing agreed on a call gets dropped; a next step sitting in a notes field with no task attached gets forgotten just as easily as a hand-written one.

Map 'sentiment' and 'missing_to_advance' to reportable fields. These two turn into pipeline intelligence: a board of deals flagged at_risk by sentiment, or every deal where 'missing_to_advance' is the same blocker, is a manager's most useful Monday-morning view, generated without anyone filling out a report.

Add a weekly manager rollup (optional)

Once the structured fields exist across many calls, add a second scheduled automation that rolls them up weekly with AI: deals trending at_risk by sentiment, deals with no agreed next step, the objections recurring most often across the team's calls, and the common blockers in 'missing_to_advance.' Post it to a leadership Slack channel.

This turns individual call notes into genuine pipeline intelligence without anyone writing a report. A pattern like 'six deals stalled this week on the same security-review blocker' is exactly the kind of signal that is invisible in individual notes but obvious in aggregate, and it tells leadership where to intervene.

Keep this rollup read-only and clearly framed as AI-summarized so managers click into the actual deals before acting. The rollup surfaces patterns; the deal records and the reps hold the truth.

What you get

What you get

A ready-to-send follow-up draft routed to the rep, plus the structured CRM fields extracted from the same transcript.

Example output
EMAIL DRAFT (created in Marcus's Gmail, awaiting his review):
Subject: recap + next steps from today

Hi Dana, thanks for the time today. To recap what I heard: the priority is cutting new-region ramp time, and the real blocker is getting your VP of Finance comfortable with the budget. As I promised, I'll send the logistics case study and a one-page ROI outline by Thursday, and we'll reconnect Tuesday at 2pm with Sam from your finance team on the call. Is there anything you'd want me to tailor for Sam ahead of that conversation?

Talk Tuesday,
Marcus

---
CRM JSON (written to the deal record):
{
  "summary": "Strong fit on ramp-time pain; Dana is bought in. Finance buy-in is the gate to advancing.",
  "pain_points": ["slow new-region ramp", "manual regional planning"],
  "next_step": "Send case study + ROI by Thu (Marcus); reconvene Tue 2pm with Sam/VP Finance",
  "stakeholders_mentioned": ["Sam (VP Finance)"],
  "objections": ["budget approval / finance sign-off"],
  "sentiment": "positive",
  "missing_to_advance": "finance sign-off on budget"
}

TASK auto-created: 'Send case study + ROI outline to Meridian' due Thursday, owner Marcus.
Pitfalls to avoid

Pitfalls to avoid

⚠️

Auto-sending without reviewAI occasionally misstates a commitment or strikes the wrong tone, and once sent under the rep's name to a live deal it cannot be unsent. Always route the draft to the rep to approve; the human-in-the-loop step is permanent, not optional.

⚠️

Inventing next stepsIf the model fills in a plausible next step that was never agreed, the follow-up creates a false expectation the rep has to awkwardly retract. Force explicit 'none agreed - propose' handling so the model never fabricates a commitment.

⚠️

Ignoring recording consentRecording calls carries legal requirements that vary by region, and two-party-consent jurisdictions require explicit disclosure. Use the recorder's built-in consent prompt, disclose verbally, and respect anyone who declines to be recorded.

⚠️

Garbage transcript inPoor audio yields a poor transcript and therefore a wrong summary and email. For important calls, check transcript quality before trusting the extraction, and do not let a misheard number become a logged 'fact.'

⚠️

Trusting the rollup as truthThe weekly AI rollup surfaces patterns but can misread an aggregate. Managers should click into the actual deal records before acting on a flagged trend, treating the rollup as a pointer, not a verdict.

Want playbooks like this in your inbox?

A new AI use case, prompt, or teardown every couple of weeks.

Subscribe →