Prove the AI
is working.

Assemble Analytics is how we see what Aria actually does in the field — adoption, quality, cost and sentiment across chat, social signals and the PowerPoint add-in, read live from PostHog.

Internal A.Team tool · sign in with your @a.team Google account

ChatSocial trendsPPT add-in
7d30d90d

Turns completed

12,480

+18.2%

p95 latency

4.1s

−12.4%

Error rate

0.42%

−0.31pp

Satisfaction

92%

+4.1pp

Turn volume

vs. previous 30d

Jun 12Jun 19Jun 26Jul 3Jul 10

Cost by feature

  • data_query$1,842
  • agent_chat$1,309
  • query_artifacts$921
  • summarize_deck$533
  • other$242

Verbatim

“It pulled the right brand comparison first try — this used to be a two-day ask.”
RKInsights lead · 4d ago

Instrumented across every surface Aria runs on

  • Web appAria chat
  • Microsoft TeamsMicrosoft TeamsBot turns
  • Microsoft PowerPointPowerPointAdd-in inserts
  • Microsoft 365Microsoft 365Copilot agent
  • PostHogPostHogEvent pipeline
What it tracks

One dashboard for the whole signal

Every view is a live HogQL query against our own PostHog projects — no exports, no spreadsheets, no second copy of the data.

Chat

Volume, latency, error rate and satisfaction for Aria conversations — each tile carrying its own period-over-period delta, so a regression is visible before anyone reports it.

Adoption

68%

p95

4.1s

Errors

0.4%

Social trends

Which generated opportunities got followed and which got rejected, scored against the relevance the model predicted.

36% followed64% rejected

PPT add-in

Adoption of the add-in by what people actually do with it: chart inserts, bulk slides and the report templates they run.

  • chart_inserted
  • slide_bulk_insert
  • exec_summary

Quality

Graded conversations, churn signals and topic trends — the sentiment and themes behind the counters.

  • Saved me a whole afternoon of pivot tables.

  • It lost the thread when I switched brands.

Customers

Who is active, what they touched and when they were last seen, filtered to real end users rather than internal traffic.

  • RKInsights lead142 actions · 2h ago
  • MBBrand manager98 actions · 1d ago

Reflect

The weekly written read: what moved, why it probably moved, and what to look at next.

“Teams turns grew 18% this week, driven almost entirely by two Unilever brand teams adopting the add-in.”

How it works

Three steps from event to answer

No warehouse to stand up and no second copy of the data — the dashboard reads the PostHog projects we already collect into.

  1. 01Instrument

    Aria emits typed events from every surface it runs on — the web app, the Teams bot, the Office add-ins. Nothing extra to install.

  2. 02Query

    A protected oRPC procedure fans out a batch of HogQL queries against the PostHog project and maps the rows into one typed object. The PostHog key is read server-side and never reaches the browser.

  3. 03Render

    The client calls that procedure through the typed oRPC + TanStack Query client, so the panel's types follow the handler's return value automatically.

routers/analytics.ts · chat9 parallel queries
SELECT toStartOfDay(timestamp) AS day,
       count() AS turns
FROM events
WHERE event = 'ask_chat.turn_completed'
  AND timestamp > now() - INTERVAL 30 DAY
GROUP BY day ORDER BY day DESC
dayturns
2026-07-081,041
2026-07-07972
2026-07-06918

Runs server-side in a protectedProcedure

Dashboard views
9

Chat, Social trends, PPT add-in, Quality, Reflect, Customers and more.

PostHog projects
2

Chat and social on one project, the PowerPoint add-in on its own.

Keys in the browser
0

The PostHog key is read server-side and never bundled to the client.

Way in
1

Google sign-in, restricted to a.team accounts, sessions in Neon.

Governance

Built to survive a security review

This dashboard sits on top of real customer conversations, so access is enforced in code rather than promised in a doc.

  • Credentials stay server-side

    The PostHog key is typed server env, read only inside oRPC handlers. Nothing analytics-related is bundled into client JavaScript.

  • Authenticated end to end

    Every analytics call is a protectedProcedure, and /dashboard checks the session before it renders. There is no anonymous read path.

  • a.team accounts only

    Sign-in is Google, restricted to a.team accounts. Everyone else bounces back to the login screen with an explanation.

  • Excerpts stay out of the API

    The agent API never returns conversation excerpts from list endpoints, and raw transcripts are not reachable from it at all.

Get started

The events already know the answer. Go read them.

Sign in with your a.team Google account and the current week is waiting — no setup, no access request.