Dashboard

What goes in a CSAT dashboard in Metabase?

A CSAT dashboard tracks the quality of support — how satisfied customers are, how many actually respond, and what's driving the unhappy ones. It's the counterweight to the speed metrics on your SLA dashboard. Build it from support data synced into a database — see Zendesk or Intercom for the connection.

For: Support leaders, QA, CX. Refresh: daily.Source: modeled ratings/surveys joined to tickets, with tags and teams.

What does a CSAT dashboard look like?

Here's the layout this guide builds. The headline score and response rate sit together at the top so a small sample can't flatter the number, then the trend and the full 1–5 rating mix, then the tags, teams, and channels driving dissatisfaction — ending in the raw negative comments. Read it monthly for the trend and weekly for the comments.

CSAT dashboard in Metabase showing satisfaction score, rating mix, response rate, CSAT by tag and team, and low ratings.
An example CSAT dashboard in Metabase, built from Zendesk or Intercom data. Figures are illustrative.

Which cards belong on a CSAT dashboard?

Headline KPIs

  • CSAT (this period)
  • CSAT response rate
  • Reopen rate
  • Ratings received

Trend & drivers

  • CSAT by month with response rate overlaid
  • CSAT by tag / topic (drivers)
  • CSAT by team and channel
  • Recent negative ratings with comments (table)

What data does a CSAT dashboard need?

  • A ratings/survey table with a score linked to the ticket.
  • The tickets table for response rate against solved tickets.
  • Tags, team, and channel for driver breakdowns.
  • Status history if you want reopen rate too.

How do you build a CSAT dashboard?

  1. Sync your help desk into a database (Zendesk or Intercom).
  2. Fix the positive-rating threshold once and keep it constant.
  3. Always show response rate next to CSAT so a small sample can't mislead.
  4. Break CSAT down by tag and team to find where to improve.

Example card SQL

CSAT and response rate by tagPostgreSQL
-- CSAT and response rate by tag/topic over the last 90 days.
SELECT
  t.tag,
  COUNT(r.id)                                             AS ratings,
  ROUND(100.0 * COUNT(r.id) FILTER (WHERE r.score >= 4)
        / NULLIF(COUNT(r.id), 0), 1)                      AS csat_pct,
  ROUND(100.0 * COUNT(r.id)
        / NULLIF(COUNT(DISTINCT t.id), 0), 1)             AS response_rate_pct
FROM tickets t
LEFT JOIN ticket_ratings r ON r.ticket_id = t.id
WHERE t.resolved_at >= CURRENT_DATE - INTERVAL '90 days'
GROUP BY t.tag
ORDER BY ratings DESC;

Integrations

Analytics

Dashboards

Metrics

FAQ

Why show response rate next to CSAT?
Because a great score from a tiny sample is noise, and low response rates skew toward the delighted and the furious. A CSAT trend is only trustworthy when the response rate is stable and high enough, so the two belong on the same card.
How do I find what's driving low CSAT?
Break CSAT down by tag/topic, team, and channel, and put recent negative ratings with their comments on a table. Dissatisfaction usually concentrates in a few topics or a specific channel — the org-wide average hides exactly the areas worth fixing.
Should I track CSAT or NPS here?
This dashboard is CSAT — satisfaction with specific support interactions. NPS measures overall willingness to recommend the company and is usually owned at the company level. Keep the support dashboard focused on CSAT and reopen rate.