VICIdial for lead generation — operational playbook
B2C lead-gen + warm transfer setups on managed VICIdial. Plan sizing, carrier strategy, TCPA-safe consent, In-Group recording, common mistakes.
Lead-gen runs differently from collections. Connect rate is the thing that pays the bills, attestation matters more than per-minute price, and post-2024 FCC rules ended the "consent farm" multi-checkbox era. This page is the operational shortcut.
Plan sizing
| Floor size | Plan | Notes | | ------------- | ---------------------------------- | --------------------------------------- | | 15–30 agents | Starter or Growth | First-time lead-gen ops | | 30–80 agents | Pro (2 dedicated vCPU, 8 GB) | Dedicated CPU helps predictive overhead | | 80–150 agents | Business (4 dedicated vCPU, 16 GB) | Multi-vertical sharding becomes useful | | 150+ agents | Scale + regional splits | Talk to us |
Lower drop rates (lead-gen wants <2% drops, not the FCC's 3% ceiling) means more dial-level headroom — budget ~20% more server resources than collections at the same agent count.
Carrier strategy
Connect rate is everything. A vs B attestation is the difference between ~12% and ~6% answer rate on B2C cold lists.
- Twilio — premium answer rates, premium price. Best for higher-AOV verticals.
- Telnyx — moderate price, A-attestation on owned DIDs. Sweet spot for most lead-gen ops.
- Bandwidth — direct US carrier, A-attestation, best at >500K min/mo.
Run a 2-week pilot on each before committing volume. Track answer rate, drop rate, and disposition mix per carrier — the cheapest per-minute is rarely the cheapest per-lead-closed.
TCPA-safe consent (post-2024 rules)
The "consent farm" multi-checkbox lead-form era is over. Each lead's consent must be specific to one calling entity (yours, by name).
Workflow:
- Lead form names your company in the consent text — not "Acme + partners".
- Consent record stores: ISO-8601 timestamp, lead IP, user-agent, the exact consent string the lead saw, the form URL.
- RND-check the number before loading into VICIdial. Reassigned-number-database lookup costs less than one settlement.
- Load into VICIdial with
vendor_lead_codeset to your CRM ID so join-back across systems stays clean.
If you're loading lists you bought from a broker, the broker's consent records are what FCC + state regulators will subpoena. Get them in writing before the campaign goes live.
Warm transfer (fronter → closer)
VICIdial admin → Admin → In-Groups → create a closer group keyed by vertical.
- Fronter dials predictive, qualifies the lead in 60–120 seconds
- Click
Transfer→ routes to the In-Group - Closer picks up, fronter does a 3-way handoff (or hot-drop, depending on script)
Watch In-Group Recording — defaults to off in some VICIdial installs. Set explicitly to Y for QA + dispute defense. If your state is two-party consent, the announce-beep on the closer leg matters too.
Per-trunk TCPA scrubbing
If you're running multiple verticals on one server (a common lead-gen pattern), use per-trunk TCPA scrubbing so the BLA mode matches the vertical's compliance posture:
trunk-mortgage → CUSTOM, BLA key A, fail-closed
trunk-solar → CUSTOM, BLA key B, fail-open
trunk-insurance → INHERIT (server-wide default)
See /features/tcpa-compliance.
Recording retention
Lead-gen contexts usually want 90–180 days — lighter than collections' 2–7 year requirement. Two paths:
- Platform Managed Backups — daily Hetzner snapshot, 7-day rolling. Sufficient for short-term roll-back.
- External Backups (/features/external-backups) — push to your own S3 with whatever retention rule fits the contract you're dialing under.
Common mistakes
- Recycling dispositions too fast — calling a BUSY number twice in 60 seconds reads as harassment. Set Dial Statuses to recycle on a 24-hour cooldown minimum.
- One carrier, multiple verticals — different verticals get different answer rates per carrier. Run per-vertical trunks even if it costs a few minutes of setup.
- No A/B on lead source — the lead source that converts best at week 2 is rarely the cheapest at month 3. Status Categories let you segment by source close-rate; sources that don't close get culled.
- Fronter scripts that hand off the lead's name but not the disposition — closer doesn't know what the lead said yes to. Hand off the disposition code via the
Transfer Conf Phonelead-data passthrough. - Auto-loading carrier-suggested CallerIDs — Twilio/Telnyx will rotate your outbound CID for you if you let them. That breaks your DID-level attestation. Set the CID per campaign explicitly.
What VICIfast handles
Same answer as the collections page: platform owns the OS + Asterisk + VICIdial + daily snapshots + the TCPA AGI hook. You own carrier choice + campaign tuning + lead acquisition + consent.
Start a free trial → — 7 days, no card. Or talk to us if you're scaling past 80 agents on a single vertical.