Skip to content

Analytics chat catalogue and CallSight parity

Status: Current | Last reviewed: 2026-10-02

Analytics uses the shared component registry with a built-in, versioned analytics.v1 family. CallSight's composite cards were ported to React 19 and Recharts 3. AnalyticsRichChat hosts the same renderer in author Preview, Studio Analytics and the focused app; its response document interleaves prose with typed attachments and stable anchors.

This is a built-in catalogue, not a remotely published catalog-builder bundle. External catalogue publication and arbitrary component replacement remain future extensions. Keeping the initial family in Studio lets us preserve the original layout, interaction state and evidence authorization while using Studio branding.

See question/result parity and the executed validation. Rendering checks alone do not establish analytical correctness.

Recorded demo as the acceptance flow

The supplied callsight-demo-v2.mov is the visual reference for the complete journey, including the opening view before the first question. It is a 5-minute, 41-second screen recording with no audio track. Its SHA-256 is abcf0bf9613d7d596d5102ff5c92af984f88137f457c519aec4e390fd19835da. The recording stays outside the implementation commit.

The following checkpoints were inspected at ten-second intervals; times mark visible states, not exact interaction boundaries or latency measurements.

Recording time Observed state Acceptance requirement
00:00 Branded environment cards; the demo enters Delta Show an accessible agent library before entering an agent; retain direct links
00:10–00:20 Greeting, What matters most, hero KPI, Why selected, recommendation, two collapsed secondary findings; Performance at a glance on the right Render a prepared opening briefing with this two-column hierarchy
00:30–01:10 Break down policy confusion by hub; one activity line, then thesis, focus explanation, highlighted horizontal bar chart, recommendation and chips Transition into chat and preserve the relationship between the clicked finding and the result
01:20–02:00 Break down Atlanta policy calls; category ranking, short explanation, recommendation and follow-ups Carry the prior subject/filter into the next turn
02:10–03:00 How are we doing on AHT?; hero stat with comparison, explanation and separate hub chart Permit multiple ordered visual blocks with prose between them
03:10–03:30 Show me the latest weekly trend report; brief introduction and a composed trend card Give artifact retrieval its own response shape
03:40–04:50 Inline citation expands a contact picker; choosing a contact opens a right-side drawer with summary, classifications, outcome and speaker bubbles Keep evidence selection local, preserve the answer behind the drawer and support repeated drill-down
05:00–05:40 Trend detail expands into root causes, friction and escalation lists; a row opens another contact picker and transcript Keep nested expansion state and scroll position while opening and closing detail

The opening briefing uses a wider layout than the chat. Source BriefingCard.tsx uses a 1,152 px maximum width and a 300 px performance rail on wide screens; ChatStream.tsx uses a 768 px maximum width. In the recording, the briefing gives way to the chat on the first question. Do not leave the entire briefing and performance rail above every response. An explicit return to the briefing can reopen the saved snapshot without regenerating it.

The full warehouse imports operational facts and compiled artifacts as well as transcripts. Briefings read completed reports and use a server-computed operating strip. They do not substitute for the offline compiler hierarchy.

Ownership

Layer Responsibility
Analytics chat host User/assistant messages, width, spacing, scroll, composer, activity, streaming, history and detail-drawer navigation
Analytics catalogue Original chart, KPI, table, contact, executive-summary, trend, recommendation and briefing components
Response document Ordered prose and attachment references, citations, follow-ups, stable block IDs and initial presentation defaults
Analytics runtime Authorized results, artifact lookup, supported response selection, evidence and action validation
Agent experience profile Catalogue/version, landing view, briefing refresh, allowed components, branding, response depth and disclosure defaults

The built-in registry is in apps/ai-manager/components/analytics/catalogue/registry.tsx; message anchors render through renderA2UIComponent. Chart primitives use the host Recharts instance. The renderer does not load a second React instance. A future external bundle can reuse catalogue publication and the integrity-checked loader, while retaining the same typed response contract and private evidence actions.

Do not make catalogue use depend on the voice runtime or a new model tool call for every card. The Analytics runtime can construct validated component descriptors from an answer document and render them through the shared registry. Direct component rendering in Studio already has a precedent in PhoneMultimodalSurface.

CallSight defaults to preserve

Source baseline: trueserve-cciq revision 720c2a48c3d7599ec2d987cdff0283e5fea1d83b. Qualified source paths below are relative to its contact-center-iq/ directory; bare component filenames are under frontend/src/components/.

Behavior Observed CallSight default Source
Message layout Right-aligned user bubble; assistant identity and thesis; 768 px maximum chat column frontend/src/components/ChatStream.tsx, MessageBubble.tsx
Answer composition Prose and cards interleaved at explicit anchors; visuals selected for the question MessageBubble.tsx, backend/prompts/system.md, Rule 2
Ordinary answer length Aim below 100 prose words; diagnostic answers below 200; hard ceiling 250 backend/prompts/system.md, Rule 10
Artifact answer One plain framing sentence and the requested card; no duplicate surrounding summary backend/prompts/system.md, Rule 3
KPI presentation One hero stat or a strip of 2–4 relevant metrics StatTile.tsx, MetricStrip.tsx
Charts Nine chart variants plus table; shared base chart height 260 px; units, legends, tooltips and grounded highlights frontend/src/types.ts, frontend/src/components/charts/
Tables First 8 rows, then Show all / Show less; sorting applies to visible rows frontend/src/components/TableCard.tsx
Trend detail Summary and driver chart visible; root causes, friction and escalation details collapsed TrendCard.tsx
Other evidence and focus explanation Collapsed initially; citations open contextual pickers CitationChip.tsx, FramingNote.tsx, InlineCiteRefs.tsx
Activity One latest status during work; completed tool trail collapsed MessageBubble.tsx, ReasoningTrail.tsx
Follow-ups Usually 1–2 contextual chips, revealed after completion; direct contact opening bypasses another model turn FollowUpChips.tsx, backend/prompts/system.md, Rule 6d
Briefing Primary focus visible; up to two secondary items show a preview with detail collapsed BriefingCard.tsx, SecondaryItem.tsx
Evidence navigation Right-side drawer with contact/trend navigation stack and back breadcrumbs DetailDrawer.tsx

Chart variants are line, area, bar, horizontal bar, donut, composed, scatter, radial and treemap. Preserve supported highlight and empty-data behavior too. Compiled executive summaries have their own longer content, described in the original prompt as 250–500 words; the ordinary-answer budget must not truncate an explicitly requested artifact. Recommendations and framing count toward ordinary prose limits. Do not cut text mid-citation to satisfy a limit.

Retain meaningful scope, uncertainty and evidence access while moving release IDs and retrieval diagnostics into secondary detail. Keep the activity trail limited to tool status and execution provenance; do not expose hidden model reasoning. Preserve the drawer's available fields, but do not invent missing customer, operational or audio data to fill the original layout.

Response contract and interactions

AnalyticsAnswer.analysis carries catalogueVersion, snapshotId, ordered attachments, the tool activity trail and measured duration. Anchors determine where cards appear; invalid IDs are repaired within the configured budget or rejected. The model never receives database credentials. Direct evidence inspection rechecks the current audience and the session's data binding without another model call. Contact pickers fetch five rows initially and fetch the selected transcript only when opened; there is no eager transcript prefetch.

New chat reloads the current presentation binding. History restores its original snapshot, taxonomy and published presentation settings. Tenant switching clears the selected agent/session. Source transcripts retain original wording; a brand change does not rewrite evidence.

Briefing and configuration

analysis.briefing controls enablement, focus instructions and regeneration minutes (15–10,080). The worker durably caches a briefing by snapshot, agent configuration, cadence and prompt version, with leases and bounded retries. The primary focus is expanded; secondary findings and supporting detail start collapsed. The first question replaces the opening briefing with the chat.

The Analysis canvas exposes tool availability, pinned snapshot, iteration/tool budgets and briefing controls. Advanced validated JSON includes display labels, chart/comparison preferences, compact reports, answer review, diagnostic context relations, anomaly sensitivity and explicit scenario assumptions. These are independent of annotation models and report compilation settings.

Verification

e2e/analytics-parity.spec.ts tests all nine charts and table through the actual shared renderer, plus live report disclosure, citation picker, transcript drawer, history and New chat. Rendering fixtures are explicitly separate from live model comparisons. See validation for results and replay commands. The source video is a layout reference, not a latency benchmark.