The queue callback model
A queue callback answers one question — “does Orbit let a caller stop holding without losing their turn?” — with yes. A caller who has waited long enough can opt out of the physical hold, keep a virtual place in the queue’s dispatch order, and receive an outbound callback when that place matures. The callback is a first-class row in your org’s data: it has a lifecycle you can watch, a status you can filter on, operator actions you can run from the dashboard, and a per-queue SLA objective that alerts before a backlog ages out. This page is the concept map: what a queue callback is, where you configure it, how dispatch decides when to dial, and how outcome codes tie back to the queue’s service-level reporting. The step-by-step operator playbook for a breaching queue (objectives, forecast, escalation ladder, on-call loop) stays on the queue SLA forecast-callback runbook — this page owns the customer-facing setup and model so that runbook never has to re-teach them. Every control named here is tenant-owned: your queues, your overflow action, your SLA policy, your operator actions. Callbacks dispatch exclusively over the Devotel softswitch — you never configure a third-party outbound trunk to activate them.1. What a queue callback is — holding without a phone to the ear
A queue callback is a virtual hold: the caller’s place in the FIFO dispatch order survives their hangup. The caller opts in (the queue’s IVR voices a “press 1 for a callback” offer, or the SLA entry gate steers them to it), the platform records a callback request, and the caller hangs up. When their turn would have arrived, Orbit dials them back and connects them to an agent — as if they had kept the telephone silent on the desk the whole time. Two opt-in flavors produce the same promise through different doors:
Both flavors land as one trackable request per caller — a duplicate press (a jittered press-1, an IVR retry) is refused rather than double-booked, so a caller never receives two callbacks for one hold. A third, sibling flavor is agent-driven: a disposition-driven callback the agent schedules at wrap-up (
follow_up + a displacement), dispatched at due time through the same pipeline. The model below covers the caller-driven pair; the agent-driven sibling shares their dispatcher but starts at the wrap-up code, not the IVR offer.
The caller’s promise at opt-in time is recorded with the request: the queue they were holding on, their (masked) caller id, the estimated wait they were quoted, and — for scheduled callbacks — the appointment window they picked. That quote-vs-reality gap is what the queue’s callback SLA policy later measures.
2. Configuring callbacks on a queue
Callback behavior is queue configuration wired in two dashboard surfaces, not a separate feature to enable:- Set the queue’s overflow action to Callback. Open Voice → Queues, pick the queue, and on its edit dialog set the overflow action to Callback. The Voice → Callbacks page short-circuits this for you: when no callbacks exist yet, its empty state offers a queue picker plus a Configure callback overflow link that deep-links straight into that queue’s overflow setting with the Callback value preselected.
- Voice the offer to the caller. The in-queue press-1 offer lives in the queue’s IVR path — the overflow action alone catches callers who blow past the threshold; the in-queue offer catches the ones who opt out earlier. The full helper/forecast wiring that raises the offer the moment the queue starts breaching is the gate-and-forecast pair documented on Inbound queue SLA forecast + virtual callback gate.
- Set the queue’s SLA target (
targetServiceLevelSeconds) so the forecast and the callback SLA policy have a bound to measure against. A queue with no SLA target still offers and dispatches callbacks — it just never forecasts, never gates, and never alerts on an aging backlog.
3. How the callback is placed — queue-position maturity, abandon, and retry
The dispatcher is one shared machine for every callback flavor. Three questions decide what happens to a pending row, in order: When does it become due? An in-queue row matures on queue position — the dispatcher waits for agent availability as if the caller were still holding at their saved position. An overflow row matures on its retry-ladder tick — the first attempt fires on opt-in; each failed attempt re-schedules on the backoff ladder until the queue’s retry budget is spent. A scheduled row matures at its appointment: ascheduled_for target or a booked window, with the row held quiet in FIFO until the window opens. Whichever gate applies, no row dials before it is due.
What guards the dial? Two tenant- and platform-level guards sit in front of every attempt, exactly as they do for any other outbound leg: a callback that would resolve to an emergency short code is blocked outright, and a callback that would land outside the recipient’s calling window is held, not dialed. Callers outside the window never hear a ring; the row simply stays pending until the window opens.
What if the caller doesn’t pick up? A no-answer or busy far end is not terminal on the first ring — the retry ladder re-schedules the attempt. The ladder is bounded: when the queue’s retry budget exhausts, the row flips to failed and stops consuming dials. An abandoned outcome is the caller-side mirror — the dial connected at our end but the far end hung up before an agent was bridged. A missed appointment window (MISSED_SCHEDULED_WINDOW) is terminal by design past the window’s end — the agreed promise was a window, not an open-ended backlog.
While a row is pending, operators have three controls on the Voice → Callbacks list: Cancel (terminal, idempotent — a re-cancel is a clean no-op), Retry now (re-enqueue for immediate dispatch, refused while the row is already dialing), and Re-prioritize (pull the row to the front of the pending FIFO). The caller holds the same cancel capability through their public tracking link — the same transition, from their side.
4. Reading callback outcomes — statuses, codes, and the SLA reports
Every callback resolves to exactly one outcome status, and that status is your audit trail:
The Voice → Callbacks page filters on these statuses plus the queue, and its summary strip (total / pending / connected / average wait) lets a supervisor see the backlog without pulling a report. Two detail registers accompany the statuses:
avg_wait_seconds compares the promise quoted at opt-in against the dispatch latency actually delivered, and the in-queue summary’s avg_queue_position_at_optin tells you how deep into the line callers typically bail — the number you tune the offer’s trigger point against.
Outcome codes are the input, not the report. The report is the queue’s SLA surface: a per-tenant callback SLA policy (per queue — max age of the oldest pending callback, max pending count, notify surfaces) turns “how old may the oldest callback get before someone is paged” into a stored objective, and the queue’s existing SLA analytics and alert rules consume the same outcome stream the list page renders. Read the policy/alert wiring on the callbacks scheduling + SLA reference and the queue’s overall service-level loop on the queue SLA escalation policies concept.
5. What this page does NOT cover — the breaching-queue ops playbook
This page explains what a callback is and how to configure it. The moment the queue is breaching — objectives missed, the forecast tipping, the escalation ladder firing — is an operational runbook, not a concept: read Queue SLA forecast-callback runbook for the end-to-end playbook (define the objective, wire the breach policy and escalation ladder, test the breach path with a synthetic window, and work the on-call loop when it fires). The runbook assumes this page’s model; this page deliberately never explains a breach response.Related
- Set up and run voice queues — create the queue, staff it, and set the overflow action this page names.
- Voice queue callbacks with SLA policies and scheduling — the API field inventory for every surface named here, plus scheduling windows and disposition-driven callbacks.
- Inbound queue SLA forecast + virtual callback gate — the entry gate that steers a new caller to the callback offer before they ever join the line.
- Inbound queue SLA forecast: pre-suggest callback before breach — the advisory forecast that raises the offer flag on waiting callers early.
- Queue SLA forecast-callback runbook — the ops playbook for a breaching queue; the model on this page is its prerequisite.
- The ACD queue model: presence, skills, dispatch, and overflow — the FIFO dispatch and presence machinery the callback’s virtual hold plugs into.