Skip to content

Support operations

Support has two sides in the back office: handling the conversations players start, and managing the staff who handle them. Both live under the /support area of the admin panel.

Conversations

The conversations view is the team's inbox. It filters by open, closed, or all, and each entry shows who it's assigned to, a preview of the latest message, and how long it's been waiting. Two numbers sit at the top: the pooled count (open tickets nobody has picked up) and how many staff are online. The list polls every half-minute so it stays current without a refresh.

Opening a conversation is a full chat view. An agent replies inline, changes the status between open and closed, sets a priority, and assigns the ticket to a staff member. Admin replies are sent through the Hono API (admin BFF proxies to /support/conversations/:id/messages) so the same SSE broadcast and activity logging run as in the support staff app; the player's chat widget receives updates on the conversation stream.

Viewing conversations needs support.view; replying, assigning, and changing status need support.manage.

Staff

Support staff are their own kind of account, distinct from admins. They come in two roles — agent and manager — and the staff area is where they're created and managed. You can filter by role and status, see a summary of how many are active, set each person's maximum concurrent tickets, and track who's online.

An activity view goes deeper into performance: per-person metrics like response times and tickets handled, aggregate stats, and alerts for tickets that have been slow to get a response, over a time range you choose. Managing staff needs support.staff.manage; viewing them needs support.staff.view.

A note on routing

When a player opens a ticket it either auto-assigns to an available agent or drops into the shared pool. The pool plus the online count on the conversations view are what let a manager see, at a glance, whether the team is keeping up with demand.