Customer call to follow-up or spec: two outcomes from every call
End a customer call, run one prompt against the transcript, and get back either a draft follow-up email in your voice or a draft product spec for your team.
What you'll have when you're done
Two prompts saved on your laptop. The call ends, you paste one against the transcript, and thirty seconds later you have a follow-up email written in your voice, opening with the exact thing the customer said, ready to edit and send. Paste the other prompt and you get a product spec for your team, built from what the customer asked for and what they actually need.
Every customer call now pays off twice. One prompt closes the loop with the customer. The other turns the same conversation into something your team can build from. Neither one asks you to remember anything, because the transcript already did.
The follow-up nobody sends in time
The 24-hour follow-up rule is the one every founder knows and almost nobody keeps. I'd get off a great customer call buzzing, totally sure I'd send the follow-up that afternoon. Then the next call would start. Then a fire on the team. Then it'd be 7pm and I'd be wiped. Then two days later I'd open a blank email, realize I'd lost the one specific thing they said that the whole follow-up should hinge on, and write something generic instead. Or never send it at all.
Each weak follow-up cost me a tiny unit of momentum on the deal. Multiply that across a quarter of customer calls and it's the difference between a pipeline that closes itself and one I'm always nudging back to life.
I tried the obvious fixes. A canned follow-up template. A reminder that fired an hour after every call. None of it worked (the template made every email sound like every other email, and the reminder just told me I was already late). The problem was never discipline. The problem was that the one thing that makes a follow-up land, the specific moment they leaned in or pushed back, was already gone from my memory by the time I sat down to write.
The transcript still has that moment. The prompt pulls it out. The call ends, you run one prompt against the transcript, and the follow-up writes itself off the exact words they used. Then a second prompt reads the same transcript and hands your team a spec, so the call you already had does double duty.
What you need first
- The [Granola][1] → markdown pipeline already running. This workflow runs on the meeting library the pipeline produces. If you haven't set it up yet, do [Granola → markdown][2] first. Thirty minutes. Comes back when done.
- Claude Code installed and pointed at the folder your Granola transcripts land in. Free tier is sufficient for both prompts.
- Two or three follow-up emails you've already sent and were happy with. This is what makes the email sound like you instead of like AI. Five minutes to dig them out of your sent folder and drop them in one place. Optional, but it's the single biggest quality lever in the whole workflow.
Step-by-step
Step 1Save the two prompts
Both prompts live in one file so you can re-run them after any call without retyping.
mkdir -p ~/.claude/prompts
touch ~/.claude/prompts/customer-call.md
Paste both prompts below into that file, under clear headers. You'll tune them over the first few calls, then stop touching them.
Step 2Run the follow-up prompt on a real call
Open Claude Code in your notes folder:
cd ~/notes
claude
Paste the follow-up prompt, replacing {transcript_path} with the path to a recent customer call:
Read the customer call transcript: {transcript_path}.
Read ~/notes/sample-followups/ first to match my voice, length, and structure.
Draft a follow-up email I'd send the same day.
Rules:
- In my voice. Direct, specific, no jargon, no AI throat-clearing
("I hope this email finds you well", "I wanted to reach out", "circling back").
- Open by referencing one specific thing they said. Quote it or paraphrase it close.
- Confirm any commitment I made on the call, with the timeline I gave.
- Ask for anything I need from them. One clear line.
- Close with one concrete next step and a date.
- Subject line a human would write. Nothing that reads AI-generated.
- Under 150 words. Customers don't read long follow-ups.
Read the draft. The first thing to check is the opening line: does it reference the real moment from the call, or a generic pleasantry? If it's generic, the transcript export probably came through thin (see [Granola → markdown][3] Step 3). If the opening quotes them back to themselves, the prompt is working.
Step 3Tune the voice with your past emails
The first draft will be close on content and slightly off on voice. That's expected. The fix is to feed Claude your real writing.
mkdir -p ~/notes/sample-followups
Drop two or three follow-up emails you've actually sent into that folder as plain text. Then re-run Step 2. Claude reads them, picks up your sentence length, your sign-off, how blunt you are, whether you use bullets, and matches it. The gap between an AI follow-up and one that sounds like you is almost always three example emails wide. Give it the examples once and every future draft lands closer.
Step 4Run the product spec prompt on the same call
Now point the second prompt at the same transcript:
Read the customer call transcript: {transcript_path}.
Draft a product spec for my team based on what the customer asked for
or implied they need.
Format:
## Problem
The customer's own framing, in their words. Quote where you can.
## What they asked for
Their literal request.
## What they actually need
The underlying job to be done. Where this differs from the literal request,
say so and name the gap.
## Constraints and acceptance criteria
Anything they said that would make this not work for them: integrations,
timelines, security, budget, team size.
## Source quotes
3 to 5 verbatim quotes from the transcript that support everything above.
Rules:
- Don't infer past the transcript. If they didn't say it, don't put it in.
- If the call doesn't contain enough to write a real spec, say so instead
of padding it out.
The spec is where customer calls usually leak the most value. You hang up with a clear sense of what the customer needs, you mean to brief the team, and the brief comes out as a half-remembered Slack message three days later. This prompt turns the verbal handoff into a written one your team can actually build from, with the customer's own quotes attached so nobody has to take your word for what was said.
Step 5Make it one move after every call
You don't want to be hunting for prompts after a call. Two ways to make this frictionless:
Option A · One saved command (lowest effort). After Granola finishes the transcript, open Claude Code and say: "Run both prompts in ~/.claude/prompts/customer-call.md against the latest file in ~/notes/granola/. Give me the follow-up email first, then the spec." Ten seconds of typing. Most CEOs live here.
Option B · A Claude Code [Routine][4] (fully automated). Get Claude to set up a Routine that watches your Granola folder, and whenever a transcript tagged as a customer call lands, runs both prompts and drops the email plus the spec into a file you open after the call. Twenty minutes to wire up. After that, the two drafts are waiting for you the moment you sit back down.
How you'll know it's working
The signal is speed plus specificity.
The first follow-up you send within ten minutes of hanging up, in your voice, opening with the exact thing they said. You'll feel the difference immediately: it doesn't read like a template, the customer replies faster, and the deal keeps its momentum instead of going cold while you find time to write.
The second signal comes from your team. The first time an engineer or PM opens one of your specs and tells you it's sharper than the verbal handoff you used to give, that's the workflow earning its second payoff. The source quotes are doing the work. Your team stops guessing what the customer meant because the customer's own words are right there.
When it breaks
The email sounds like AI. Almost always means Step 3 got skipped. Drop two or three real sent emails into
~/notes/sample-followups/and re-run. If it still reads stiff, tighten the throat-clearing rule: list the exact phrases you never use ("I hope this finds you well," "just following up," "per our conversation") and tell Claude to ban them.The spec misreads the customer. The source-quotes section is the check. Read the quotes first. If a claim in the spec has no quote under it, Claude inferred it, and you should cut it or push back. Tighten the "don't infer past the transcript" rule and re-run.
The transcript is thin. Short call, bad audio, or a Granola export that didn't capture cleanly. Garbage in, garbage out. The spec prompt's "say so instead of padding it out" rule is there to make Claude tell you the call was too thin rather than invent a spec. If it happens often, check your [Granola → markdown][5] export.
You stop running it after a week. The usual silent failure. The fix is to remove the friction: do Step 5, Option A so it's one command, or Option B so it's zero. A workflow you have to assemble after every call doesn't survive a busy week.
You send the follow-up without reading it. Don't. The draft is 90% there, not 100%. The last 10% is you catching the one line that's slightly off or the commitment Claude phrased a touch too eagerly. Read it, fix one line, send. Thirty seconds, and it stays your email.
Where this fits in your harness
This is the customer-facing layer of your [harness][6]. The [Granola → markdown pipeline][7] made every conversation searchable. This workflow takes the highest-stakes conversations you have, the ones with customers, and turns each one into two finished artifacts: the follow-up that protects the relationship and the spec that moves the product.
The siblings most relevant to this workflow:
- [CRM enrichment from calls][8] · the third output from the same transcript. This workflow drafts the email and the spec; CRM enrichment auto-populates your customer record with the people, priorities, and next-step signals from the call. Run all three off one call and the conversation pays off three ways.
- [Ask your meeting history anything][9] · the query layer underneath all of this. Once your customer calls are in your meeting library, you can ask across all of them at once ("what objections came up most in the last 30 sales calls?") instead of one at a time.
See the [Granola pillar][10] for the full pipeline and the other workflows that compound on top.
[1]: /workflows/what-is-granola [2]: /workflows/granola-to-markdown [3]: /workflows/granola-to-markdown [4]: /workflows/claude-routines [5]: /workflows/granola-to-markdown [6]: /workflows/what-is-a-harness [7]: /workflows/granola-to-markdown [8]: /workflows/crm-enrichment-from-calls [9]: /workflows/ask-your-meeting-history [10]: /blog/granola-for-ceos-highest-roi-ai-install
Get three workflows like this every Thursday
The Thursday 3 is a free weekly email. Three workflows that put you in the top 1% of CEOs. 90-second read. Every card links back to a step-by-step guide like this one.
Get the newsletter →The architecture behind this workflow.
Two operator's manuals for the same job, run two different ways. OpenCLAW for the always-on agent harness; Claude Code for the focused-work CLI. Pick one, or get the bundle for $149.
Browse the books · $99 each