How to build Breakcold sales dashboards in Metabase
Breakcold is a social-selling CRM where your leads, deals, and outreach across email, LinkedIn, and more live. Metabase is where you turn that activity into shared, trustworthy sales dashboards. This guide covers two complementary paths: a lightweight MCP + CLI route that pulls live data with the Breakcold MCP server and loads a CSV into Metabase with the Metabase CLI for quick analysis, and a durable pipeline route that syncs Breakcold into a database so you can build pipeline, win-rate, and outreach dashboards anyone can read.
How do you connect Breakcold to Metabase?
Most teams combine both routes: use the Breakcold MCP server and Metabase CLI route to pull live data and stand up a quick analysis, and the pipeline route for the sales dashboards the team depends on.
Live data in, quick analysis out
Pair Breakcold's official hosted MCP server (to read live contacts, deals, and social activity) with the Metabase CLI, whose upload command loads a CSV into Metabase as a ready-to-query table and model.
- Ad-hoc questions like "which deals had no touch this week?"
- Loading a Breakcold CSV export into Metabase in seconds
- Spot-checks and one-off analyses without a warehouse
- Great for exploration, not governed reporting
- Use a scoped Breakcold token so analysis can't trigger writes
- CSV uploads are snapshots — refresh or move to the pipeline for history
Durable dashboards with history
Sync Breakcold into a database or warehouse with the Breakcold API, dlt, or a managed connector, then point Metabase at it.
- Pipeline, win-rate, and outreach dashboards the whole team relies on
- Sales cycle and stage-conversion trends over quarters
- Joining social-selling activity with revenue and product data
- Requires a destination database and a sync to maintain
- You own the won/lost and stage definitions and the refresh schedule
- Capture stage changes if you want accurate velocity metrics
What can you analyze from Breakcold data in Metabase?
- Pipeline — open deal value by stage, owner, and pipeline, plus coverage against target
- Win rate — deals won vs. closed, by pipeline and source
- Sales cycle length — created to won, with median and p90
- Stage conversion — where deals advance and where they stall
- Social outreach — activities and reply rate by channel (email, LinkedIn, WhatsApp, Telegram)
- Deal size — average and median value, plus mix by pipeline
Which Breakcold dashboards should you build in Metabase?
Pipeline
The open book of business, right now.
- Open deals by stage (funnel)
- Pipeline value by owner and pipeline (bar)
- Coverage vs. target for the period (number)
- Deals with no recent activity (table)
Conversion
Where deals advance and where they stall.
- Stage-to-stage conversion (funnel)
- Win rate by pipeline and source (bar)
- Created vs. won by week (dual line)
- Lost reasons breakdown (bar)
Social outreach
Effort and coverage across channels.
- Activities by channel: email, LinkedIn, WhatsApp (bar)
- Touches per active deal (number)
- Reply rate by channel (number)
- First-touch response time (line)
Velocity
How fast deals close.
- Median sales cycle length (number + trend)
- Time-in-stage by stage (bar)
- Deal velocity: value / cycle time (number)
- Aging of open deals (table)
How do you use the Breakcold MCP server with the Metabase CLI?
Pair the Breakcold MCP server with the Metabase CLI for fast, hands-on analysis. Breakcold ships a first-party hosted MCP server that reads live contacts, deals, and social activity; the Metabase CLI's upload command loads a CSV into Metabase and creates a ready-to-query table and model.
Example workflow
- Ask the Breakcold MCP which open deals had no touch on any channel this week.
- Export the deals or activity 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 Breakcold MCP is great for live lookups — not for scheduled or audited pipeline reporting.
- A CSV upload is a point-in-time snapshot; refresh it with
mb upload replaceor move to the pipeline for real history — sales cycle and stage conversion still need synced stage history in a database. - The MCP server acts with the permissions of the connected Breakcold workspace; use a scoped token.
mb upload csvneeds an uploads database configured under Admin → Settings → Uploads.
How do you set up the Breakcold MCP server and the Metabase CLI?
Breakcold MCPofficial
- US endpoint
https://http.us.breakcold.com/mcp/v1- EU endpoint
https://http.eu.breakcold.com/mcp/v1- Auth
- OAuth where available, or a bearer token
- Note
- Pick the endpoint that matches your workspace region
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": {
"breakcold": {
"url": "https://http.us.breakcold.com/mcp/v1"
}
}
}# 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 Breakcold CSV export — creates a table AND a model
mb upload csv --file breakcold-deals.csv --collection root
# Refresh that same table later from a new export
mb upload replace <table-id> --file breakcold-deals.csvSwap the Breakcold URL for the EU endpoint if your workspace is hosted in Europe. The MCP covers people, companies, deals, tasks, notes, custom fields, the inbox, and social channels — use it for live lookups, not governed reporting. The Metabase CLI stores its credentials securely after mb auth login.
Can you generate a Breakcold dashboard with AI?
Yes. Use the prompt below with any assistant that can run the Breakcold MCP server and the Metabase CLI. It works end to end: if Breakcold tables already exist in Metabase it analyzes those; otherwise it pulls the data over the Breakcold 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 Breakcold sales analytics.
Work end to end: get the data into Metabase if it isn't there yet, then build.
Goal: Help sales leaders understand pipeline, win rate, conversion, sales cycle,
and social outreach from Breakcold CRM data.
Step 1 — Find or load the data:
- First, check what already exists in Metabase (search for Breakcold tables and
models). If durable Breakcold 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 Breakcold MCP server: contacts,
companies, deals, tasks, notes, and activities across channels. 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:
Breakcold CSV exports are usually flat and pre-aggregated (one row per deal or
activity, with columns like stage, status, amount, channel, and direction).
Warehouse tables are raw and relational (deals, activities, and stage history
join on IDs). Inspect the actual tables and column names first; do not assume
exact names or that stage-change history exists.
Important:
- Build on whatever data is present; don't claim Metabase connects natively to
Breakcold — it reads a database or CLI-uploaded tables.
- Define "won" and "closed" once (deal status) and reuse them.
- For win rate, state the denominator explicitly (won / closed vs. won / created)
and hold the cohort fixed.
- Report sales cycle length and deal size as medians (p50) and p90, never plain
averages — both are right-skewed.
- Only build a card if its underlying column/metric exists in the data; if deal
stage-change history is missing, skip sales cycle length, time-in-stage, and
stage conversion and use a caveat instead.
- Convert all amounts to a single reporting currency; caveat any mix.
- Attribute activities to their channel so outreach analysis stays honest.
- 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: Breakcold Sales Overview
Sections:
1. Executive summary (KPI cards): Open pipeline; Coverage vs. target; Win rate
(last 90 days); Median sales cycle length; Average and median deal size;
Reply rate.
2. Pipeline: Open deals by stage; value by owner and pipeline; stale deals.
3. Conversion: Stage-to-stage conversion; win rate by pipeline and source; lost
reasons.
4. Outreach: Activities by channel; touches per deal; reply rate by channel.
5. Velocity: Median cycle length; time-in-stage; deal velocity; aging.
Filters: Pipeline, Stage, Owner, Channel, Source, Date range.
Reuse the models Metabase auto-created from uploaded CSVs, or (for a warehouse)
create reusable models: modeled_breakcold_deals,
modeled_breakcold_stage_history, modeled_breakcold_contacts,
modeled_breakcold_companies, and modeled_breakcold_activities.
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
Breakcold's own reporting. Keep it practical, dense, and executive-readable.How do you sync Breakcold data into a database or warehouse?
For dashboards that need history and reliability, land Breakcold data in a database first, then connect Metabase to that database.
Connector options
- Breakcold API (raw) — the source of truth; pull contacts, companies, deals, tasks, notes, lists, and activities across channels.
- dlt (code) — write a Python pipeline against the Breakcold API for full control of schema and incremental loads.
- Webhooks — Breakcold can stream deal and activity changes so you don't lose transitions between syncs.
Notes
- Land raw tables first, then build clean models on top.
- Keep activity channel and direction (inbound/outbound) so outreach and reply-rate metrics stay honest.
- Capture stage changes (webhooks or snapshots) for cycle length, time-in-stage, and conversion.
- Convert deal amounts to a single reporting currency.
How should you model Breakcold data in Metabase?
Core tables
| Table | Grain | Key columns |
|---|---|---|
deals | one row per deal | id, contact_id, pipeline_id, stage, status, amount, currency, created_at, closed_at, owner_id |
contacts | one row per contact | id, company_id, source, created_at |
companies | one row per company | id, name, industry |
activities | one row per activity | id, contact_id, channel (email/linkedin/whatsapp),direction, occurred_at |
tasks | one row per task | id, deal_id, status, due_date, owner_id |
Modeling advice
- Build a
modeled_breakcold_dealstable with cleanstatus,stage,amount(one currency), andclosed_at. - Normalize stages into an ordered funnel so conversion charts stay stable.
- Roll
activitiesup by channel and direction for outreach and reply-rate metrics. - Derive
modeled_breakcold_stage_historyfrom webhooks or snapshots for time-in-stage and cycle length. - Reconcile modeled pipeline against Breakcold's own reports before trusting it.
Which Breakcold metrics should you track in Metabase?
| Metric | Definition | Notes |
|---|---|---|
| Open pipeline | Sum of amount for open deals. | Segment by stage, owner, pipeline. |
| Win rate | Won ÷ closed deals in a cohort. | Fix the denominator (closed vs. created) first. |
| Reply rate | Inbound replies ÷ outbound touches, by channel. | See reply rate. |
| Sales cycle length | Created → won, in days. | Report median and p90; it's right-skewed. |
| Stage conversion | Deals reaching stage N+1 ÷ reaching stage N. | Needs stage-change history. |
| Average deal size | Won amount ÷ won deals. | Report the median too; outliers distort the mean. |
What SQL powers Breakcold dashboards in Metabase?
These assume the modeled tables above (PostgreSQL dialect). Adjust identifiers to match your warehouse.
Won as a share of closed deals over the last 12 months.
SELECT
date_trunc('month', d.closed_at) AS month,
COUNT(*) FILTER (WHERE d.status = 'won') AS won,
COUNT(*) FILTER (WHERE d.status IN ('won', 'lost')) AS closed,
ROUND(
100.0 * COUNT(*) FILTER (WHERE d.status = 'won')
/ NULLIF(COUNT(*) FILTER (WHERE d.status IN ('won', 'lost')), 0),
1
) AS win_rate_pct
FROM modeled_breakcold_deals d
WHERE d.status IN ('won', 'lost')
AND d.closed_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY 1
ORDER BY 1;Inbound replies as a share of outbound touches, by channel.
-- Reply rate by outreach channel over the last 90 days
SELECT
a.channel,
COUNT(*) FILTER (WHERE a.direction = 'outbound') AS sent,
COUNT(*) FILTER (WHERE a.direction = 'inbound') AS replies,
ROUND(
100.0 * COUNT(*) FILTER (WHERE a.direction = 'inbound')
/ NULLIF(COUNT(*) FILTER (WHERE a.direction = 'outbound'), 0),
1
) AS reply_rate_pct
FROM modeled_breakcold_activities a
WHERE a.occurred_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY a.channel
ORDER BY sent DESC;The current funnel — open deals and value by stage.
SELECT
d.stage,
COUNT(*) AS open_deals,
ROUND(SUM(d.amount), 2) AS pipeline_value
FROM modeled_breakcold_deals d
WHERE d.status = 'open'
GROUP BY d.stage
ORDER BY pipeline_value DESC;