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