Gong costs $1,200-$1,600 per user per year. For a team of 10, that's $16,000 before you've heard a single insight. The tools to build something better — and customised to the way your team actually sells — are now available to anyone willing to wire them together. This is how you do it.
Why Build It Yourself?
Gong, Chorus, and Clari are excellent products. They've raised hundreds of millions of dollars and employ armies of engineers. So why would you build your own?
Three reasons:
The trade-off is real: you're investing engineering time instead of licence fees. This guide gives you three levels of build — so you can pick the one that matches your team size, technical appetite, and budget.
What You're Actually Building
Before we get into architecture, let's be clear about what conversational intelligence actually does. Strip away the marketing and you get four capabilities:
1. Call Capture & Transcription
Recording calls and turning audio into searchable text. This is table stakes. If your phone system (Aircall, Dialpad, RingCentral) already does transcription, you've got this for free.
2. Post-Call Analysis
Summarising what happened: who said what, what objections came up, what next steps were agreed, what the rep did well and what they missed. This is where AI earns its keep.
3. Coaching Metrics
Quantifying rep performance over time: talk-to-listen ratio, question frequency, monologue length, how they handle objections, whether they're following your methodology. This turns individual call analysis into longitudinal coaching data.
4. Deal Intelligence
Aggregating signals across multiple calls on the same deal: is the champion engaged, have we multi-threaded, when did budget last come up, is this deal trending forward or stalling? This is the hardest to build and the most valuable.
Every architecture below delivers capability 1 and 2. The more you invest, the further you get into 3 and 4.
The Building Blocks
Regardless of which tier you build, you'll use some combination of these components:
| Component | What It Does | Our Pick |
|---|---|---|
| Phone System | Records calls, provides transcripts | Aircall (webhooks + transcription built in) |
| Orchestration | Triggers workflows, moves data between systems | n8n (self-hosted or cloud) |
| AI Analysis | Reads transcripts, extracts insights | Claude API (Sonnet for throughput, Opus for depth) |
| Database | Stores calls, analyses, metrics, deal data | PostgreSQL via Supabase |
| CRM | Source of truth for deals, contacts, pipeline | HubSpot |
| Notifications | Pushes insights to reps and managers | Slack |
| Dashboard | Visual interface for deep dives and search | React app (or Retool for speed) |
You don't need all of these on day one. The tiers below tell you what to start with and what to add.
Tier 1: The Solo/Small Team Stack
Best for: 1-3 reps, 5-15 calls per day, one person wearing multiple hats.
What you get: Automated call summaries pushed to Slack and HubSpot after every call. Searchable transcript archive. Basic coaching signals.
Build time: A weekend to a week.
Monthly cost: ~$50-150/month (n8n Cloud + Supabase free tier + Claude API usage).
Architecture
This is the simplest version. A single n8n workflow does everything.
The flow:
That's it. Seven steps, one workflow, zero custom code.
The Claude Prompt
This is the engine. The quality of your analysis lives and dies by this prompt. Here's a starting point:
You are a sales call analyst for a B2B SaaS company. Analyse the following call transcript and return a JSON object with these fields:
>
summary: 2-3 sentence overview of what happened on the call.
next_steps: Array of specific next steps agreed or implied.
objections: Array of objections raised by the prospect, with how the rep handled each.
competitor_mentions: Any competitors mentioned, with context.
budget_signals: Any discussion of budget, pricing, or commercial terms.
decision_makers: Names and roles of people mentioned or involved.
coaching_notes: 2-3 specific observations about the rep's performance — what they did well and one thing to improve.
talk_ratio: Estimated percentage of time the rep was talking vs. listening.
call_disposition: One of: discovery, demo, negotiation, follow_up, cold_call, check_in.
sentiment: Overall prospect sentiment: positive, neutral, cautious, negative.
You'll iterate on this prompt constantly. That's a feature, not a bug. Every team sells differently, and the prompt should reflect your methodology, your product, and your market.
The Database
Supabase gives you a Postgres database with a REST API out of the box. You need two tables to start:
calls table:
analyses table:
That's your entire schema. Add fields as you learn what matters.
The Slack Message
Don't dump the entire analysis into Slack. Reps will ignore it. Give them the headline and a link:
Call with Sarah Chen @ Acme Corp (14 min)
Discovery call — prospect is evaluating 3 vendors including us and Competitor X. Budget approved for Q2. Key objection: integration timeline.
Next steps: Send ROI calculator by Thursday. Schedule technical deep-dive with their CTO.
Coaching: Good discovery questions. Consider asking about decision process earlier — came up at minute 11.
The Shortcut
If you want this running in an afternoon, skip the database entirely. Just do: Aircall webhook, Claude analysis, Slack message plus HubSpot note. You lose searchability and historical data, but you get immediate value. Add the database when you're ready.
The Extra Mile
Prompt chaining. Instead of one massive prompt, use two Claude calls:
This gives you better analysis at roughly the same cost, because Sonnet handles the bulk extraction cheaply and Opus only processes the concentrated output.
Tier 2: The Growth Team Engine
Best for: 3-8 reps, 20-50 calls per day, dedicated RevOps or sales manager.
What you get: Everything in Tier 1, plus: coaching scorecards per rep, deal-level intelligence aggregated across calls, a searchable web dashboard, weekly digest reports.
Build time: 2-4 weeks.
Monthly cost: ~$200-500/month (n8n + Supabase Pro + Claude API + hosting).
Architecture
At this scale, a single n8n workflow starts to creak. You need two things Tier 1 doesn't have: a job queue (so 20 simultaneous call-end webhooks don't overwhelm Claude) and a proper data model (so you can track insights across calls on the same deal).
The flow:
The Data Model
You need more structure than Tier 1. The key addition is linking calls to deals:
calls — same as Tier 1, plus hubspot_deal_id, hubspot_contact_id
analyses — same as Tier 1, plus structured coaching scores
deals — hubspot_deal_id, deal_name, stage, amount, rep_name, last_activity, deal_health_score, key_risks (jsonb), last_aggregation_at
coaching_scores — id, call_id, rep_name, metric_name, score (1-10), notes, scored_at
weekly_digests — id, rep_name, week_start, calls_made, avg_talk_ratio, top_strength, top_improvement, deal_movements (jsonb)
Deal Intelligence
This is where things get powerful. Instead of analysing calls in isolation, you analyse them in context.
The nightly aggregation workflow:
You are a deal strategist. Review the following call analyses for the deal "[Deal Name]" currently in stage "[Stage]". The deal is worth $[Amount].
>
Based on the progression of conversations, assess:
deal_health: Score 1-10 with brief justification.
momentum: Is this deal accelerating, steady, or stalling? Evidence.
risks: Top 3 risks to this deal closing, based on what's been said (and what hasn't).
multi_threading: How many stakeholders have we engaged? Who's missing?
next_best_action: The single most important thing the rep should do next.
competitor_position: Based on all mentions, how does the competitive landscape look?
This is the kind of intelligence that Gong charges a premium for. You're building it with a database query, a Claude prompt, and an n8n workflow.
Coaching Scorecards
For each call analysis, extract structured coaching scores. Over time, this builds a picture of each rep's strengths and gaps.
Define 5-8 metrics that matter to your team. For example:
Each metric gets a 1-10 score from Claude, with a brief justification. Store these in the coaching_scores table. Now you can show a manager: "Here's how each rep is trending on discovery depth over the last 30 days."
The Dashboard
At this tier, you need a visual interface. Two options:
Option A: Retool (faster to build). Connect Retool directly to your Supabase database. Build tables, charts, and search in a day. Good enough for internal use. No custom frontend code.
Option B: React app (more control). Use Supabase's client library for auth and data. Build a proper SPA with:
If your team lives in the browser, go with Option B. If they live in Slack and HubSpot, Option A is fine — they'll mostly consume insights via push notifications anyway.
The Shortcut
Skip the dashboard entirely and build a Slack bot instead. Reps can ask: "/calls @sarah last week" or "/deal Acme health check" and get the data inline. You're building a Slack interface to your Supabase database using n8n as the middleware. Takes a day instead of two weeks.
The Extra Mile
Transcript search with embeddings. Store Claude-generated embeddings of each call transcript in Supabase's vector store (pgvector). Now a manager can search "calls where the prospect mentioned migrating from Salesforce" and get semantically relevant results — not just keyword matches. This is genuinely powerful and takes about a day to add.
Tier 3: The Enterprise Platform
Best for: 10+ reps, 50-200+ calls per day, dedicated ops team, scaling fast.
What you get: Everything in Tier 2, plus: real-time processing, team-level analytics and benchmarks, automated pipeline risk alerts, manager coaching workflows, custom methodology tracking, and the ability to handle hundreds of calls without breaking a sweat.
Build time: 4-8 weeks.
Monthly cost: ~$500-2,000/month (infrastructure + Claude API at volume).
Architecture
At this scale, n8n remains your integration and webhook layer, but the processing pipeline needs a proper backend service with a job queue. You can't have 50 n8n workflows running simultaneously — you need controlled concurrency, retry logic, and priority queuing.
The components:
The flow:
Cost Management at Scale
At 100+ calls per day, Claude API costs matter. Strategies:
Tiered model usage. Not every call needs Opus-level analysis.
For a team doing 100 calls/day with a typical distribution (40% short, 50% standard, 10% key), you're looking at roughly $8-15/day in Claude costs. That's $250-450/month — compared to $13,000+/year for 10 Gong seats.
Batching. For coaching score rollups and weekly digests, batch multiple calls into a single Claude request. Instead of analysing each call's coaching scores individually, send 10-20 calls at once: "Score these calls on the following criteria." Cheaper and often more consistent.
Caching. If two calls reference the same deal, cache the deal context so you're not re-fetching and re-processing it for every call.
Team Analytics
At this tier, you're not just helping individual reps — you're giving managers and leadership a view of the entire team.
Manager dashboard includes:
Automated Coaching Workflows
Instead of a manager manually reviewing calls, the system flags coaching moments:
The Data Pipeline
At this volume, you want to separate concerns:
This means a rep gets their call summary in minutes, a manager sees deal health updates hourly, and leadership gets team trend reports weekly. Each path has different latency and cost profiles.
HubSpot Deep Integration
At Tier 3, HubSpot isn't just a place you push notes. It becomes a two-way integration:
From HubSpot:
To HubSpot:
The Shortcut
Use Supabase Edge Functions instead of a separate backend service. You get serverless execution, built-in Postgres access, and Supabase handles scaling. You lose some flexibility (no persistent job queue), but you can use Supabase's pg_cron for scheduled jobs and a simple database-backed queue for call processing. This cuts your deployment surface from four services to two (Supabase + n8n).
The Extra Mile
Live call assistance. If Aircall supports real-time transcription streaming (or you add a service like Deepgram), you can build a system that analyses the call while it's happening. Claude processes chunks of the transcript in real-time and pushes suggestions to the rep:
This is genuinely hard to build well (latency, chunking, relevance), but it's the frontier of conversational intelligence and it's possible with the tools we're discussing.
The Comparison
| Capability | Tier 1 (Solo) | Tier 2 (Growth) | Tier 3 (Enterprise) | Gong |
|---|---|---|---|---|
| Call summaries | Yes | Yes | Yes | Yes |
| CRM notes | Yes | Yes | Yes | Yes |
| Slack notifications | Yes | Yes | Yes | Yes |
| Coaching scores | Basic | Per-call + trending | Team-wide + automated | Yes |
| Deal intelligence | No | Yes (nightly) | Yes (hourly) | Yes |
| Transcript search | No | Keyword | Semantic (vector) | Yes |
| Team analytics | No | Basic | Full dashboard | Yes |
| Pipeline risk alerts | No | Basic | Automated workflows | Yes |
| Live call assist | No | No | Possible (Extra Mile) | Limited |
| Custom methodology | Yes (prompt) | Yes (prompt + scoring) | Yes (full framework) | Partial |
| Setup time | 1-3 days | 2-4 weeks | 4-8 weeks | 1-2 weeks |
| Monthly cost (10 reps) | $50-150 | $200-500 | $500-2,000 | $1,000-1,600 |
| Annual cost (10 reps) | $600-1,800 | $2,400-6,000 | $6,000-24,000 | $12,000-19,200 |
| Customisation | Full | Full | Full | Limited |
| Data ownership | Yours | Yours | Yours | Theirs |
What You'll Get Wrong (And That's Fine)
Every team that builds this makes the same mistakes. Here's what to expect:
Your first prompt will be too generic. You'll ask Claude to "analyse this call" and get a wall of vague observations. The fix: be ruthlessly specific. Tell Claude your qualification framework. Give it examples of good and bad calls. Define exactly what "discovery depth" means for your product and market.
You'll over-engineer the database. You'll want tables for everything — talk tracks, competitor battlecards, rep profiles, customer personas. Start with two tables (calls and analyses). Add more only when you have a real question you can't answer with what you have.
The first version of your Slack notifications will be ignored. Too long, too generic, or delivered at the wrong time. Watch how your reps actually use them and iterate. The best notification is one sentence that makes someone take an action.
Deal intelligence will be messy at first. Matching calls to deals requires clean CRM data. If your reps don't associate calls with deals in Aircall or HubSpot, the aggregation won't work. Fix the input before you fix the analysis.
You'll want to build everything at once. Don't. Start with Tier 1. Get 20 calls analysed. See what insights actually change behaviour. Then build the next thing.
Getting Started Today
If you've read this far and you're itching to build, here's your afternoon:
The tools are available. The AI is good enough. The question isn't whether this can work — it's whether you'll invest the time to make it work for your team.
Need help building your revenue stack? Our fractional GTM leaders have built these systems across 60+ companies. If you'd rather have someone wire this up for you, talk to us.