Dashboards

Dashboards

Save answers as cards, refresh them on a schedule, and get pinged when a number crosses a line.

A dashboard turns a one-off answer into something that keeps being true. Cards are saved from a conversation and belong to a database, so a dashboard always reads from one connection.

Card types

TypeMade from
ChartAny chart the agent produced
TableA tabular result
KPIA single-value result, or a number stated in prose
TextMarkdown you write yourself

Cards have widths, so a dashboard lays out as a real grid rather than a stack.

Refresh

Saving a card also generates a refresh script: the query that reproduces it. From then on the card can refresh on an interval, from manual up to hourly.

Every card carries a "data as of" timestamp, so a stale number is visibly stale rather than quietly wrong.

Interactive controls

When a card is generated the agent may propose controls: a time range, or a select over a dimension. You choose which to keep. Control values are validated on every refresh, so a control cannot be used to smuggle in a different query.

Threshold alerts

Chart, table, and KPI cards can carry alerts:

Ping me when weekly churn goes above 5%

Alerts are edge-triggered (they fire on the crossing, not on every refresh while the condition holds), and deliver to Slack.

Card health

Refreshes fail: a schema changed, credentials rotated, a source went away. Failures are tracked per card, surfaced as a banner on the dashboard, and notified rather than left for someone to notice.

Sharing

A dashboard can be published as a live read-only link. The public projection strips connection details, so a shared dashboard exposes the numbers and nothing about how they were fetched. Links are revocable.

On this page