Dashboard Analytics
Status
Section titled “Status”Future canonical contract.
This document defines the target aggregate contract for replacing the Dashboard customer-signals concept preview with real analytics.
Purpose
Section titled “Purpose”Provide a workspace-scoped aggregate that powers the Account Dashboard’s future analytics layer without forcing the client to reconstruct signal, triage, and outcome metrics from raw event streams.
The contract is designed to support:
- dashboard summary cards
- top friction theme modules
- recent operational activity
- recommendation generation
- progressive rollout from readiness-only surfaces to signal and outcome metrics
Scope rules
Section titled “Scope rules”- The aggregate must be scoped to a single workspace unless an explicit org-wide contract is later approved.
- The response must never leak data across workspace or org boundaries.
- The aggregate may mix live operational counts with derived analytics, but every field must be clearly defined by source and interpretation.
- Fields that are not yet available may be omitted or returned as
null, but the contract must distinguish unavailable data from zero values.
Endpoint
Section titled “Endpoint”GET /workspaces/{workspaceId}/dashboard
Query parameters (future, optional):
range— dashboard time range such as24h,7d,30dinclude— optional payload groups to include when partial loading is neededasOf— optional snapshot timestamp for reproducible views
Response shape
Section titled “Response shape”{ "workspaceId": "ws_123", "generatedAt": "2026-03-23T12:00:00.000Z", "range": "7d", "readinessSummary": {}, "customerSignalSummary": {}, "systemSummary": {}, "outcomeSummary": {}, "topFrictionThemes": [], "recentActivity": [], "recommendedActions": [], "availability": {}}Payload groups
Section titled “Payload groups”readinessSummary
Section titled “readinessSummary”Operational setup and coverage state.
Expected fields:
workspaceReadinesschannelsknowledgeBasesagents
This group remains the source for the current readiness layer already present on the dashboard.
customerSignalSummary
Section titled “customerSignalSummary”What users are expressing across comments, reviews, and conversations.
Minimum future fields:
dissatisfactionDetectedsevereNegativeDetectedsuccessSignalsDetectedtopSignalThemes
Optional later fields:
inboundVolumenegativeSignalRateunresolvedFollowUpCount
systemSummary
Section titled “systemSummary”How the platform classified, routed, and responded.
Minimum future fields:
escalationsTriggeredkbGapsDetectedautoHandledCounthumanAssistedCounttriageCompletedCount
Optional later fields:
avgResponseTimeMsreplyGeneratedCountreplySentCountconfidenceDistribution
outcomeSummary
Section titled “outcomeSummary”What happened after the workflow ran.
These fields must remain optional until outcome attribution is formally approved.
Fields:
resolvedCountrecoveredCountreopenedCountsuccessfulHandoffCountsentimentImprovementRate
topFrictionThemes
Section titled “topFrictionThemes”Ranked cluster output for recurring negative or high-friction topics.
[ { "id": "refund_expectations", "label": "Refund expectations", "count": 8, "severity": "high", "kbGapCount": 3, "sampleChannels": ["reviews", "web-chat"] }]Required fields:
idlabelcountseverity
Optional fields:
kbGapCountsampleChannelstrendDirection
recentActivity
Section titled “recentActivity”Lightweight dashboard-ready operational events.
This is not the raw event stream. It is a curated recent-activity feed suitable for the dashboard.
[ { "id": "evt_123", "type": "escalation_triggered", "title": "Escalation triggered", "description": "High-risk complaint routed to human review.", "timestamp": "2026-03-23T11:52:00.000Z" }]recommendedActions
Section titled “recommendedActions”Curated next actions derived from readiness, signal, system, and outcome data.
[ { "id": "kb_gap_refunds", "title": "Close the refund policy knowledge gap", "description": "Refund-related complaints are rising and grounding quality is weak.", "priority": "high", "targetHref": "/account/knowledge-bases" }]availability
Section titled “availability”Per-group data readiness.
{ "readinessSummary": "available", "customerSignalSummary": "available", "systemSummary": "available", "outcomeSummary": "unavailable"}Allowed values:
availablepartialunavailabledemo
This lets the UI distinguish:
- true zero values
- unavailable data
- temporary concept/demo values
Field availability rules
Section titled “Field availability rules”readinessSummaryshould be available first.customerSignalSummaryandsystemSummaryare the first analytics groups to graduate from concept preview to live data.outcomeSummarymust not be treated as trustworthy until attribution and recovery logic are explicitly defined in canonical docs.
Security and privacy constraints
Section titled “Security and privacy constraints”- No message content may be returned in this aggregate.
- No PII may appear in dashboard analytics payloads.
- Payloads must use internal identifiers and safe summary fields only.
- Any sampled text or examples require a separate approved contract.