I spent a Tuesday afternoon watching 30 agents sit idle for an average of 22 seconds between calls because the auto_dial_level was set to 2.0 on a campaign with a 15% connect rate. The math didn't work. It never does when you set it once and walk away.
The auto_dial_level in VICIdial controls how many lines the system dials per available agent. Get it wrong in either direction and you're bleeding money — either through wasted payroll (too low) or dropped calls and FTC violations (too high). The right number depends on your vertical, your list quality, and what time of day it is.
Adaptive Mode Is the Only Mode That Matters
If you're still using RATIO dialing with a fixed multiplier, stop. Switch to one of VICIdial's adaptive modes — ADAPT_TAPERED is the best starting point for most shops. In adaptive mode, auto_dial_level becomes a ceiling, not a fixed value. The system adjusts in real time based on your drop rate, agent wait time, and connect rate.
The three adaptive modes behave differently:
- ADAPT_HARD_LIMIT — never exceeds the drop rate threshold, even briefly. Use this for political campaigns and anything compliance-sensitive.
- ADAPT_TAPERED — gradually backs off as the drop rate climbs. Best balance for general outbound.
- ADAPT_AVERAGE — targets the threshold as an average, so it can spike above it temporarily. More aggressive.
Set available_only_ratio_tally to Y so the system counts only agents actually waiting for calls, not agents mid-conversation. This single setting prevents the most common over-dialing scenario.
Vertical-Specific Settings That Work
B2B campaigns have low connect rates (10-20%) and expensive lists:
dial_method: ADAPT_TAPERED
auto_dial_level: 3.5
adaptive_intensity: -1
dial_timeout: 26
available_only_ratio_tally: Y
Max 3.5 because each contact is valuable. Intensity -1 for conservative bias. Dial timeout 26 to account for PBX routing delays.
B2C / consumer campaigns connect more often (25-45%) with shorter calls:
dial_method: ADAPT_TAPERED
auto_dial_level: 6.0
adaptive_intensity: 0
dial_timeout: 22
available_only_ratio_tally: Y
Higher ceiling because the adaptive algorithm needs headroom for off-peak hours. Consumer phones answer fast or hit voicemail — no point waiting past 22 seconds.
Insurance fresh leads (under 24 hours) should run at max 4.0 with intensity -1 — too valuable to drop. Aged leads (7+ days) can go aggressive at 7.0 with intensity +1, because connect rates tank and agent idle time is the bigger cost.
Political voter ID is a different animal: massive lists, 60-second average talk times, intense regulatory scrutiny. Use ADAPT_HARD_LIMIT at max 8.0 with intensity +1. The hard limit protects you from ever exceeding the FTC's 3% drop threshold, even momentarily. A dropped call to a voter is a potential news story.
The 3% Rule and Drop Rate
The FTC Telemarketing Sales Rule caps your abandoned call rate at 3% per campaign over a rolling 30-day period. VICIdial tracks this in real time. Set adaptive_dropped_percentage to 3.0 and drop_rate_group to CAMPAIGN_ONLY so the math is per-campaign (which is what the TSR expects).
When a call does drop, you need a safe harbor message playing within 2 seconds. Go to Campaigns > Campaign Detail and configure the Drop Action to AUDIO with your pre-recorded safe harbor message. Record something brief: your company name, an apology, and a callback number. Drop it in /var/lib/asterisk/sounds/.
How to Actually Test
Don't guess. Run your current settings for a full day and record your baseline: agent wait time, drop rate, and calls per agent per hour. Then change one parameter at a time:
- Agent wait time over 15 seconds? Bump max dial level by 0.5.
- Drop rate over 2%? Lower max dial level by 0.5.
- Both are fine? Increase adaptive_intensity by 1.
Give each change at least 2 hours — ideally a full shift — before evaluating. Connect rates shift throughout the day, and adaptive mode should handle that automatically. But verify it's actually working by checking the hourly numbers.
The hopper matters too. Set hopper_level to at least auto_dial_level x agent_count x 2. If you have 50 agents at max level 4.0, that's a hopper of 400. A low hopper causes the dialer to stall while waiting for leads to load, and the symptoms look exactly like a dial level problem.
It's Never Set-and-Forget
Dial level tuning is ongoing. Lists age. Connect rates shift seasonally. Carrier performance fluctuates. An operation running 25+ agents at $150/agent/month loses real money from even a slightly mis-tuned dialer. ViciStack monitors dial level performance hourly and adjusts parameters based on live data — not monthly reviews.
Originally published at https://vicistack.com/blog/vicidial-auto-dial-level-tuning/
Top comments (0)