Dashboards
Create custom dashboards with a drag-and-drop grid of insight and markdown tiles. Pin the metrics your team checks daily and add context with notes.
Path: /p/:projectId/dashboards
Creating a dashboard
- Go to Dashboards in the sidebar.
- Click New dashboard.
- Choose a template (Overview-style KPIs, funnel-focused, blank) or start blank.
- Click Add tile to open the tile picker.
- Drag tiles to rearrange; resize by dragging corners.
- Click Save — changes are visible to all project members immediately.
Tile types
| Type | Description | Use case |
|---|---|---|
| Insight | Chart or KPI bound to an insight query spec | Metrics, funnels, retention, breakdowns |
| Markdown | Free-form text, links, or notes | Runbooks, release notes, chart annotations |
Insight tiles
Insight tiles are live — they query ClickHouse on load and refresh when you change the time range. Configure three tabs:
Data tab
- Events, filters, aggregation, breakdown
- Time range override (inherit global or set per-tile)
- Conversion window (funnels)
Display tab
- Chart type: line, area, bar, funnel, retention, table, KPI
- Colors and legend position
Format tab
- Number formatting (currency, percentage, compact)
- Thresholds (green/yellow/red zones for KPIs)
Markdown tiles
Use markdown tiles for context that numbers alone don’t capture:
## Q2 Launch Dashboard
Tracking signup funnel and revenue for the April 15 release.
[Launch checklist →](https://notion.so/...)
**Owner:** @growth-teamMarkdown tiles support headings, links, bold/italic, and lists.
Example dashboard layouts
Growth team daily standup
| Tile | Query |
|---|---|
| KPI: DAU | page_view unique users, last 7 days |
| KPI: Signups | signup count, last 7 days |
| Funnel | signup_started → signup_completed |
| Markdown | Weekly goals and notes |
E-commerce monitoring
| Tile | Query |
|---|---|
| KPI: Revenue | purchase sum of revenue, last 30 days |
| Funnel | product_viewed → add_to_cart → purchase |
| Breakdown | purchase by $geo.country |
| Line | Daily purchase count |
See E-commerce tracking for event setup.
Managing dashboards
From the dashboard list view:
- Duplicate — copy a dashboard as a starting point for a new view
- Rename — update the dashboard title
- Delete — remove permanently (tiles are not recoverable)
Tile mutation model
Dashboard tiles use a full-reconcile upsert — the API replaces the entire tile list on each save. There are no individual tile create/update/delete RPCs.
When using the Dashboards API, send the complete desired tile array:
{
"dashboard_id": "dash-123",
"tiles": [
{ "type": "insight", "query_spec": { "...": "..." }, "position": { "x": 0, "y": 0, "w": 6, "h": 4 } },
{ "type": "markdown", "content": "# Notes", "position": { "x": 6, "y": 0, "w": 6, "h": 2 } }
]
}The saved dashboard is always the source of truth.
Tips
- Start in Insights — prototype queries in Insights, then pin to a dashboard once the chart looks right.
- Use time range overrides sparingly — per-tile overrides confuse readers; prefer a global dashboard time range with consistent tiles.
- One dashboard per audience — executives get KPIs; engineers get detailed breakdowns; don’t mix both on one board.
Further reading
- Insights — query builder
- Dashboards API — programmatic management
- Overview Page — default project home