Live monitoring for digital conversations
Quality scoring tells you how an agent handled a conversation after it ended. Live monitoring tells you what is happening right now — and a supervisor can step in while the customer is still waiting. On digital channels (web chat, SMS, WhatsApp, social, email) there are four actions:- Watch — silently follow the thread. Supervisors see the transcript live without the customer or the agent being told.
- Whisper — send a private coaching tip to the handling agent. The tip lands as an internal note in the agent’s open thread; the customer never sees it.
- Barge — take over the conversation. From this point on the supervisor’s replies are what the customer sees, and the thread is reassigned to the supervisor.
- Unwatch — stop a watch session (available to the supervisor who started it).
1. Where supervisors open a conversation
Supervisors access live monitoring from two places in the dashboard:- Inbox — open any live conversation from the inbox list. The thread rail shows the live transcript, and the Watch and Whisper actions are available in the action bar. A green “Watching” badge appears on the conversation card in the inbox list while a supervisor is watching, visible to other supervisors on the team.
- Wallboard — the team wallboard shows a per-agent live-state grid with active-conversation counts and channel mix. A conversation being watched by another supervisor carries a “Watching” badge on the wallboard tile, and a barged thread shows the supervisor’s name in place of the handling agent so the shift lead can see who took over.
2. What each party sees
Watching
The supervisor follows the transcript in real time, exactly as the agent sees it. The supervisor is invisible — no customer-visible marker, no notification to the agent, no change to the conversation itself. The only visible sign is the “Watching” badge on the wallboard, which is visible to other supervisors.Whisper
When a supervisor whispers a coaching tip:- Agent view — the tip lands as an internal note in the agent’s open thread, marked supervisor coaching with the supervisor’s identity and a timestamp. The note appears inline in the agent’s thread rail within seconds, delivered over the existing
note.internal.createdinbox WebSocket event. - Customer view — invisible. The coaching note is an internal note (
conversation_internal_notes) scoped to the assigned agent. It never appears in the customer’s transcript or outbound messages. - Supervisor view — the whisper response confirms delivery with a
whisper_note_idandwhisper_publishedboolean, so you can verify the tip landed before moving on.
Barge
A barged conversation changes visibly for all parties:- Customer view — the next reply comes from the supervisor’s identity rather than the original agent’s. The thread continues without interruption; the customer sees a different name on replies but no server-side disclosure announcement (unlike voice barge, where an audible disclosure plays).
- Agent view — the thread assigns to the supervisor and the agent’s open-thread view shows the “Seized” badge. The agent can still see the full transcript for context but can no longer reply into the customer-facing thread.
- Supervisor view — the conversation appears in the supervisor’s personal inbox as an active assigned thread. Replying from the inbox sends the customer-visible message.
3. Channel support matrix
Live monitoring works across every digital channel. The table below shows which actions apply to each channel:
Live monitoring is channel-agnostic at the service layer — it reads the conversation row and stamps the supervision marker regardless of channel. The “not supported” rows above are for voice and video, which have their own dedicated supervision surfaces with audio/room-mixer semantics. Every digital channel listed above supports the full watch / whisper / barge / unwatch quadruple.
4. Hand-back semantics and audit trail
Returning a barged thread to the agent
Barge reassigns the conversation to the supervisor. To hand it back:Audit trail
Every watch, whisper, barge, and unwatch action is audit-logged with:- The acting supervisor’s user ID
- The conversation ID
- The action (
supervisor.digital_monitor.watch,.whisper,.barge,.unwatch) - The caller’s IP address
- The resulting trait (watching / coach_tip / seized) and post-action assignee
- A timestamp
action to isolate a specific monitoring event:
The audit log is tamper-evident and tenant-scoped — a supervisor can only query their own workspace’s entries.
5. Supervisor-side limits
6. Privacy and compliance guidance
Whisper visibility
Whisper coaching notes are written to theconversation_internal_notes table as internal notes — the same table that stores colleague notes and system annotations. They are never exposed to the customer and never appear in the message transcript. The note author is the supervisor who sent the whisper; the note content is the coaching tip text.
Retention of coaching notes
Coaching notes follow the same retention policy as internal notes. They are not ephemeral — a whisper note persists until the tenant deletes the conversation or a workspace admin purges internal notes. This means a whisper from six months ago is still readable in the conversation history if the thread has not been deleted.Works-council / labour-relations considerations
Live monitoring raises questions that vary by jurisdiction, workforce agreement, and internal policy. Devotel Orbit provides the controls; your organization’s policy determines how they are used:- No silent monitoring of the agent desktop — watch shows the conversation transcript only. It does not provide keystroke logging, screen recording, or desktop monitoring. The agent’s private browser tabs and applications are never observable through Orbit.
- Watch is invisible to the agent by design — the agent is not notified when a supervisor begins watching. If your jurisdiction or works-council agreement requires agent notification, configure your internal policy to require supervisors to open the conversation from a wallboard tile (which displays a badge) rather than from the inbox.
- Whisper coaching notes are discoverable — the agent can see every whisper note in their conversation history. There is no “invisible whisper” — every coaching tip lands as a visible internal note in the thread. An agent auditing their own conversations can read every whisper they received.
- The audit trail is comprehensive — every monitoring action is logged with the supervisor, the conversation, the action, and a timestamp. The audit log is the single source of truth for “who monitored which conversation and when”; it is not editable and not deletable by supervisors.
- Tenant-owned controls — monitoring is enabled at the tenant level (available to any workspace with the feature). There is no global “disable monitoring” tenant flag. If your organization requires monitoring to be off for certain agents or teams, use the role gate: restrict the supervisor role to designated staff and do not grant it to agents being monitored.
7. Real-time transports
The live-monitor actions are delivered over two real-time transports:
The SSE frame carries the
supervised_by payload: supervisor_user_id, kind (watching / coach_tip / seized), and since timestamp. The wallboard reads this to show “Supervisor Smith is watching thread #conv_123” without a page refresh. The inbox WebSocket event is the same transport the agent’s thread already handles for colleague notes and system annotations — the supervisor_whisper: true flag lets the FE render a distinct “coaching from your supervisor” variant.
When a supervisor unwatches, the SSE frame carries action: "unwatch" with supervised_by: null — the wallboard badge clears on the next tick rather than on the next poll.
8. Interaction with channel concurrency caps
Channel concurrency caps are set at Settings → Team → Channel concurrency caps and apply to barge as follows:- When a supervisor barges into a conversation, the barge write consults
assertAgentChannelCapacityfor the conversation’s channel and the supervisor’s current active count on that channel. - If the supervisor is already at their cap (for example,
email = 1and they already own a live email thread), the barge is refused with422rather than silently overflowing the supervisor’s inbox. - The cap gate skips when the supervisor already owns the thread (the idempotency path —
already_barged: true), because re-barging does not create a new assignment. - Tenants without configured channel caps are unaffected — the cap helper fail-opens when no cap row exists, so existing workspaces keep their current behaviour.
- Watch and whisper do not consult the channel cap — only barge, because only barge changes the
assigned_toownership.
POST /conversations/:id/assign, a warm transfer, and an auto-assignment all pass through, so a supervisor barging in follows the same concurrency rules as any other assignment.
9. Troubleshooting
Whisper fails to render in the agent’s thread
- Check that the whisper note was written — the whisper API response carries
whisper_note_idandwhisper_published. Ifwhisper_note_idis present butwhisper_publishedisfalse, the note was saved but the real-time delivery failed (a transient Redis issue). The note is still in the conversation history. - Check that the note is visible in the audit log — query the audit trail for
action=supervisor.digital_monitor.whisperon this conversation. Thedetails.whisper_note_idfield confirms the note was written. - Check that the agent’s inbox WebSocket is connected — the whisper delivery rides the
note.internal.createdevent on the agent’s existing inbox WebSocket. If the agent’s WebSocket is disconnected (browser tab closed, network interruption), the note will not surface until they reconnect and the thread reloads.
Barge is rejected with 422
Common causes:- Channel concurrency cap exceeded — the supervisor is already at their maximum concurrent conversations for this channel. Check the supervisor’s current active conversations at Settings → Team → Channel concurrency caps and either raise the cap or transfer an existing thread before barging.
- Thread is not open — closed or archived threads cannot be barged into. Confirm the conversation status is
open. - No assigned agent — barge requires an assigned agent to relieve. An unassigned thread returns
422 NO_ASSIGNEE. Assign the thread first, then barge.
Audit trail shows no entries for monitoring actions
- Check the role — monitoring endpoints require an elevated role (owner, admin, or supervisor). A developer, billing, or viewer seat gets
403at the route layer and no audit entry is written. - Check the action filter — the audit action prefix is
supervisor.digital_monitor.(with a dot, not a slash or underscore). An exact match query foraction=supervisor.digital_monitor.bargereturns only barge entries. - Check the tenant scope — the audit log is tenant-scoped. A supervisor querying from the wrong workspace gets an empty result.
Watch a conversation
From the dashboard, a supervisor opens any live conversation and chooses Watch — or over the API:Whisper a coaching tip
When an agent is mid-conversation and a supervisor can see the right move, they can coach without the customer seeing anything:note.internal.created inbox WebSocket event the agent already subscribes to — so there is nothing new for the agent to poll. The tip is bounded to 500 characters; an empty tip returns 422 EMPTY_TIP. Whisper requires an agent to be actually assigned to the conversation (you cannot coach nobody) and an open thread (closed/archived threads return 422).
Barge in (take over the thread)
When coaching is not enough, the supervisor takes the thread:already_barged: true back and nothing re-stamps.
The takeover respects your team’s channel concurrency caps: if the supervisor is already at their maximum for that channel (for example email = 1), the barge is refused instead of silently overflowing their workload — the same rule a manual reassign would apply.
Who can monitor
Every live-monitoring endpoint requires an elevated role — owner, admin, or supervisor — plus a full agent seat in your workspace. A developer or billing member gets403.
Common failure codes
See also
- Live monitoring for voice calls — the voice twin of this surface (listen / whisper / barge / conference-join)
- Agent assist: whisper coaching — the coaching template library and mid-call whisper surface
- Supervisor coaching: plans and templates — structured coaching plans with before/after effectiveness reporting
- Contact-center live floor — the wallboard, live-state grid, and intraday adherence surface
- Inbox — the inbox surface supervisors monitor from
- Audit log — querying the tamper-evident log for monitoring actions
- Error codes —
422state conflicts and403role shapes