Skip to main content

Dashboard insights and reports

DashQ dashboards can generate an evidence-backed insight brief and a PDF report for the active governed scope. These capabilities run inside the protected dashboard session; they are not general-purpose public chat or reporting APIs.

Insights runtime

The dashboard uses:

POST /embed/dashboard/insights

The serving API also maps POST /api/dashboard-insights to the same protected handler for controlled integrations. Both require valid embed authentication through the signed session, embed header, or secure session cookie.

Request scope may include:

  • accountId (must match the signed session when present)
  • dashboardId
  • startDate and endDate
  • buildingIds and buildingPropertyIds
  • representativeIds
  • unitType
  • stage
  • source
  • leaseAttributionMode

Filter values can be top-level fields or members of filters. Runtime authorization resolves them against the signed account/user context and governed property options before metrics are loaded.

Response

{
"summary": "Concise scope-aware result",
"positive": ["Evidence-backed positive movement"],
"negative": ["Evidence-backed risk or decline"],
"generatedAt": "2026-01-31T12:00:00.000Z",
"meta": {
"dashboardId": "portfolio_foundation_v1",
"dashboardTitle": "Portfolio Performance",
"targetView": "executive",
"provider": "configured-provider",
"highlightCount": 2,
"coverageWarnings": []
}
}

DashQ computes a trusted metric brief before calling the configured language provider. The model receives governed facts and produces structured phrasing; it does not select the account, properties, or arbitrary warehouse queries. An explicit no-property selection returns a no-data summary instead of falling back to the whole account.

PDF reports

The embed uses:

GET /embed/dashboard/report

The report inherits dashboard, account, user, date, and filter scope from the embed session. It supports a complete dashboard suite by default or a controlled single-dashboard/widget subset through dashboardId, suite, and widgetIds.

Report generation is backend-rendered and can take longer than interactive widget requests. The response is a PDF with a date-scoped filename.

Host integration

Most hosts should call POST /api/embed-url, render the returned URL, and allow the DashQ runtime to manage insights and reports. Do not copy signed values into a separate API request, persist the report URL, or reconstruct runtime authentication.

See Embedded experiences, the runtime API reference, and Security.