Dashboard

What goes in an IT service management dashboard in Metabase?

An IT service management (ITSM) dashboard looks at IT through the service catalog: which services generate requests and incidents, whether each one is meeting its SLA, what users think when tickets close, and what the problem and change pipelines hold. Metabase builds it from the ticket tables your desk already keeps in Jira Service Management, Zendesk, or Freshdesk — synced to a warehouse and mapped to your catalog once.

For: service delivery managers, service owners, and ITSM process leads. Grain: one row per ticket — incident, service request, problem, or change. Refresh: daily; reviewed weekly per service and monthly for governance.

What does an ITSM dashboard look like?

Here’s the layout this guide builds. The catalog’s headline numbers sit at the top; demand comes next — requests and incidents split by service, and the weekly mix of ticket types; service levels and quality close the page, where SLA attainment, CSAT, problem records, and the change calendar give the service review its agenda.

ITSM dashboard in Metabase showing requests vs. incidents by service, SLA attainment, CSAT, problem records, and change calendar.
An example IT service management dashboard in Metabase, built from service desk ticket tables. Figures are illustrative.

Which cards belong on an ITSM dashboard?

The eight below cover demand, service levels, and the two ITIL practices — problem and change — that a help-desk view leaves out.

  • Requests vs. incidents by service, past 30 days (row)
  • Tickets by type per week — requests, incidents, problems, changes (stacked bar)
  • SLA attainment, past 30 days against target bands (gauge)
  • SLA attainment by service (row)
  • CSAT on closed tickets by month (line)
  • Problems opened vs. closed per month (bar)
  • Open problem records, with age and linked incidents (table)
  • Change calendar — upcoming changes with window and risk (table)

What data does the dashboard need?

  • A tickets table: ticket_id, ticket_type, service_id, priority, opened_at, resolved_at, and the tool’s own sla_due_at or breach flag.
  • A services dimension mapping desk categories and request forms to catalog services, with each service’s SLA target.
  • A problems table: problem_id, service_id, opened_at, closed_at, status, plus a link table to related incidents.
  • A changes table: change_id, service_id, change_type, window_start, risk, status.
  • A csat_responses table: ticket_id, score, submitted_at — kept separate from tickets so response rate is computable.

How do you build it?

  1. Sync tickets, problems, changes, and CSAT responses from your service desk into the warehouse, keeping the desk’s SLA fields — recomputing SLA math from raw timestamps loses pause states and business hours.
  2. Build the service mapping once: a Metabase model that joins tickets to the services dimension, so every card slices by the same catalog names.
  3. Create the attainment cards from resolved tickets in the window — the gauge from the overall share within SLA, the row chart from the same measure grouped by service against each service’s own target.
  4. Add the problem cards: opened vs. closed per month for the trend, and a table of open records with age and linked-incident counts sorted oldest first.
  5. Add filters for service, ticket type, and date range, then subscribe the service owners to a weekly digest of their filtered view.

Example card SQL

SLA attainment and CSAT by service, past 30 days PostgreSQL
SELECT
s.service_name,
COUNT(*)                                          AS tickets_closed,
COUNT(*) FILTER (
  WHERE t.resolved_at <= t.sla_due_at
)                                                 AS within_sla,
ROUND(
  100.0 * COUNT(*) FILTER (WHERE t.resolved_at <= t.sla_due_at)
        / COUNT(*), 1
)                                                 AS sla_attainment_pct,
ROUND(AVG(c.score) FILTER (WHERE c.score IS NOT NULL), 2)
                                                  AS avg_csat
FROM tickets t
JOIN services s   ON s.service_id = t.service_id
LEFT JOIN csat_responses c ON c.ticket_id = t.ticket_id
WHERE t.resolved_at >= CURRENT_DATE - 30
AND t.ticket_type IN ('incident', 'service_request')
GROUP BY 1
ORDER BY sla_attainment_pct ASC;

Metrics

Integrations

Dashboards

FAQ

How is an ITSM dashboard different from an IT operations dashboard?
An ITSM dashboard governs the practice; an IT operations dashboard runs the day. This view slices everything by catalog service — SLA attainment per service, request vs. incident mix, problem records, the change calendar — and its cadence is the weekly or monthly service review. The operations view is the same underlying data at daily grain: what broke today, current MTTR, who got paged. Build both from one warehouse so "incident count" means the same thing in the morning stand-up and the monthly review.
How does this differ from an IT support dashboard?
Scope. An IT support dashboard covers the help desk — ticket inflow by channel, first-response time, backlog aging, agent workload. That is one process (request fulfillment and incident intake) seen from the team that staffs it. The ITSM dashboard covers the whole practice: the same tickets, plus problem management, change enablement, and per-service SLAs, seen from the service owner's chair. If your question is "is the help desk keeping up?", build the support view; if it is "which services are meeting their commitments?", build this one.
How do I calculate SLA attainment correctly?
Decide what pauses the clock before you write any SQL. Most service desks stop the SLA timer while a ticket sits in "pending customer" or "awaiting vendor," and most SLAs run on business hours, not wall-clock time — so compute attainment from the tool's own sla_due_at or breach flag rather than re-deriving it from timestamps. Then report attainment per service and per priority, not one blended number: a 95% overall figure can hide an SLA breach rate three times higher on P1s, which is exactly what the service review needs to see.
What is a problem record, and how do I show problem management is working?
A problem is the underlying cause; incidents are its symptoms. The linkage is many-to-one — twenty printer incidents, one driver problem — so the dashboard should count both open problems and the incidents linked to them. Problem management is working when closing a problem visibly bends an incident trend: chart incidents linked to a problem before and after its resolution date. The failure mode worth watching is a problem backlog that only grows — records get opened in the post-incident review and never worked. A table of open problems with age and linked-incident count makes that impossible to ignore.
How should I read CSAT on closed tickets?
As a trend with a response-rate caveat, not an absolute score. CSAT surveys on closed tickets typically get 15–30% response rates, skewed toward the very happy and the very annoyed — so the level is biased but the direction is still informative. Chart it monthly next to the response rate, and break it out by service: a dip that tracks one service's SLA slide (as in the example above) is signal, not noise. Keep the survey to one question at close; longer surveys depress response rates and add little.
How do I get service desk data into Metabase?
Sync your desk's tables into a warehouse and point Metabase at that. Jira Service Management, Zendesk, and Freshdesk all expose tickets, SLA policies, and satisfaction ratings through APIs with well-supported ETL connectors. The one modeling task that matters is mapping tickets to your service catalog: desks record a form or category, and you want a services dimension that rolls those up to the catalog entries your SLAs are written against. Do that mapping once in a shared model, not per card.
Should every service have the same SLA target?
No — and the dashboard is where differentiated targets become manageable. Tier the catalog: identity and network outages block everyone and warrant a tight incident SLA; a laptop refresh request does not. Store the target per service and priority in a small reference table, join it into the attainment model, and chart attainment against each service's own target rather than a global 95%. That keeps one struggling service from hiding inside a blended average, and it turns the monthly review conversation from "the number slipped" into "Endpoint management is missing its specific commitment."