Introducing real-time analytics

Dashboard numbers update live as conversations come in, plus a stats leaderboard and a reorganized settings sidebar.

Published v0.0.40
Summarize with

The dashboard is now live. Analytics broadcasts over the organization's inbox channel, so every card (open conversations, resolutions, response times, leaderboard) updates the moment the underlying data changes. No refresh needed.

A new stats leaderboard endpoint ranks teammates by resolutions, response speed, and active conversations over a chosen window. It feeds a teammate-ranked view on the dashboard and is available as a standalone API for anyone building their own reports.

Settings sidebar was reorganized: Knowledge Store is promoted to a top-level item, Teammates and Pinned sections load asynchronously so the sidebar renders instantly, and typography was tightened to match the inbox sidebar.

Billing got a polish pass: pricing lays out cleanly, upgrades flow through a multi-step dialog, and crossing a plan boundary triggers a short celebration moment.

Also in this update

  • End-of-list quick nav from All inbox jumps straight to Resolved and Closed when you hit the bottom
  • Inbox count badges cap at 99+ for tighter layout
  • Conversation list scroll position is now preserved when you select a conversation
  • Conversation broadcasts split into user and team channels so private conversations don't leak into team feeds
  • Sentry upgraded to v12 with BetterStack error logging wired in
  • Slack integration exposes a V2 GET endpoint for fetching channel configuration