Skip to content
SIP.IO
DocsStart free

Live Supervisor Wallboard

The wallboard is a real-time, big-screen view of the contact center for supervisors: rolling KPI gauges, a tile per queue, and a live grid of every agent. It pairs the durable reporting metrics with the PresenceEngine’s live state so the numbers move the instant something happens.

The wallboard runs on the realtime service (realtime.sip.io). Two complementary feeds drive it:

  • /wallboard/ws: a WebSocket carrying the live snapshot, pushed on every agent/queue state change. This drives the queue tiles and agent grid in real time.
  • /wallboard/data: the rolling KPIs plus the current snapshot, polled every 15 seconds to refresh the gauges.

/wallboard itself serves the rendered HTML page that connects to both.

KPI gauges (account-wide, color-coded by threshold):

GaugeSource
Occupancy %mean agent occupancy
Service level %service level, weighted by offered
ASAaverage speed of answer, weighted by offered
AHTaverage handle time, weighted by answered
Abandon %abandon rate, weighted by offered

Queue tiles: one per queue, from the live snapshot, showing waiting callers, longest current wait, plus the queue’s service level and abandon rate. A tile turns red when the longest wait exceeds 120s or service level drops below 60%.

Agent grid: one cell per agent showing their live status bucket (ready, incall, ring, wrapup, paused, idle, extcall, offline, unreachable), color-coded, with a wrap-up countdown when an agent is in wrap. A legend tallies how many agents are in each bucket.

Because the grid and tiles are fed by the same delta stream as every other live consumer, they reflect reality with no polling lag.

/wallboard/data uses the standard API auth with the wallboard scope. Browsers can’t set headers on a WebSocket handshake, so the socket is authed with a short-lived single-use ticket: a scoped POST /wallboard/ticket mints a ticket, and the client connects to /wallboard/ws?ticket=… (the ticket is burned on use).

The WebSocket feed above is the recommended way to drive a live screen, but not every consumer wants a persistent socket. Three read-only REST endpoints under the reports scope give the same live picture as a point-in-time snapshot, polled on demand instead of pushed:

EndpointReturns
GET /v1/live/queuesPer-queue health: waiting count, longest wait, SLA-at-risk flag, active alerts.
GET /v1/live/agentsPer-agent time-in-current-state and, if paused, the pause reason.
GET /v1/live/interactionsA feed of in-progress interactions (calls in queue or in-flight).
Terminal window
curl 'https://api.sip.io/v1/live/queues' -H 'x-api-key: sk_…'
{
"queues": [
{ "queue": "q_support", "waiting": 3, "longestWaitMs": 42000, "slaAtRisk": true, "alerts": ["longest_wait"] }
]
}

These are additive alongside /wallboard/ws and /wallboard/data, not a replacement: use the WebSocket feed for a live-rendered screen, and the /v1/live/* endpoints when you want a snapshot on your own polling cadence (e.g. embedding a queue-health widget in another app) without holding a socket open. For rollup history beyond the current live state, see Queue Metrics & CDR and Agent KPIs.