Skip to content
    Pointer Strategy
    Back to Blog
    Sales Playbook21 min read26 Feb 2026 · Updated 12 Apr 2026

    How to Build Your Own Gong.io — For a Fraction of the Price

    A practical guide to building DIY conversational intelligence for your sales team using Aircall, Claude AI, n8n, and Supabase. Three tiers for solo reps through to enterprise teams.

    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:

    1
    Cost. Gong's pricing starts around $100-$130/user/month, with annual contracts and minimum seat counts. For a growing team, you're looking at $15,000-$25,000/year — before you've customised anything. A DIY stack running on Claude, n8n, and a managed database costs a fraction of that.
    2
    Control. Off-the-shelf tools give you their analysis, their scorecards, their definitions of what "good" looks like. When you build it yourself, you define what matters. Your qualification framework. Your objection categories. Your coaching criteria. The AI works for you, not the other way around.
    3
    Flexibility. Want to cross-reference call insights with CRM pipeline data and Slack deal discussions? Want to flag when a rep hasn't mentioned pricing by the second call? Want custom alerts when a competitor is mentioned? You can build exactly what you need — nothing more, nothing less.

    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:

    ComponentWhat It DoesOur Pick
    Phone SystemRecords calls, provides transcriptsAircall (webhooks + transcription built in)
    OrchestrationTriggers workflows, moves data between systemsn8n (self-hosted or cloud)
    AI AnalysisReads transcripts, extracts insightsClaude API (Sonnet for throughput, Opus for depth)
    DatabaseStores calls, analyses, metrics, deal dataPostgreSQL via Supabase
    CRMSource of truth for deals, contacts, pipelineHubSpot
    NotificationsPushes insights to reps and managersSlack
    DashboardVisual interface for deep dives and searchReact 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:

    1
    Aircall fires a webhook to n8n when a call ends
    2
    n8n retrieves the transcript from Aircall's API
    3
    n8n sends the transcript to Claude with an analysis prompt
    4
    Claude returns a structured JSON response: summary, next steps, objections, coaching notes
    5
    n8n writes the analysis to Supabase
    6
    n8n posts a summary to Slack
    7
    n8n creates a note on the HubSpot contact/deal

    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:

  1. id, aircall_call_id, rep_name, contact_name, company_name, duration, transcript, created_at
  2. analyses table:

  3. id, call_id (foreign key), summary, next_steps (jsonb), objections (jsonb), competitor_mentions (jsonb), coaching_notes, talk_ratio, call_disposition, sentiment, hubspot_deal_id, created_at
  4. 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:

  5. Call 1 (Sonnet): Extract raw facts — who said what, topics discussed, action items. Fast and cheap.
  6. Call 2 (Opus): Take the extracted facts and produce the coaching analysis and strategic assessment. Slower but deeper.
  7. 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:

    1
    Aircall webhook hits n8n
    2
    n8n writes the raw call data to a Supabase queue table and returns immediately
    3
    A processing workflow in n8n polls the queue every 60 seconds, picks up unprocessed calls
    4
    For each call: retrieve transcript, send to Claude, store analysis, push to Slack/HubSpot
    5
    A nightly aggregation workflow runs Claude against all calls for each active deal, producing deal-level summaries
    6
    The React dashboard reads from Supabase via its REST API

    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:

    1
    For each open deal in HubSpot, pull all associated call analyses from the last 30 days
    2
    Send them to Claude with this prompt:

    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?

    3
    Store the output in the deals table
    4
    If deal_health drops below 5 or momentum is "stalling", fire a Slack alert to the rep and their manager

    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:

  8. Discovery depth — Did the rep uncover pain, impact, and timeline?
  9. Active listening — Talk ratio under 40%? Asked follow-up questions?
  10. Methodology adherence — Did they follow MEDDPICC / BANT / your framework?
  11. Objection handling — Did they acknowledge, probe, and reframe?
  12. Next step commitment — Did the call end with a specific, mutual next step?
  13. 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:

  14. Call feed — Chronological list of analysed calls, filterable by rep, deal, disposition
  15. Call detail — Full transcript with AI analysis alongside it
  16. Deal view — All calls for a deal, deal health score, risk timeline
  17. Rep scorecard — Coaching metrics over time, strengths, areas to improve
  18. Search — Full-text search across all transcripts and analyses
  19. 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:

  20. n8n — Webhook receiver, HubSpot/Slack integrations, scheduled reports
  21. Backend service (Node.js or Python) — Analysis pipeline, job queue management, API for the dashboard
  22. Redis + BullMQ (or Celery) — Job queue for processing calls with controlled concurrency
  23. PostgreSQL (Supabase or Neon) — Primary data store with pgvector for embeddings
  24. React dashboard — Full application with auth, role-based views, search
  25. The flow:

    1
    Aircall webhook hits n8n, which inserts a job into the Redis queue
    2
    Backend workers pick up jobs with concurrency limit (e.g., 5 at a time)
    3
    Each job: fetch transcript, Claude analysis, store results, trigger notifications
    4
    Nightly: deal aggregation, coaching score rollups, weekly digest generation
    5
    Real-time: Supabase realtime subscriptions push new analyses to the dashboard

    Cost Management at Scale

    At 100+ calls per day, Claude API costs matter. Strategies:

    Tiered model usage. Not every call needs Opus-level analysis.

  26. Cold calls and voicemails (under 3 min): Haiku. Quick summary, minimal coaching. ~$0.01-0.02 per call.
  27. Standard calls (3-30 min): Sonnet. Full analysis with coaching notes. ~$0.05-0.15 per call.
  28. Key deal calls (30+ min or flagged deals): Opus. Deep strategic analysis. ~$0.30-0.80 per call.
  29. 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:

  30. Team talk ratio distribution — Are your reps listening or lecturing?
  31. Discovery depth by rep — Who's asking the right questions? Who's surface-level?
  32. Objection frequency and handling — What objections come up most? Which reps handle them best?
  33. Methodology adherence trends — Is the team following the process or winging it?
  34. Competitive landscape — Which competitors are showing up most? In which deal stages?
  35. Pipeline risk heatmap — Deals at risk based on conversation signals, not just CRM stage
  36. Automated Coaching Workflows

    Instead of a manager manually reviewing calls, the system flags coaching moments:

    1
    Claude analyses a call and scores discovery depth at 3/10
    2
    System checks: is this a pattern? (Yes — third call this week below 5)
    3
    n8n sends a Slack DM to the rep's manager: "Jake's discovery scores have dropped this week. Here are the three calls with specific timestamps where the gaps are."
    4
    Manager can review the specific moments, not the entire call
    5
    After the coaching conversation, manager logs it in the system — closing the loop

    The Data Pipeline

    At this volume, you want to separate concerns:

  37. Hot path: Call comes in, queue, analysis, Slack notification. Latency: 2-5 minutes.
  38. Warm path: Hourly deal health recalculation, coaching score updates. Runs on schedule.
  39. Cold path: Weekly/monthly aggregation, trend analysis, team benchmarks. Runs nightly.
  40. 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:

  41. Pull deal stage, amount, close date, and associated contacts before analysing a call — gives Claude context
  42. Pull the rep's pipeline to prioritise which calls get Opus-level analysis (big deals get deeper analysis)
  43. Pull historical deal data to train the system on what "good" deal progression looks like in your business
  44. To HubSpot:

  45. Push call summaries as timeline activities
  46. Update custom properties: deal_health_score, last_ai_analysis_date, key_risks
  47. Create tasks automatically: "Follow up on technical concerns raised in call on Feb 24"
  48. Update deal stage suggestions: "Based on the conversation, this deal may be ready to move to Negotiation"
  49. 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:

  50. "The prospect just mentioned they're evaluating Competitor X — here's the battlecard"
  51. "You've been talking for 3 minutes straight — try asking a question"
  52. "Budget hasn't come up yet and you're 20 minutes in"
  53. 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

    CapabilityTier 1 (Solo)Tier 2 (Growth)Tier 3 (Enterprise)Gong
    Call summariesYesYesYesYes
    CRM notesYesYesYesYes
    Slack notificationsYesYesYesYes
    Coaching scoresBasicPer-call + trendingTeam-wide + automatedYes
    Deal intelligenceNoYes (nightly)Yes (hourly)Yes
    Transcript searchNoKeywordSemantic (vector)Yes
    Team analyticsNoBasicFull dashboardYes
    Pipeline risk alertsNoBasicAutomated workflowsYes
    Live call assistNoNoPossible (Extra Mile)Limited
    Custom methodologyYes (prompt)Yes (prompt + scoring)Yes (full framework)Partial
    Setup time1-3 days2-4 weeks4-8 weeks1-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
    CustomisationFullFullFullLimited
    Data ownershipYoursYoursYoursTheirs

    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:

    1
    Create a free Supabase project. Set up the two tables (calls, analyses).
    2
    Set up an n8n workflow. Aircall webhook trigger, HTTP request to Claude API, insert into Supabase, post to Slack.
    3
    Write your first prompt. Use the template above, customise it for your product and methodology.
    4
    Run 10 calls through it. Read every analysis. Note what Claude gets right and what it misses.
    5
    Iterate the prompt. This is where 80% of the value comes from. The infrastructure is just plumbing.

    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.

    Frequently Asked Questions

    Ready to Stop Gambling on Recruitment?

    No upfront fees. Practitioner-certified talent. 12 months of training. Your next hire should come with proof, not promises.

    Book a Discovery Call

    No commitment. No pitch deck. Just a conversation.