Where the console lives
In the dashboard sidebar, open Voice → Wallboard. The page renders at a fixed set of surfaces:- The header — connection status pill (Live / Disconnected), a live wall clock, a last-updated timestamp, the abandoned-callbacks tile, a manual refresh button, and the fullscreen toggle.
- A five-tile KPI grid — calls waiting, average wait, service level, agents available, and longest wait — each flipped green / amber / red by threshold, with a distinct status icon per state.
- A per-queue breakdown table — waiting, average wait, longest, and agents available/total for every queue.
- Alarm rules — the supervisor-editable threshold alarms on wallboard metrics.
- Agent grid, omnichannel capacity, live sentiment, supervisor coach, and leaderboard panels — the detail panes that follow the KPI grid down the page.
What each KPI tile reads
The Agents Available numerator and denominator come from the distinct agent-count feed rather than summing per-queue availability — an agent skilled for three queues still counts once. On an empty floor (no queues yet) the page shows a “no queues configured” empty state pointing at Voice → Queues, and Service Level reads 100% rather than flashing red.
Provisioning access and what each role sees
The console is guarded per role:- Owner / admin / supervisor — the full view as mounted on a TV: KPI grid, per-agent grid, alarm-rule editing, SLA and quality banners, plus (owner/admin only) the Push announcement composer in the header that broadcasts a short text to every logged-in agent in a queue.
- Developer / viewer / billing — the read-only wallboard without the override actions. The server enforces the bound; the hidden buttons are only the UI affordance.
- Agent — a restricted view on the leaderboard (own row only); supervisor feeds fail closed rather than leak other agents’ figures.
Choosing queues and widgets for a standup screen
Which queues appear is decided upstream: the console aggregates every queue in Voice → Queues. Retire or rename queues there to shape what the standup screen shows — there is no on-page queue filter to hide a queue from the tiles. The Longest Wait tile names the worst-offending queue underneath its value, so a supervisor reads the queue to staff without scanning the table. Which widgets are visible is where-tuned:- Collapse panels off-screen. The KPI grid is the anchor; the stacked panels below it (agent grid, omnichannel capacity, live sentiment, supervisor coach, leaderboard) render when you scroll. A TV stays on the KPI grid.
- Alarm rules panel. Wire only the thresholds the floor pages on; delete or mute the rest so the panel stays short.
- Abandoned-callbacks tile in the header shows the rescue-callback queue; the Push announcement trigger (owner/admin) opens the broadcast composer.
Alarm rules on the console
The Alarm rules panel on this page is the in-dashboard editor for the same rules the alarm-rules guide describes over the API: metric, comparator, threshold, optional queue scope (or tenant-wide), duration, channel (sse, sse+notification, webhook, email), and enabled. A breach banner here is a visual state; an alarm rule is the escalation on top of it. Keep rules aligned with what the SLA policy allows — a rule that pages faster than the floor can staff is noise. The full rule vocabulary and worked API examples live in Wallboard alarm rules.
SLA breach and call-quality banners
Two live banner streams layer on top of the tiles:- SLA breach early warnings — one banner per at-risk queue when the scheduler sees the predicted wait approach the queue’s SLA target. Each carries predicted wait vs target, waiting callers, free agents, and an Add agents to queue deep-link to the queue membership page. A banner self-dismisses once the breach drains; while the condition persists the scheduler re-fires it so it stays up.
- Live call-quality alerts — one dismissible badge per degraded call (MOS, packet loss, or jitter over threshold) with a View quality deep-link to the voice-quality dashboard. At most six badges stack at once; each expires after a minute.
Hardening the display for TV mode
For an always-on standup screen:- Dedicated profile. Run the display browser in a dedicated profile signed into the supervisor-level account so casual browsing never touches the tab.
- Fullscreen. Press
Fto strip browser chrome; pressFagain orEscto leave. The fullscreen button in the header does the same. - Keyboard control.
Spacepauses/resumes the tile auto-rotation,Rforces a refresh, arrow keys step tile pages. Keystrokes inside any text input are ignored, so an operator typing nearby cannot disturb the board. - Connection visibility. The header pill flips to Disconnected on a lost feed and a banner with retry appears; last-known values stay on screen rather than blanking.
- Idle-cycle. A 24/7 display benefits from a daily browser restart and a periodic cache clear — schedule both in display management, not in the app.
Renewal cycle and HTTPS tuple rotation
Two operational renewals apply to a mounted display:- Session renewal. The dashboard session a mounted display runs on rotates on the platform’s normal schedule. When a display signs out, sign the dedicated profile back in — keep the supervisor-level credentials in the same place as the display’s other secrets. The pause state survives a browser refresh but not a profile reset, so a profile that discards storage loses paused/expanded state on every restart.
- HTTPS tuple rotation. The dashboard and the event stream are served over TLS; certificate rotation on
orbit.devotel.iois platform-managed and needs no action on the display. What interrupts a TV is a local TLS-inspecting proxy or a captive network appliance with its own certificate: when that appliance rotates its certificate chain, the display needs the new root before the event stream reconnects. After any local network appliance cert rotation, reload the display profile and confirm the header pill reads Live.
Troubleshooting
- The Service Level tile reads 100% on an idle floor. That is the design — no queues with waiting callers means nothing is outside coverage; the tile is intentionally quiet until there is work to miss.
- A tile shows a blank or missing count. The per-queue row was unparseable in the current refresh and was dropped rather than mis-aggregated; it recovers on the next tick. A persistent drop means the feed for that queue needs attention.
- The disconnected pill stays on. The event channel fell back to polling; if a reload does not restore Live, check the network path to
orbit.devotel.ioand any local TLS-inspecting appliance. - Push announcement is missing. The signed-in role is not owner or admin; the composer is hidden for other roles and the server refuses the call anyway.
See also
- Wallboard: supervisor real-time tiles — the supervisor board concepts and the API feeds behind these tiles
- Set up the omnichannel wallboard on a TV display — the cross-channel board and its kiosk setup
- Wallboard alarm rules — the full rule vocabulary, evaluation cadence, and API
- On-call alerting — the on-call warning feed the SLA banners ride on
- Wallboards and SLA telemetry — the metric families and SLA policy model behind the console