Dashboard

What does an email engagement dashboard show in Metabase?

An email engagement dashboard shows whether lifecycle email is reaching inboxes and earning clicks — delivery, bounces, complaints, list growth, and automation performance in one governed view. It combines campaign stats from tools like Mailchimp and ActiveCampaign with event streams from transactional senders like SendGrid, Postmark, and Resend.

For: lifecycle and email marketers, marketing ops, and growth teams. Grain: one row per campaign send (with counts), plus message-level events from webhooks for transactional mail.

Which cards belong on an email engagement dashboard?

  • Click-through rate by campaign (table)
  • Delivery and bounce rates by week (combo)
  • Spam complaints per 10k delivered (line)
  • Unsubscribe rate trend (line)
  • Net list growth — subscribes vs. unsubscribes and bounces (combo)
  • Automation entries and completions (combo)
  • Engaged-subscriber share — clicked in the last 90 days (line)
  • Email-attributed revenue, where tracked (bar)

What data does the dashboard need?

  • email_campaign_stats — campaign, send date, sends, delivered, unique clicks, bounces, spam complaints, and unsubscribes.
  • List membership changes — subscribes, unsubscribes, and suppressions over time — for the net growth and engaged-share cards.
  • Message-level events captured via webhooks from transactional senders (SendGrid, Postmark, Resend), since their native retention windows are short.

How do you build it?

  1. Sync campaign stats and list data from the marketing platform (see the Mailchimp and ActiveCampaign guides for routes).
  2. Point transactional senders' event webhooks at a collector that writes to the warehouse — before the retention windows expire the history.
  3. Tag a stream on every row (marketing vs. transactional) and normalize rate denominators: bounces over sends, clicks and complaints over delivered.
  4. Build the rate trends, per-campaign table, and list-health cards, with stream and audience filters across all of them.

Example card SQL

Delivery, bounce, CTR, and complaint rates by weekPostgreSQL
SELECT
  date_trunc('week', send_date) AS week,
  SUM(sends) AS sends,
  SUM(delivered) AS delivered,
  ROUND(
    100.0 * SUM(delivered) / NULLIF(SUM(sends), 0), 2
  ) AS delivery_rate_pct,
  ROUND(
    100.0 * SUM(bounces) / NULLIF(SUM(sends), 0), 2
  ) AS bounce_rate_pct,
  ROUND(
    100.0 * SUM(unique_clicks) / NULLIF(SUM(delivered), 0), 2
  ) AS ctr_pct,
  ROUND(
    10000.0 * SUM(spam_complaints) / NULLIF(SUM(delivered), 0), 2
  ) AS complaints_per_10k
FROM email_campaign_stats
GROUP BY 1
ORDER BY 1;

Metrics

Integrations

Dashboards

FAQ

Are open rates still worth tracking?
As a rough directional signal at best. Since Apple Mail Privacy Protection began pre-fetching tracking pixels, opens are inflated for a large share of any consumer list, and the inflation varies by audience mix — so an "improving" open rate may just mean more Apple Mail users. Anchor the dashboard on click-through rate per delivered, which measures a real human action, and treat opens from Mailchimp or any other sender as a secondary trend line, never a headline.
Should transactional and marketing email be measured together?
Never in the same rate. Transactional mail (receipts, password resets) gets opened and clicked at rates marketing mail will never reach, so mixing streams flatters every number — and hides deliverability problems in the stream that matters. Keep a stream field on every row, filter every rate card by it, and mirror the separation senders like SendGrid and Postmark enforce with separate subaccounts and message streams.
Why do transactional email events need a warehouse sync?
Because the senders don't keep them long. SendGrid's email activity feed retains 3 days by default, Resend keeps events for 30 days, and Postmark around 45 — after that, the delivery and bounce history is gone. Point each sender's event webhook at a small collector that writes to the warehouse from day one; it is the only way this dashboard can show a 12-month bounce trend for transactional mail.
What are the early warning signs of a deliverability problem?
Three cards on this dashboard, read together. A rising bounce rate — especially hard bounces after a list import — signals list-quality decay. For spam complaints, Gmail's bulk-sender guidance is the benchmark: stay below 0.1% (10 per 10,000 delivered), and never let the rate reach 0.3% (30 per 10k) — sustained rates in that band get mail throttled or junked. And a sliding engaged-subscriber share means reputation damage is coming even while topline sends look healthy — the fix is usually suppressing the unengaged tail before providers do it for you.
How do you connect email clicks to actual conversions?
Via UTM tags, in the same taxonomy the rest of the funnel uses. Tag every campaign link with utm_medium=email and a campaign name matching the sender's campaign records, and the click lands in GA4 and your signups table like any other channel. From there the marketing funnel dashboard can carry email through to conversion — which is how the email-attributed revenue card stops depending on the sender's own generous attribution window.