; ============================================================================= ; VICIdial Callback Campaign — Complete Configuration ; ============================================================================= ; Generated by ViciStack — https://vicistack.com — Free VICIdial optimization ; ; WHAT THIS FILE DOES: ; Configures callback handling in VICIdial: the CALLBK disposition, ; scheduled callbacks (agent-owned and anyone callbacks), callback ; alert behavior, re-queue timing, and the useronly callback campaign ; pattern. Also covers the callback hopper injection and API callbacks. ; ; HOW TO USE: ; These are VICIdial admin GUI settings. Apply them in: ; Admin > Campaigns > [campaign] > Detail View ; Admin > Campaigns > [campaign] > Statuses ; Admin > System Statuses ; This file documents every setting and the reasoning behind it. ; ; FULL GUIDE: ; https://vicistack.com/blog/vicidial-callback-automation/ ; https://vicistack.com/blog/speed-to-lead-response-time/ ; https://vicistack.com/blog/vicidial-lead-recycling/ ; ; NEED HELP? hello@vicistack.com ; ============================================================================= ; ============================================================================= ; SECTION 1: CALLBACK DISPOSITIONS ; ============================================================================= ; VICIdial has two built-in callback statuses. Understanding the difference ; is critical — getting this wrong means lost callbacks and angry prospects. ; --- CALLBK (Agent-Owned Callback) --- ; When an agent dispositions a call as CALLBK, they set: ; 1. Date and time for the callback ; 2. The lead is assigned to THAT specific agent ; ; The callback fires ONLY when that agent is logged in and available. ; If the agent is sick/quit/on vacation, the callback sits in limbo. ; This is the #1 cause of "lost callbacks" in VICIdial. ; ; Use CALLBK when: the prospect specifically asked for the same person ; ("have John call me back Tuesday at 2pm"). ; --- CBHOLD (Anyone Callback) --- ; The agent sets a callback time, but ANY available agent can take it. ; When the callback time arrives, the lead gets injected into the hopper ; and the next available agent gets it. ; ; Use CBHOLD when: the prospect just wants a callback, doesn't care who. ; This is what you should use 90% of the time. It's more reliable because ; it doesn't depend on a specific agent being available. ; ; IMPORTANT: Make sure your agents understand the difference. Train them ; to use CBHOLD by default and CALLBK only when the prospect insists. ; --- Status Configuration --- ; In Admin > Campaigns > Statuses, ensure both are configured: ; ; Status: CALLBK ; Selectable: Y ; Human Answered: Y ; Scheduled Callback: Y ; Category: CALLBACK ; Status Name: "Callback - Agent Owned" ; ; Status: CBHOLD ; Selectable: Y ; Human Answered: Y ; Scheduled Callback: Y ; Category: CALLBACK ; Status Name: "Callback - Anyone" ; ============================================================================= ; SECTION 2: CALLBACK CAMPAIGN SETTINGS ; ============================================================================= ; --- Scheduled Callbacks --- ; Master switch. Must be Y or callbacks are completely disabled. scheduled_callbacks = Y ; --- Callback Time Display --- ; Show the scheduled callback time to the agent when they get the call. ; Y = agent sees "Callback scheduled for 2:00 PM by AgentJohn" in their screen. ; Stock: N. Always set to Y — agents need context for callback calls. callback_time_display = Y ; --- Callback Comments --- ; Allow agents to add notes when setting a callback. ; These notes appear when the callback fires so the next agent has context. ; "Spoke with Maria, she wants pricing for 50 seats, call back after her ; board meeting on Tuesday" — this is gold for conversion. callback_comments = Y ; --- Agent-Only Callbacks --- ; Y = agent sees a popup/alert when their owned callback is ready. ; The system holds the callback until that specific agent is available. ; If the agent doesn't log in within callback_limit_days, the callback ; gets released to the general hopper (see below). agent_only_callbacks = Y ; --- Agent-Only Callback Delay --- ; Seconds after the callback time before the system checks for the ; owning agent. Set to 0 for immediate. Set to 60-120 if you want to ; give the agent a minute to wrap up their current call. agent_only_callback_delay = 60 ; --- Callback Limit Days --- ; Days after the scheduled time before an agent-owned callback gets ; released to the anyone pool. This prevents callbacks from being ; permanently stuck when an agent leaves. ; 2-3 days is reasonable. If an agent is out for 3 days, the callback ; gets recycled to whoever is available. callback_limit_days = 2 ; --- Callback Hours --- ; Should callbacks respect the campaign's call time restrictions? ; Y = only fire callbacks during allowed calling hours (RECOMMENDED). ; N = fire callbacks at their exact scheduled time even if outside hours. ; Setting this to N can cause TCPA violations if agents schedule ; callbacks at 10pm without thinking about the prospect's timezone. callback_hours_block = Y ; --- Max Callback Attempts --- ; How many times to attempt a callback before giving up. ; Each failed attempt (no answer, busy) decrements the counter. ; When it hits 0, the lead gets dispositioned as XFER (or whatever ; you configure as the dead callback status). ; 3 attempts is standard. More than 5 annoys prospects. max_callback_attempts = 3 ; ============================================================================= ; SECTION 3: CALLBACK HOPPER INJECTION ; ============================================================================= ; How callbacks get from the schedule into the actual dial queue. ; --- Callback Injection Rate --- ; How often (seconds) the system checks for due callbacks and injects ; them into the hopper. Stock: 15. This means a callback could fire ; up to 15 seconds late, which is fine. ; Don't set this below 10 — it hammers the database with queries. callback_injection_interval = 15 ; --- Callback Priority --- ; Priority of callbacks vs. regular hopper leads. ; Higher priority means callbacks get dialed before cold leads. ; IMMEDIATE = callbacks jump to the front of the hopper (RECOMMENDED). ; Your prospect asked to be called back. Calling them first is basic ; respect and dramatically improves conversion rates. ; NORMAL = callbacks mix into the hopper at regular priority. callback_priority = IMMEDIATE ; --- Callback Lookahead --- ; Minutes before the scheduled time to inject the callback into the hopper. ; 5 minutes gives the system time to connect the call at exactly the right time. ; 0 = inject at the exact scheduled time (call goes out a few seconds late). callback_lookahead = 5 ; ============================================================================= ; SECTION 4: CALLBACK BEST PRACTICES ; ============================================================================= ; These aren't config settings — they're operational guidelines that ; determine whether your callbacks actually convert. ; ; 1. SPEED MATTERS ; Callbacks set for "ASAP" (no specific time) should fire within 5 minutes. ; Every minute of delay drops conversion rate by 10%. ; See: https://vicistack.com/blog/speed-to-lead-response-time/ ; ; 2. CONTEXT IS EVERYTHING ; Train agents to write useful callback notes. "Call back" is useless. ; "Interested in 50-seat package, comparing us to Five9, decision by ; Friday" lets the callback agent close the deal. ; ; 3. MONITOR CALLBACK AGING ; Run this query (read-only, from a replica) to find stale callbacks: ; Check Admin > Reports > Callback Report for callbacks older than 48h. ; If you see a pile-up, an agent probably quit and their callbacks ; are stuck. Release them manually or wait for callback_limit_days. ; ; 4. CALLBACK-SPECIFIC SCRIPTS ; Create a separate agent script for callback calls: ; "Hi [first_name], this is [agent] from [company]. You spoke with ; [orig_agent] on [date] about [notes]. I'm following up on that." ; See: https://vicistack.com/blog/dynamic-scripting-for-call-centers/ ; ; 5. TRACK CALLBACK CONVERSION ; Callbacks should convert at 2-3x the rate of cold calls. ; If they're not, your callback notes are bad or the delay is too long. ; Check the Callbacks Report: Admin > Reports > Callback Summary. ; ============================================================================= ; SECTION 5: API-DRIVEN CALLBACKS ; ============================================================================= ; Trigger callbacks from external systems (CRM, web forms, SMS replies). ; VICIdial's non-agent API can schedule callbacks programmatically. ; ; See: https://vicistack.com/blog/vicidial-api-integration/ ; https://vicistack.com/blog/vicidial-api-integration-examples/ ; ; API endpoint: ; /vicidial/non_agent_api.php ; ; To schedule a callback via API: ; ?source=test ; &user=API_USER ; &pass=API_PASS ; &function=update_lead ; &lead_id=12345 ; &status=CBHOLD ; &callback=Y ; &callback_datetime=2026-03-28+14:00:00 ; &callback_type=ANYONE ; &callback_comments=Web+form+request+for+demo ; ; callback_type options: ; ANYONE = any available agent (CBHOLD behavior) ; USERONLY = specific agent (CALLBK behavior, requires callback_user param) ; ; Use case: prospect fills out "request a callback" form on your website. ; Your web server hits the API immediately, callback fires within minutes. ; Speed-to-lead drops from hours to minutes. Conversion doubles. ; ; For API integration services: ; https://vicistack.com — hello@vicistack.com ; =============================================================================