Skip to main content

Live-human overflow for AI voice-agent campaigns

A dialer campaign that dispatches through an AI voice agent has a bounded pool: the campaign’s concurrency limit caps how many AI sessions run at once. When every AI session is in flight, pending contacts used to wait for a session to free up — even with idle human agents sitting in the campaign’s queue. Live human overflow is the per-campaign toggle that closes that gap. When the AI pool is saturated, overflow contacts route to an idle human agent in the campaign’s routing queues instead of waiting. You arm it per campaign, so a cost-sensitive campaign stays AI-only while an escalation-sensitive campaign spills to humans. Base surface: dashboard — Voice → Dialer → create campaign (the Live human overflow switch), or an existing campaign’s Settings panel. Both are available only when the campaign dispatches via an AI voice agent. Base path: PATCH /dialer/campaigns/:id — the API field is overflow_to_human.

1. Voice-quality metrics the campaign runs on

Overflow is a capacity fail-safe, so arm it on evidence, not guesswork. Before you decide whether a campaign needs the toggle, read its live-session quality:
  • VAQI rollups — aggregate latency, turn-taking, and barge-in across your voice agents over 24h / 7d / 30d. See Voice Agent Quality Index.
  • Network transport metrics — packet loss, jitter, and latency per call, from the call-quality ingest feed. See Call quality ingest.
For AI dispatch specifically, VAQI is the triage lens: TTFB and turn-gap p95 tell you whether the AI pool is keeping up with callers, and the barge-in success rate tells you whether it is politely yielding under load. If those trend healthy and the campaign still leaves contacts pending at capacity, the pool is saturating — that is the case overflow fixes.

2. When overflow fires

The dialer’s pacing scheduler ticks per campaign and computes a claim capacity per tick:
  • AI capacity first. The campaign claims AI sessions up to its concurrency limit. While in-flight sessions are under the cap, everything routes to the AI agent and the toggle changes nothing.
  • Capacity exhausted? Check the toggle. When a tick hits the concurrency cap, the scheduler reads overflow_to_human. If the flag is off, the tick is skipped and pending contacts wait for an AI session to free — the at-capacity behaviour without the toggle.
  • Flag on: route to idle humans. With the flag on, the scheduler counts idle human agents in the campaign’s routing queues and re-dispatches up to that many pending contacts through the human path. VAQI and the transport metrics inform the decision to enable the toggle (see §1); the scheduler itself always overflows when idle humans exist — quality thresholds are your own policy, not a gate the flag reads.
Overflow contacts travel through the same human-dispatch origination path a fully human campaign uses, so all outbound calls still exit over the Devotel wholesale softswitch — the toggle never steers carriers.

3. Arming and disarming per campaign

Supervisors and workspace admins manage the toggle in three places:
  • At campaign creation. In the create-campaign dialog, choose the AI voice-agent dispatch path; the Live human overflow switch renders under the agent picker. The switch is there only on the AI dispatch path.
  • On an existing campaign. Open the campaign’s Settings panel, flip the same switch, and save. The change takes effect on the next scheduler tick.
  • Over the API. Send overflow_to_human: true (or false to disarm) on POST /dialer/campaigns or PATCH /dialer/campaigns/:id.
The flag is accepted only on AI voice-agent dispatch campaigns. Sending it on a human-dispatch campaign returns a 422 — a human campaign is already fully human-routed, so the API refuses what would be a silent no-op. Set false the same way to disarm; the campaign reverts to AI-only at-capacity waiting.

4. Interaction with abandoned-call rules

Overflow reduces abandonment exposure but does not alter the abandon-rate budget:
  • Your max_abandon_rate stays authoritative. It caps the fraction of answered calls an agent may abandon (picking up and finding nobody, overflow included), and the FCC 3% ceiling bounds it regardless of dispatch mode.
  • The toggle interacts with the abandon cap, not the pacing. Abandon protection and the queue idle-agent detection are the same protects every dialer tick applies — overflow inherits them rather than bypassing them.
  • Fewer predicted abandons per at-capacity tick. Routing an otherwise-waiting contact to an idle human also cuts the abandon-side risk of an AI leg answering and finding no session budget — a real win for abandon-rate-sensitive campaigns.
  • Disarm leaves the budget alone. Without the toggle, excess contacts wait at capacity rather than dial; the abandon cap still gates what does dial.

5. Worked sample — two campaigns, two postures

Campaign A — cost-sensitive lead re-activation. Dispatch via the AI voice agent, overflow_to_human: false. At peak hours the AI pool saturates and the scheduler skips ticks; pending contacts wait for an AI session to free. VAQI stays your guardrail — if p95 latency or barge-in degrades, stop here rather than spill humans into an AI-first campaign. You keep AI unit economics exactly; the trade-off is throughput under load. Campaign B — renewal reminders with SLA risk. Same AI dispatch, with overflow_to_human: true and queues routed to a small human team. A saturated tick claims idle humans and re-dispatches the excess as human calls, drawn down by whatever the routing queues supply. The scheduler logs each overflow batch to the campaign dial-feed; the humans see normal inbound routing on overflow calls, and excess volume stops queuing behind the AI pool. Decide per campaign during setup: Arm the toggle only after you have set your max_abandon_rate (see §4), so a spill-driven surge reads against your own abandon cap, not just the FCC ceiling.

Troubleshooting

  • Toggle missing in the create dialog. The Live human overflow switch renders only on the AI voice-agent dispatch path. Pick the agent’s dispatch path first, then the switch appears under the agent picker.
  • 422 overflow_to_human may only be set when dispatch_mode='voice_agent'. The campaign is human-dispatch; the flag is a no-op there. Either switch the dispatch path to AI voice agent or drop the flag.
  • Flag armed but contacts still queue at peak. Overflow needs an idle human in one of the campaign’s routing queues. Check queue membership and the agent presence surface; with zero idle agents the scheduler still skips the tick.
  • Abandon rate rising after you armed the toggle. Overflow shifts capacity to humans; the abandon accounting still applies per tick. Lower your max_abandon_rate or disarm the toggle — the flag is not a substitute for an abandon budget.