FAQs
Common operational questions - how leads reach the bots, what happens on failures, drop-rate math, and live management.
This page answers the most common operational questions about running Voice AI bots alongside your human call center - how leads reach the bots, what happens when a bot isn't available, how drop rate is counted, and how to manage the bots live.
New to the feature? Start with the Voice AI BOT overview, then come back here.
Getting leads to the Bot
How do I connect an AI agent to the leads it dials?
An AI Agent never points at a campaign directly. It reaches leads exactly the way a human agent does - through skill groups:
flowchart LR AG[AI Agent] --> SG[Skill group] --> G[Group] --> GF[Group filter] --> C[Campaign leads]
To connect a bot to a campaign:
- Add a Bot Flow and assign it the skill group(s) you want it to serve. Every channel of the Bot Flow becomes one AI Agent with those skill groups.
- Make sure that skill group belongs to a group whose filter targets the campaign - the same group configuration you already use for human agents.
- Set the Bot Flow Active so its agents clock in (automatically via the Ratio/Fixed activation strategy, or manually from the AI Agents page).
An AI Agent dials predictive leads only while it is clocked in. If none of a group's AI Agents are clocked in, all of that group's leads go to human agents as before.
Changing a bot's skill groups laterAfter the Bot Flow is created, skill-group membership is managed per agent on the AI Agents page (mass action Assign Skills). The Bot Flow form shows them read-only
How does the dialer decide which leads are AI candidates?
When a group's leads are loaded, each lead is checked against all of these conditions. A lead becomes an AI candidate only if:
- Its country is in your account's AI allowed countries list
- It is not permanently assigned to a specific human agent
- It is not a no-ratio lead (callbacks and other lead types that must reach a specific person always go to humans)
- At least one clocked-in AI Agent serves the lead's group (through its skill groups)
Leads are then held in separate dialing pools - AI candidates on one side, human leads on the other - and each side is paced independently: AI capacity dials only the AI pools, human capacity dials only the human pools. High-priority (high-weight) leads get the same fast-lane treatment on both sides.
flowchart TD
L[Lead loaded by the group filter] --> Q1{Country in AI allowed countries?}
Q1 -- No --> H[Human pool]
Q1 -- Yes --> Q2{Permanently assigned or no-ratio lead?}
Q2 -- Yes --> H
Q2 -- No --> Q3{Clocked-in AI Agent serving this group?}
Q3 -- No --> H
Q3 -- Yes --> A[AI pool]
AI allowed countriesThe allowed-countries list is part of your account's AI configuration. If it's empty, no leads become AI candidates. Ask your CommPeak account manager to change it.
I connected an existing group of human agents to an AI Bot through a skill group. What happens to the loaded leads?
Mixing humans and AI Agents in the same skill group / group is fully supported - this is the normal setup. How the group's AI-qualified leads (right country, not assigned, not no-ratio) are shared is controlled by a group setting: AI Leads Distribution Type, under Group settings → Predictive Ratio Settings.
- Separate (the default): while at least one AI Agent is clocked in for the group, all AI-qualified leads go exclusively to the AI pool; human agents in that group receive only the leads that don't qualify for AI (other countries, assigned leads, no-ratio leads, and so on). The moment no AI Agent covers the group, every AI-qualified lead returns to the human pool - leads are never stranded.
- Shared: AI-qualified leads are split proportionally between the AI and human sides based on how many AI Agents and human agents are currently staffed. Both sides work the same lead set.
The split is rebalanced live: clocking bots or humans in and out, loading new leads, or changing the setting itself takes effect within seconds.
flowchart TD
E[AI-qualified leads in the group] --> M{AI Leads Distribution Type}
M -- Separate --> S1{Any AI Agent clocked in?}
S1 -- Yes --> S2[All qualified leads to the AI pool]
S1 -- No --> S3[All qualified leads back to humans]
M -- Shared --> P[Split in proportion to staffed AI vs human agents]
How do I set up a new group where the AI bot always speaks first, and humans only take transfers?
"Bot qualifies first, human closes" is the default outbound flow - there is no special transfer configuration on the dialer side. To build it with a new group:
- Create the group with a filter targeting your campaign, and put both your human agents' skill group and the Bot Flow's skill group in it (or use one shared skill group for both).
- Leave the group's AI Leads Distribution Type on Separate - AI-qualified leads then dial through the bot first, never straight to a human.
- Connect the transfer webhook on the vendor side. After you save the Bot Flow, the dialer shows the transfer webhook URL, the Bearer secret, and ready-made tool definitions to paste into your Vapi/ElevenLabs bot (Vapi also has an automatic Set it for me option). See AI Engines.
- Make sure human agents are logged in to the same group - a transfer always goes to whoever is free in the lead's group; the bot never picks a specific person.
When the bot decides to transfer, the dialer plays hold ringing to the lead, searches the group for a free human (within the group's available agent search timeout), bridges them, and shows the human a screen-pop with the AI conversation summary. If no human frees up before the lead hangs up, the call is recorded as an AI drop - the summary is still saved on the lead.
Only leads from AI-allowed countries reach the botIn this setup, leads whose country is not on your AI allowed-countries list still dial directly to the humans in the group, as regular predictive calls
When things go wrong
What happens when a lead is a candidate for AI but no bot is available?
Two different situations:
No AI Agent is clocked in for the group at all. The lead never becomes an AI candidate - it is dialed by the group's human agents like any regular lead. Nothing waits, nothing is skipped.
Bots are clocked in, but all of them are busy when the lead answers. The answered lead is held while the dialer keeps trying to claim a free bot, for up to the group's available agent search timeout. During the wait the lead hears the group's Dropped Call Settings experience. If no bot frees up in time, the group's Predictive Dropped Call Action runs:
- Hangup: the call ends and is recorded as an AI drop
- Playback: a goodbye message plays, then hangup (also an AI drop)
- Forward: the call is transferred to the configured destination (not a drop)
A busy-bots wait does not spill the lead to a human agent - human fallback is reserved for vendor failures (below). In practice the AI pacing dials to match free bot capacity, so this is a rare edge case rather than the norm.
What happens when the vendor call to the AI bot fails?
If the lead answered but the vendor (Vapi/ElevenLabs) rejects or fails the bot's call leg, the lead is not dropped immediately. The dialer escalates in this order:
- Try another Bot Flow: if other active Bot Flows serve the same group, the dialer immediately re-tries the lead on the next one (up to 3 candidate flows)
- Fall back to a human: if all candidates fail and the lead's group has clocked-in human agents, the call is handed to a free human through the normal transfer path (the agent gets a screen-pop, without an AI summary)
- Drop: only if no human serves the group either, the call ends and is recorded as an AI drop
flowchart TD
F[Vendor call to the bot fails] --> A{Another active Bot Flow serves this group?}
A -- Yes --> R[Retry the lead on the next Bot Flow]
A -- No --> B{Clocked-in human in the lead's group?}
B -- Yes --> T[Bridge the lead to a free human]
B -- No --> D[Call ends - recorded as an AI drop]
Around the individual call, two protection layers react to vendor failures:
- Channel quarantine: the single AI Agent whose vendor call failed is clocked out for a short grace period and switched to Manual staffing, so the auto-staffer doesn't immediately reuse a bad channel. Switch it back to Auto on the AI Agents page once the vendor is healthy
- Vendor health auto-disable: repeated failures in a short window (by default 5 failed calls within 60 seconds) automatically disable the whole Bot Flow; if several flows of one engine trip in quick succession, the entire AI Engine is disabled. Its AI Agents clock out, the group's AI-qualified leads return to the human pool (Separate mode), and an alert appears on the Realtime page. Re-enabling is manual, on the AI Engines page - see Vendor health & auto-disable
Drop rate & reporting
How is drop rate calculated when AI bots are part of the shift?
The definition of a drop doesn't change: an answered predictive call that was bridged to nobody - no human agent and no AI bot ever joined. A call the bot handled end-to-end is a bridged, answered call, exactly like a human conversation - it is never a drop.
Every predictive call is tagged at dial time as an AI lead or a human lead (by which pool it was dialed from), and that tag buckets the drops:
answered calls = all answered predictive calls (human + AI leads)
human drop rate = human-lead drops / answered human-lead calls
AI drop rate = AI-lead drops / answered AI-lead calls
total drop rate = all drops / all answered callsKey consequences:
- AI-handled calls count in the denominator: a shift where bots successfully answer many calls lowers the total drop rate, it doesn't hide calls from it
- AI failures count as drops: an AI lead that answered but was never bridged to a bot or a human is an AI drop and is included in the total drop rate used for pacing and compliance
- A failed bot-to-human transfer counts against the human side: if the bot asked for a transfer and no human bridged before the lead hung up, the pacing engine counts it as a human-side drop, so the group slows down when transfers keep failing
- The total drop rate (human+AI together) is what drives the group's predictive ratio, over the group's usual drop-rate window
On the Realtime page, each group card with active AI shows the drop rate split into Human and AI rows under the combined figure.
How can I tell in Call Records whether a call was handled by a bot?
There are no new call statuses - bots set lead statuses through the campaign's normal status flow (via their disposition webhook/tools). A call's outcome is readable from who bridged:
| Outcome | Human agent on the call | AI Agent on the call |
|---|---|---|
| Bot handled the call end-to-end | — | ✔️ |
| Bot qualified, then transferred to a human | ✔️ | ✔️ |
| Vendor failed, a human caught the lead instead | ✔️ | — |
| Nobody bridged | — | — (AI drop) |
If the bot ends a call without reporting a disposition, the campaign's default feedback status is applied - the same behavior as an unanswered agent feedback. The bot's conversation summary is stored on the lead (comments tagged AI Summary) and on the call's playback view.
Managing Bots live
How do I manage AI bots on the Realtime page?
Everything lives in the AI Bot Flows dialog - the robot icon in the Realtime page header - plus AI extensions to the group cards and the agent roster.
In the AI Bot Flows dialog:
- A fleet summary strip: flows active, agents live, on call, waiting.
- Each Bot Flow row has an Active / Idle switch - the main on/off lever for a bot - plus its capacity (
active/channels), its staffing label (ratio 1:N/fixed N, read-only here), a live per-agent state bar, and the groups it feeds - Expanding a flow shows one tile per AI Agent, each with an Auto/Manual staffing switch and Clock in/Clock out buttons, so you can pin a specific channel in or out of rotation
- Changes are staged - nothing happens until you press Deploy changes. Bulk actions: Activate all, Deactivate all, Restore all to auto
- A Bot Flow disabled by vendor health shows a red Disabled badge with a Manage link to the AI Engines page (re-enable happens there)
On the group cards: groups with active AI show the AI agent count inside the agents gauge, the human/AI split of leads in progress, and the drop rate broken into Human and AI rows.
In the agent roster: AI Agents appear alongside humans with live statuses (In a Call, Waiting, Clocking out…), the Bot Flow and engine they belong to, and the lead they're talking to. On a live bot call you can listen in (whisper) - listen-only, you can't coach a bot - transfer the call to a human, or end the bot's call, permissions permitting.
What's not on the Realtime page: the Ratio/Fixed numbers, channel counts, and skill groups are edited on the AI Engines/AI Agents pages; the AI allowed-countries list and account concurrency limits are managed with your CommPeak account manager.
Pausing a group pauses its AI tooThe Realtime Pause group action stops both human and AI dialing for that group - there is no per-group "pause AI only". To stop a bot everywhere it works, set its Bot Flow to Idle; to stop a single channel, clock that AI Agent out
Updated about 13 hours ago