Home › Blog › Build a Free Cold Email Dashboard from the Smartlead API

Back to Blog
Analytics4 min readJuly 20, 2026

Build a Free Cold Email Dashboard from the Smartlead API (Sheets + Looker Studio)

Sequencer dashboards show you what the sequencer wants to show you, one workspace at a time, with metrics you cannot redefine. Pulling the raw data through the API into Google Sheets and Looker Studio gets you every campaign, every client, and your own definitions, for free. Here is the whole build.

Cold Email Expert · WarmInboxes
Building a cold email dashboard from the Smartlead API

Quick Answer: API → Sheets → Looker Studio, Daily

A scheduled job (Apps Script or n8n) pulls campaigns, sends, bounces, replies, and lead statuses from the Smartlead API into Google Sheets daily, one row per campaign per day, idempotent. Looker Studio renders it free. Track the reply-rate ladder and bounce rate; exclude opens and clicks on purpose. Same model absorbs Instantly's API, one dashboard across every workspace and client.

The Schema That Makes It Work

Sheets tabs (v1, extendable)
campaigns_daily:
  date | workspace | client | campaign_id | campaign
  | prospects_contacted | sends | hard_bounces
  | replies_total | replies_human | replies_positive
  | meetings

replies_log:
  date | campaign_id | prospect_email | intent
  | confidence | summary        (from the classifier)

computed (formulas / Looker):
  bounce_rate     = hard_bounces / sends
  positive_rr     = replies_positive / prospects
  pos_to_meeting  = meetings / replies_positive
  • •One row per campaign per day is the grain that answers every question later: trends, week-over-week, per-client rollups, and incident forensics ("what changed on the 14th?").
  • •Idempotent writes: the job deletes-then-writes its date's rows so re-runs never duplicate. This one decision prevents 90% of dashboard rot.
  • •Client column from day one even if you have one client today. Agencies grow into it; retrofitting is painful.
  • •Intent from the classifier upgrades replies_total into the honest ladder. Ship v1 without it, but leave the columns.

The Looker Studio Layer

Connect the Sheet as a data source and build four views: a program overview (all campaigns, the ladder metrics, 30-day trend), a campaign drilldown (daily series for one campaign), a client view (filtered by the client column, shareable as a read-only link, which quietly becomes your client reporting), and an alarm view (any campaign with bounce rate above 3% or positive rate collapsing week over week, per the stop rules). The alarm view is the one you check daily; the rest exist for weekly reviews and clients.

The strategic reason to own your data layer: sequencers change pricing, change dashboards, and get migrated away from. Every month of history in your own Sheet is a month you keep when that happens, and cross-tool comparisons (is Smartlead or Instantly performing better for this client?) only exist if both feed one model. The dashboard is a few hours of build; the data ownership is permanent. Next step once this runs: break the same numbers down by domain, inbox, and recipient provider, which is where the diagnostic power really lives.

Frequently Asked Questions

How do I build a dashboard from the Smartlead API?

Three layers: extraction, storage, visualization. A scheduled script (Apps Script inside Sheets, or n8n/Make on a timer) calls the Smartlead API for campaigns, sends, bounces, replies, and lead statuses, and appends rows into Google Sheets, one tab per entity, one row per day per campaign. Looker Studio connects to the Sheet free and renders the charts. Instantly's API follows the same shape, so an agency running both tools lands everything in one model. Under 100 campaigns, Sheets is plenty; past that, swap the storage layer for BigQuery and keep everything else.

What metrics should the dashboard track?

Per campaign per day: prospects contacted, sends, hard bounces, total replies, human replies, positive replies, and meetings. From those, the computed layer: bounce rate, the reply-rate ladder, and trendlines. Deliberately exclude opens and clicks, bots inflate them and they will poison decisions. The win over the native dashboard is definitional control: positive reply rate calculated YOUR way, per prospect, consistently across every workspace.

How do I get positive replies into the dashboard when the API only reports replies?

The API gives you reply events and text; classification is your layer. Route replies through an intent classifier (an LLM step in the same n8n flow works) and write the category back as a column, then the dashboard aggregates by intent. Without classification you can still ship v1 with total replies and add the intent column later, the schema should anticipate it from day one.

How often should the extraction run?

Daily is right for reporting, hourly adds nothing but API load since decisions are made on daily trends. Run it early morning for yesterday's complete numbers. Two robustness rules: make the job idempotent (re-running a day overwrites that day, not appends duplicates), and log failures somewhere visible, a silent extraction failure that gaps your data for a week is the classic way these dashboards die.

Is this worth it versus paying for a reporting tool?

The build is a few hours and the run cost is zero, versus per-seat pricing for outbound reporting SaaS that still will not match your metric definitions. The real value is agency-shaped: one dashboard across every client workspace, client-facing filtered views, and metrics that survive switching sequencers, because the moment you migrate tools, your history lives in your Sheet, not their UI.

Get FREE .com Domains

Prewarmed Inboxes So You Can Send Cold Emails Today

Get Prewarmed & Fresh Inboxes

Prewarmed & Fresh Inboxes

Google, Microsoft 365 and Azure inboxes with free prewarmed domains and DNS configured before you log in. Prewarmed inboxes send the day they land; every order is delivered within 48 to 72 hours.

Get Prewarmed & Fresh Inboxes