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.
How it updates
Section titled “How it updates”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.
What it shows
Section titled “What it shows”KPI gauges (account-wide, color-coded by threshold):
| Gauge | Source |
|---|---|
| Occupancy % | mean agent occupancy |
| Service level % | service level, weighted by offered |
| ASA | average speed of answer, weighted by offered |
| AHT | average 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.
Access
Section titled “Access”/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).
REST snapshot endpoints
Section titled “REST snapshot endpoints”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:
| Endpoint | Returns |
|---|---|
GET /v1/live/queues | Per-queue health: waiting count, longest wait, SLA-at-risk flag, active alerts. |
GET /v1/live/agents | Per-agent time-in-current-state and, if paused, the pause reason. |
GET /v1/live/interactions | A feed of in-progress interactions (calls in queue or in-flight). |
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.