Your sales rep just finished a 45-minute discovery call. They feel good about it. The prospect seemed engaged. There were laughs. The rep puts "strong pipeline" in the CRM and moves on to the next call.
Two weeks later, the deal goes dark. No response to follow-ups. No reply to the proposal. The prospect ghosted. Your rep has no idea what went wrong because nobody was listening to the call, nobody analyzed the conversation, and nobody flagged the three qualification questions that were never asked.
This guide builds the system that listens to every sales call, scores the conversation against your methodology, and tells you exactly what was missed. The system uses Fireflies.ai for recording and transcription, N8N for automation, Claude for analysis, and Google Sheets for storage. When a call ends, the transcript fires into a workflow that categorizes the meeting, runs it through an AI critique, and delivers a structured coaching report. No manual review. No waiting for a manager to listen to recordings. Every call gets scored.
Set up the tech stack
You need four components: recording, transcription, automation, and storage. The specific tools matter less than the architecture.
Fireflies.ai
Fireflies integrates directly into your Zoom, Teams, or Google Meet calls. It records, transcribes, and stores everything. The key feature: Fireflies sends a webhook when the transcript is ready. That webhook is your trigger to start coaching.
Alternatives: Otter.ai works. Fathom works for Zoom-only. Record.com is minimalist. Any recorder that fires a webhook on transcription completion will work.
N8N
N8N receives the webhook from Fireflies, routes the transcript through categorization and analysis, and writes the results to your storage layer. Self-hosted or cloud, both work. The free tier handles this workflow.
Alternatives: Make.com or Zapier can handle the same workflow. N8N gives you the most flexibility for the Claude integration.
Claude (or any LLM)
Claude reads the transcript, compares it against your ICP memo, offer memo, and sales methodology, then returns a structured critique. GPT, Gemini, or Mixtral via OpenRouter all work. Claude tends to produce the most structured coaching output.
Google Sheets (or database)
Every coaching report gets logged with the call date, rep name, prospect name, category, score, and the full critique. Google Sheets for simplicity. Postgres or NocoDB for scale. The storage layer lets you track coaching trends over time.
Related resources for building this stack:
Configure the brain
An AI can't critique a sales call without knowing who you're selling to and how you sell. Before you build anything, your AI needs three things.
Your ICP memo
Who is the ideal customer? What size company? What revenue? What problems? What title do you talk to? This is your Day 1 work. If you haven't done this, go do it now. The AI needs to understand what a qualified prospect looks like so it can judge whether the rep was talking to the right person.
Your offer memo
What are you selling? What's the problem you solve? What's the outcome? What's the price range? Who decides? This is your Day 2 work. The AI will judge whether your rep was selling against the offer you defined or wandering off into a tangent about features that don't matter.
Your sales methodology
How do you sell? Do you use MEDDIC? Do you ask discovery questions first? Do you pitch early or late? What's your call structure? Do you have specific questions you always ask? What are your "must-hit" qualification criteria?
Write this down. Even if it's messy. Even if it's just a list of bullet points. The AI needs a reference point. Without it, it will default to generic sales advice that doesn't match how your team actually operates.
Connect Fireflies to N8N
Fireflies has a webhook system built in. When a call finishes transcription, it sends a POST request to a URL you define. You create that URL in N8N.
Create the webhook trigger
Open N8N. Create a new workflow. Add a Webhook node as the trigger. Copy the webhook URL that N8N generates. This URL is where Fireflies will send the transcript data.
In Fireflies, go to Settings, then Integrations, then Webhooks. Paste your N8N webhook URL. Select "Transcription Complete" as the event trigger. Save.
Now every time a call finishes transcribing, Fireflies sends the full transcript, participant names, meeting title, duration, and timestamps to your N8N workflow. Test this by joining a short call, letting Fireflies record it, and checking that the webhook fires in N8N.
Extract the transcript
The Fireflies webhook payload includes the transcript in a nested JSON structure. Add a "Set" node in N8N to extract the fields you need: transcript text, meeting title, participant names, duration, and date.
Store these in variables. You'll pass them to the categorization and critique steps. Keep the raw transcript intact, you'll need the full text for the AI analysis.
Test before you build further
Run 2-3 test calls through the webhook before adding the AI nodes. Confirm the transcript arrives correctly, the participant names are parsed, and the meeting title is captured. Debugging webhook payloads is easier before the workflow gets complex.
Build the meeting categorization
Not every call is a sales call. You have support calls. Internal meetings. Discovery-only calls. Your AI should only critique sales calls, otherwise you'll get noise in your coaching.
Add a Claude (or GPT) node to your N8N workflow. Give it the transcript and ask it to categorize the meeting. The categorization step is fast and cheap. It reads the first few exchanges, checks the participant roles, and determines what kind of meeting this was.
Prompt 1: Meeting categorization
Prompt 1 of 2Works with Claude, ChatGPT, Gemini
Classify each call so the coaching system only analyzes actual sales conversations.
You are a meeting categorizer for a B2B sales team.
Read the following transcript and categorize this meeting into exactly one of these types:
- "Sales call" (discovery, demo, proposal, negotiation, or closing conversation with a prospect or customer)
- "Internal meeting" (team sync, standup, planning, retrospective, or any meeting with only internal participants)
- "Support call" (customer support, onboarding, troubleshooting, or account management)
- "Other" (networking, interview, podcast, or anything that doesn't fit the above)
Respond with a JSON object:
{
"category": "[one of the four types above]",
"confidence": [0.0 to 1.0],
"reasoning": "[one sentence explaining why]"
}
TRANSCRIPT:
[INSERT TRANSCRIPT] Route based on category
Add an IF node after the categorization step. Parse the JSON response. If the category is "Sales call", route to Step 5. Everything else ends the workflow. You can optionally log non-sales calls to a separate sheet for tracking, but they don't need coaching analysis.
The confidence score is useful too. If the AI returns a confidence below 0.7, consider logging the call for manual review. Edge cases like hybrid calls (started as support, turned into a sales conversation) sometimes need human judgment.
Set up the AI critique and output
This is the core. Claude analyzes the sales call against your ICP, offer, and methodology, then returns a structured coaching report.
Add another Claude node to your N8N workflow, after the categorization step, in the "Sales call" branch. Your prompt will be large. It needs context on who you sell to, how you sell, and what you're looking for.
Prompt 2: Sales call critique
Prompt 2 of 2Works with Claude, ChatGPT, Gemini
The full coaching analysis prompt. Customize the ICP, offer, and methodology sections for your business.
You are a senior sales coach analyzing a B2B sales call. Your job is to provide honest, specific, actionable coaching based on the transcript.
CONTEXT ABOUT OUR BUSINESS:
ICP MEMO:
[PASTE YOUR ICP MEMO HERE - who you sell to, what size company, what problems they have, what titles you talk to]
OFFER MEMO:
[PASTE YOUR OFFER MEMO HERE - what you sell, the problem you solve, the outcome, the price range]
SALES METHODOLOGY:
[PASTE YOUR METHODOLOGY HERE - how you sell, your call structure, must-hit qualification questions, discovery framework]
TRANSCRIPT:
[INSERT TRANSCRIPT]
Analyze this call and return a JSON response with the following structure:
{
"overall_score": [1-10],
"prospect_fit": {
"score": [1-10],
"assessment": "[Is this prospect a good ICP fit? Why or why not?]"
},
"discovery_quality": {
"score": [1-10],
"questions_asked": ["list of discovery questions the rep asked"],
"questions_missed": ["list of critical questions from your methodology that were NOT asked"],
"assessment": "[How thorough was the discovery?]"
},
"objection_handling": {
"score": [1-10],
"objections_surfaced": ["list of objections or concerns the prospect raised"],
"handling_quality": "[How well did the rep address each objection?]"
},
"next_steps": {
"score": [1-10],
"committed_next_step": true/false,
"assessment": "[Did the rep secure a clear, time-bound next step?]"
},
"talk_ratio": {
"rep_percentage": [estimated percentage],
"assessment": "[Too much talking? Not enough listening?]"
},
"top_3_improvements": [
"Specific, actionable improvement #1",
"Specific, actionable improvement #2",
"Specific, actionable improvement #3"
],
"strongest_moment": "[The best thing the rep did on this call]",
"biggest_miss": "[The single most important thing the rep missed or should have done differently]"
}
Be direct. Be specific. Reference exact moments from the transcript. No generic advice. Write results to storage
Add a Google Sheets node (or database write) at the end of the workflow. Parse the JSON response from Claude and write each field to a column:
Scaling the system
Once the basic system works, you can add layers:
Post the coaching summary to a Slack channel after every sales call. The rep sees their score, top improvements, and biggest miss within minutes of hanging up.
Use the transcript and AI analysis to auto-generate a follow-up email. The rep reviews and sends. This cuts follow-up time from 20 minutes to 2.
Push the prospect fit score, committed next step, and key objections directly into your CRM. Your pipeline data becomes more accurate without manual data entry.
Aggregate scores across all reps over a month. Identify patterns: is the entire team weak on discovery? Does one rep consistently miss next steps? Use the data for team-level coaching sessions.