How to build Gong conversation-intelligence dashboards in Metabase
Gong captures your sales calls and turns them into conversation data — trackers, scorecards, and interaction stats. Metabase is where you turn that into shared dashboards on call coverage,conversation quality, and deal engagement. Gong is a revenue-intelligence platform rather than a deal-pipeline CRM, so its signals are most powerful joined to your CRM. This guide covers two complementary paths: a lightweight MCP + CLI route that pulls live data with the Gong MCP server and loads a CSV into Metabase with the Metabase CLI for quick analysis, and a durable warehouse route that syncs Gong into a database so you can build dashboards anyone can read.
How do you connect Gong to Metabase?
Most teams combine both routes: use the Gong MCP server and Metabase CLI route to pull live data and stand up a quick analysis, and the warehouse route for the coverage and engagement dashboards the team depends on.
Live data in, quick analysis out
Pair Gong's MCP server (to read live conversation data with tools like ask_account, ask_deal, and generate_brief) with the Metabase CLI, whose upload command loads a CSV into Metabase as a ready-to-query table and model.
- Quick lookups like "what are the risks on this deal from recent calls?"
- Loading a Gong CSV export into Metabase in seconds
- Spot-checks and one-off analyses without a warehouse
- Great for exploration, not governed reporting
- The Gong MCP is read-oriented (briefs and lookups); setup is account/admin controlled
- CSV uploads are snapshots — refresh or move to the pipeline for history
Durable dashboards with history
Sync Gong into a database or warehouse with the Gong API or a data export, then point Metabase at it.
- Call-coverage and deal-engagement dashboards the whole team relies on
- Talk-ratio and tracker trends over quarters
- Joining conversation signals with CRM pipeline and win rate
- Requires a destination database and a sync to maintain
- You own the coverage and engagement definitions and the refresh schedule
- Join Gong deals to your CRM to make signals actionable
What can you analyze from Gong data in Metabase?
- Call coverage — open deals with a recent call, and calls per deal by stage
- Conversation quality — talk-to-listen ratio, monologue, and question rate by rep
- Topic trends — tracker mentions for competitors, pricing, and objections over time
- Deal engagement — engagement signals and multi-threading vs. win rate
- Coaching — scorecard averages by rep and team
- Next steps — deals with and without a clear next step
Which Gong dashboards should you build in Metabase?
Call coverage
Whether deals are getting real conversations.
- Open deals with a call in the last 14 days (number)
- Calls per open deal by stage (bar)
- Deals with no next step mentioned (table)
- Multi-threading: distinct contacts on calls (number)
Conversation quality
How reps run calls.
- Talk-to-listen ratio by rep (bar)
- Longest monologue distribution (histogram)
- Question rate by rep (bar)
- Scorecard averages by rep (bar)
Topic trends
What comes up on calls.
- Tracker mentions over time: competitors, pricing (line)
- Objections mentioned by segment (bar)
- Feature requests by tracker (table)
- Competitor mentions by deal outcome (bar)
Deal engagement
Signals that a deal is real.
- Engagement score vs. win rate (scatter)
- Days since last customer touch (table)
- Next-step presence by stage (number)
- Champion engagement by deal (bar)
How do you use the Gong MCP server with the Metabase CLI?
Pair the Gong MCP server with the Metabase CLI for fast, hands-on analysis. Gong's MCP server exposes tools such as ask_account, ask_deal, and generate_brief over JSON-RPC to read live conversation data; the Metabase CLI's upload command loads a CSV into Metabase and creates a ready-to-query table and model.
Example workflow
- Ask the Gong MCP for a deal brief or competitor mentions from recent calls.
- Export the deal or tracker data you want to keep as a CSV.
- Run
mb upload csvto load it into Metabase as a table and model, then build questions and dashboards on top.
Be honest about the limits
- The Gong MCP is great for live briefs and lookups — not for scheduled or audited coverage reporting.
- A CSV upload is a point-in-time snapshot; refresh it with
mb upload replaceor move to the pipeline for real history. - The Gong MCP is read-oriented, and setup is account/admin controlled; confirm access with your Gong admin.
mb upload csvneeds an uploads database configured under Admin → Settings → Uploads.
How do you set up the Gong MCP server and the Metabase CLI?
Gong MCPofficial
- Transport
- JSON-RPC MCP server
- Tools
ask_account,ask_deal,generate_brief- Auth
- Account/admin controlled; confirm access
Metabase CLIofficial
- Install
npm install -g @metabase/cli- Auth
mb auth login(browser OAuth on v62+, or an API key)- Load data
mb upload csv --file data.csv- Requires
- An uploads database (Admin → Settings → Uploads)
{
"mcpServers": {
"gong": {
"url": "https://your-gong-mcp-endpoint/mcp"
}
}
}# Install the Metabase CLI
npm install -g @metabase/cli
# Log in (opens your browser; requires Metabase v62+)
mb auth login --url https://your-metabase.example.com
# Load a Gong CSV export — creates a table AND a model
mb upload csv --file gong-deals.csv --collection root
# Refresh that same table later from a new export
mb upload replace <table-id> --file gong-deals.csvSwap in the Gong MCP endpoint your admin provides. The Metabase CLI stores its credentials securely after mb auth login.
Can you generate a Gong dashboard with AI?
Yes. Use the prompt below with any assistant that can run the Gong MCP server and the Metabase CLI. It works end to end: if Gong tables already exist in Metabase it analyzes those; otherwise it pulls the data over the Gong MCP, loads it with mb upload csv, then builds the dashboard — and tells the agent to skip metrics the data can't support instead of faking them.
Create a polished Metabase dashboard for Gong conversation-intelligence analytics.
Work end to end: get the data into Metabase if it isn't there yet, then build.
Goal: Help sales and enablement leaders understand call coverage, conversation
quality, topic trends, and deal engagement from Gong data — joined to CRM
pipeline where possible.
Step 1 — Find or load the data:
- First, check what already exists in Metabase (search for Gong tables and
models). If durable Gong data is already present — synced from a warehouse or
uploaded earlier — use it and skip to Step 2.
- If nothing is there, pull it with the Gong MCP server (read-oriented briefs and
lookups via ask_account, ask_deal, and generate_brief): calls, deals, tracker
matches, scorecards, and interaction stats. Write each result to a CSV, then
load it with the Metabase CLI — run "mb upload csv --file <export>.csv" so each
upload creates a table and a ready-to-query model. Use "mb upload replace
<table-id> --file <export>.csv" to refresh an existing table instead of creating
duplicates.
Step 2 — Inspect before querying:
Gong CSV exports are usually flat and pre-aggregated (one row per deal or rep, with
columns like calls, coverage, talk ratio, and competitor mentions). Warehouse
tables are raw and call-grained (calls, interaction stats, and tracker matches you
join yourself). Inspect the actual tables and column names first; do not assume
exact names or that a call-level table exists.
Important:
- Build on whatever data is present; don't claim Metabase connects natively to
Gong — it reads a database or CLI-uploaded tables.
- Gong signals are most useful joined to CRM deals — align on a deal/opportunity
key so coverage and engagement map to real pipeline, when raw counts allow it.
- Define "coverage" explicitly (e.g. open deals with a call in the last N days)
and hold N fixed.
- Read talk-to-listen ratio and monologue as coaching signals, not targets.
- Only build a card if its underlying column/metric exists in the data.
- A single CSV is a point-in-time snapshot: only build trend cards if there is a
usable date column or multiple periods have been uploaded.
Dashboard title: Gong Conversation Intelligence Overview
Sections:
1. Executive summary (KPI cards): Call coverage; Calls per open deal; Avg
talk-to-listen ratio; Deals with a next step; Competitor mentions; Scorecard
average.
2. Coverage: Open deals with a recent call; calls per deal by stage; no-next-step
deals.
3. Quality: Talk-to-listen by rep; monologue distribution; question rate;
scorecards.
4. Topics: Tracker mentions over time; objections by segment; feature requests.
5. Engagement: Engagement score vs. win rate; days since last touch; champion
engagement.
Filters: Rep, Stage, Segment, Tracker, Date range.
Reuse the models Metabase auto-created from uploaded CSVs, or (for a warehouse)
create reusable models: modeled_gong_calls, modeled_gong_deals,
modeled_gong_tracker_matches, modeled_gong_scorecards, and
modeled_gong_interaction_stats.
Output: Build the dashboard if you have permission; otherwise provide the exact
questions, SQL, model definitions, and layout. Include caveats for any metric
that cannot be calculated from the available data. Reconcile totals against
Gong's own analytics. Keep it practical, dense, and executive-readable.How do you sync Gong data into a database or warehouse?
For dashboards that need history and reliability, land Gong data in a database first, then connect Metabase to that database.
Connector options
- Gong API (raw) — pull calls, participants, trackers, tracker matches, scorecards, deals, and interaction stats.
- Gong data export / data cloud — Gong can deliver conversation data to your warehouse on a schedule.
- dlt (code) — write a Python pipeline against the Gong API for incremental loads.
Notes
- Land raw tables first, then build clean models on top.
- Align Gong deals to your CRM opportunity key so signals map to real pipeline.
- Keep interaction stats and tracker matches over time for trends.
- Define coverage windows once (e.g. call in the last 14 days).
How should you model Gong data in Metabase?
Core tables
| Table | Grain | Key columns |
|---|---|---|
calls | one row per call | id, deal_id, account_id, started_at, duration, primary_user_id |
interaction_stats | one row per call/rep | call_id, user_id, talk_ratio, longest_monologue, question_count |
tracker_matches | one row per match | call_id, tracker_name, tracker_type, count |
scorecards | one row per scored call | call_id, user_id, score, scorecard_name |
deals | one row per Gong deal | id, crm_opportunity_id, stage, status, amount |
Modeling advice
- Join Gong
dealsto your CRM opportunities so coverage and engagement map to real pipeline and win rate. - Define coverage windows once and reuse them across charts.
- Roll
interaction_statsup by rep and team for coaching, and keep them per call for drill-down. - Treat talk ratio and monologue as coaching signals, not targets to game.
Which Gong metrics should you track in Metabase?
| Metric | Definition | Notes |
|---|---|---|
| Call coverage | Open deals with a call in the last N days ÷ open deals. | Hold N fixed; segment by stage. |
| Calls per open deal | Calls ÷ open deals. | Read alongside coverage. |
| Talk-to-listen ratio | Rep talk time ÷ total talk time. | A coaching signal, not a target. |
| Next-step presence | Deals with a next step ÷ open deals. | Strong hygiene signal. |
| Competitor mentions | Tracker matches for competitors. | Trend by segment and outcome. |
| Deal engagement | Composite of recency, multi-threading, and activity. | Correlate with win rate. |
What SQL powers Gong dashboards in Metabase?
These assume the modeled tables above (PostgreSQL dialect). Adjust identifiers to match your warehouse.
Open deals with a call in the last 14 days, as a share of open deals.
-- Call coverage: open deals with a call in the last 14 days
SELECT
d.stage,
COUNT(*) AS open_deals,
COUNT(*) FILTER (WHERE c.last_call_at >= CURRENT_DATE - INTERVAL '14 days') AS covered,
ROUND(100.0 * COUNT(*) FILTER (WHERE c.last_call_at >= CURRENT_DATE - INTERVAL '14 days')
/ NULLIF(COUNT(*), 0), 1) AS coverage_pct
FROM modeled_gong_deals d
LEFT JOIN (
SELECT deal_id, MAX(started_at) AS last_call_at
FROM modeled_gong_calls
GROUP BY deal_id
) c ON c.deal_id = d.id
WHERE d.status = 'open'
GROUP BY d.stage
ORDER BY coverage_pct;A coaching signal from interaction stats over the last 90 days.
-- Talk-to-listen ratio by rep (coaching signal)
SELECT
u.name AS rep,
ROUND(AVG(s.talk_ratio), 1) AS avg_talk_ratio_pct,
COUNT(*) AS calls
FROM modeled_gong_interaction_stats s
JOIN modeled_gong_users u ON u.id = s.user_id
WHERE s.call_started_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY u.name
ORDER BY avg_talk_ratio_pct DESC;Tracker matches for competitors, split by won/lost/open.
-- Competitor mentions by deal outcome
SELECT
t.tracker_name,
d.status,
COUNT(*) AS mentions
FROM modeled_gong_tracker_matches t
JOIN modeled_gong_calls c ON c.id = t.call_id
JOIN modeled_gong_deals d ON d.id = c.deal_id
WHERE t.tracker_type = 'competitor'
GROUP BY t.tracker_name, d.status
ORDER BY mentions DESC;