Reports catalogue: the ad hoc grid and the scheduled inbox
Two tiles on the Insights hub both read “Reports” in some form. They answer different questions:- Reports (
/insights/reports) — the ad hoc card grid. Generate a one-off report in the page, download it as CSV or PDF, and come back for the saved history later. - Scheduled Reports (
/insights/scheduled-reports) — the recurring-report inbox. One row per schedule: name, cadence, recipients, and the next 09:00 tick, with create, edit, delete, and send-now from the row actions.
The ad hoc grid: Insights → Reports
The Reports tile opens a five-card grid above two SLA sections. Pick a window with the 7d / 30d / 90d / 12m switcher first — every card honors it, so the figures match the same window’s analytics KPIs. Click a card to generate the report in the page viewer; download with CSV or PDF from the viewer toolbar. The five cards, with what to actually read in each:
Below the grid, two SLA sections share the page:
- SLA attestation — pick a recent complete calendar month and read the delivery-SLA attestation, downloadable as CSV or PDF.
- Queue SLA — per-queue service-level figures over a reporting window, with a paginated breach ledger, also downloadable.
The scheduled inbox: Insights → Scheduled Reports
The Scheduled Reports tile opens the recurring-report list. Each row shows the name, type, and cadence; a Next send column presents the upcoming tick — always the next 09:00 cadence anchor in the report’s timezone, never the moment of a send-now claim, which is transient. Row actions give you the full lifecycle from the dashboard:- Create — open the dialog, set name, report type (messaging volume, deliverability, top contacts, spend, or a saved custom query), a daily/weekly/monthly cadence, up to 50 recipient emails, and an optional IANA timezone the 09:00 tick anchors to.
- Edit — same dialog pre-filled. Recipient edits replace the list wholesale; frequency edits re-anchor the next tick from the last send.
- Send now — marks the report due; the scheduler delivers it on its next tick. The row keeps showing the upcoming 09:00 tick rather than “a few minutes from now” — watch the Last sent column to confirm the delivery actually fired.
- Delete — stops future sends permanently. To pause without losing recipients, edit and disable the report instead.
GET | POST | PATCH | DELETE /api/v1/analytics/scheduled-reports surface, plus
the POST /send-now trigger. Scripting the same operations through the API is
covered in the scheduled reports guide.
Role gates
Reads are open to every member — anyone with dashboard access can open both tiles and view the list. Writes on the scheduled-reports tile (create, edit, delete, send-now) are restricted to owner and admin, because a scheduled report emails recipient-level metrics to an arbitrary address list — that’s a data-egress path, so the API returns a403 for other roles and the UI hides or blocks the actions accordingly. The ad hoc grid runs under the reader’s own session, so it stays usable by every member.
Common misreads
- Tenant totals vs per-campaign sums. The Cost Analysis card totals per channel across the whole workspace; the Campaign ROI card breaks spend down per campaign. Summing the ROI card’s rows won’t reproduce the Cost Analysis totals — the ROI card is capped at the 100 most recent campaigns and attributes revenue directly, while cost totals carry every send regardless of campaign attribution.
- “The report reopened from history shows no rows.” By design — only metadata is persisted, never row data. Click Re-run report on the empty state to load fresh figures, then download. Anything older than 24 hours is flagged Stale in the history table for the same reason.
- “The scheduled list lost my oldest report.” History keeps the 50 most recent entries; the oldest drop off as new reports generate. Schedule-based rows (the inbox tile) aren’t subject to this — only the ad hoc history table is.
- “Next send says in a few minutes, then jumps to tomorrow.” You read the transient send-now claim before the scheduler’s tick overwrote it. The column always settles on the real upcoming 09:00 anchor; give it a scheduler tick to resolve.
See also
- Scheduled reports — cadence math, recipient rules, send-now semantics, and the API surface end to end
- Monthly SLA availability report — the SLA attestation the Reports grid’s SLA section produces
- Insights hub orientation — the tile map this catalogue is part of