CX Outbound Campaigns¶
Outbound campaigns dial leads from a list and connect answered calls to agents on a bound queue. Use Preview when agents should review lead details before accepting, or Progressive when the dialer connects the customer first and bridges to an agent when one is available.
Campaigns share the bound queue’s agent hunt strategy, login/logout, wrap-up, skills routing, and disposition rules. Inbound queue calls always take priority — the dialer runs only when no customers are waiting in the bound queue and agents are available.
Architecture¶
flowchart LR
A[Leads CSV or CRM API] --> B[Campaign]
B --> C[Dialer]
C --> D[Lead phone]
D --> E{Answered?}
E -->|Preview| F[Agent preview UI]
F --> G[Agent accepts]
E -->|Progressive| H[Customer connected]
H --> I[Queue bridges agent]
G --> J[Bound queue]
I --> J
| Component | Role |
|---|---|
| Campaign | Stores dial settings, schedule, caller ID, and lead source configuration in the Portal. |
| Leads | Per-number records with priority, retry/cool-off counters, and CRM metadata. |
| Dialer | QVOICE Platform queues service selects leads, places outbound calls, and respects campaign schedule and timezone windows. |
| Bound queue | Agents who handle connected campaign calls; queue strategy and member list apply. |
| Agent desktop (UCP) | Shows lead name, number, ticket ID, and campaign context on preview or connect. See User Guide. |
Campaign types¶
| Type | Customer experience | Agent experience |
|---|---|---|
| Preview | Phone rings; on answer the call is held until an agent accepts. | Lead card appears first; agent reviews details and clicks to connect. |
| Progressive | Phone rings; on answer the customer is connected immediately. | Agent is rung after the customer answers; optional greeting plays if agent SLA is exceeded. |
Progressive-only options¶
When Type is Progressive, additional fields appear:
| Option | Description |
|---|---|
| Customer wait for Agent SLA (s) | Seconds the customer may wait in silence for an agent to answer before optional greeting audio plays. Default 3. |
| Greeting post Lead wait SLA | Media file played to the customer when agent SLA is exceeded (optional). Without it, the customer waits in silence until Agent Dial Timeout. |
| Agent Dial Timeout (s) | Maximum seconds to ring agents for this lead. If no agent answers, the customer is transferred into the campaign queue with hold music. |
Create a campaign¶
Navigate to the QVOICE Platform Portal:
- Open Call Center on the top bar.
- Open Campaigns on the left bar.
- Click + Add to open Campaign Builder.
The builder is organized into collapsible sections: General Configuration, Select Queue, Schedule, Caller ID, and Leads.
General configuration¶
| Option | Description |
|---|---|
| Name | Campaign display name. Use a name that identifies the list or business purpose. |
| Note | Internal description of the campaign goal or audience. |
| Type | Preview or Progressive. See Campaign types. |
| Retries | Maximum dial attempts per lead while in cool-off/retry cycle before the lead is marked Failed. |
| Cooloff (s) | Seconds to wait after a failed dial before the lead becomes dialable again. Default 3600 (one hour) is a common starting point. |
| 2nd Cooloff (s) | Optional longer cool-off after the second failed attempt. Overrides per-lead CSV value when set on the campaign. |
| 3rd Cooloff (s) | Optional cool-off after the third failed attempt. |
| Dial Cycles | Number of full passes through the active lead list per dial cycle window. 0 means no cycle limit. |
| Dial Cycles Time | Time of day (hh:mm) when dial cycles reset. Used with Dial Cycles. |
| Mask Lead Caller ID | When on, agents do not see the lead’s real caller ID on the agent leg (privacy / blind preview). |
Select queue¶
| Option | Description |
|---|---|
| Queue | Required. Queue whose agents receive connected campaign calls. The queue must exist and have Outbound Calls enabled if your deployment requires it. All queue settings apply: strategy, wrap-up, skills routing, dispositions, and agent login state. |
Queue readiness
Configure agents, strategy, greeting/hold audio, and wrap-up on the bound queue before starting a campaign. See CX Queues.
Schedule¶
Campaign Schedule time groups restrict when the dialer may place calls (account timezone). Add one or more rows with Add.
| Field | Description |
|---|---|
| Weekday | Days the window applies (mon … sun). Multi-select. |
| Start Time | Window start (hh:mm, 24-hour). |
| End Time | Window end (hh:mm, 24-hour). |
| Month Day Start / Finish | Optional day-of-month range (1–31). |
| Month | Optional month filter (1–12). Multi-select. |
A campaign can be Running, Stopped, or Scheduled (running but outside the current schedule window). Use the Play/Stop control on the campaigns list to start or stop dialing.
Caller ID¶
| Option | Description |
|---|---|
| Enabled | Turn on campaign-specific outbound caller ID. When off, the dialer uses the queue phone number, then account default caller ID. |
| Type | Account — pick a number from account main numbers. Custom — enter name and E.164 number. |
| Add | Multiple caller ID rows can be configured; the dialer rotates or selects per deployment rules. |
Leads¶
Import leads from a CRM API or CSV upload. While a campaign is Running, you cannot upload, sync, or delete leads.
Import from CRM API¶
| Field | Description |
|---|---|
| Method | GET, POST, or PUT to your CRM endpoint. |
| URL | CRM API URL that returns a JSON lead list. |
| Parse Response Body | JSON mapping from CRM fields to lead fields. |
Mandatory mapping keys:
| Key | Maps to |
|---|---|
leads_array |
JSON path to the array of lead objects |
first_name |
Lead first name |
number |
Lead phone number (E.164 recommended) |
Optional mapping keys: last_name, priority, ticket_id, dial_retries, first_cooloff, cooloff, notes, skill, extension.
Click Sync on a saved campaign to pull leads from the CRM (disabled while running or when mapping is invalid).
Import from CSV¶
Drag and drop or select a .csv file, then click Upload on an existing campaign.
CSV columns:
| Column | Required | Description |
|---|---|---|
number |
Yes | Lead phone number |
priority |
Yes | Dial priority (lower or higher per your list sort — higher priority leads dial first) |
first_name |
Yes | Shown on agent preview |
last_name |
No | Shown on agent preview |
retries |
No | Per-lead retry override |
ticket_id |
No | CRM or ticket reference passed to the agent |
cool_off |
No | Per-lead first cool-off override (seconds) |
cool_off_2nd |
No | Per-lead second cool-off override |
cool_off_3rd |
No | Per-lead third cool-off override |
note |
No | Free-text note on the lead card |
type |
No | Lead type tag (optional classification) |
Download sample CSV — qvoice-campaign-leads-sample.csv
Use Export Leads on the campaign editor to download the current lead list.
Dial By Timezone¶
Restrict dialing to a single daily window evaluated in each lead’s timezone (from phone number or account default).
| Option | Description |
|---|---|
| Enabled | When on, dial only between From and To times in the lead’s local timezone. Mutually exclusive with Dial by Schedule by Timezone. |
Dial by Schedule by Timezone¶
Fine-grained retry schedule per lead timezone — define allowed days and one or more time windows per day.
| Option | Description |
|---|---|
| Enabled | When on, the dialer dials a lead only when local time falls inside a configured window. Mutually exclusive with Dial By Timezone. |
| Window Duration (hours) | Default length of each dial window (hours). Default 1. |
| Day N | Day offset from lead creation (0 = same day). Empty day = skip. |
| Times | One or more start times (HH:MM, 24-hour) per day. Add time / Add day (up to 7 days). |
Timezone source
Lead timezone is derived from the phone number when possible; otherwise the account default timezone applies.
Lead status¶
Call Center → Campaigns → Leads Status shows real-time dialer state per lead.
| Status | Description |
|---|---|
| Active | Lead is ready to be dialed (new). |
| In Progress | Lead is currently being dialed or awaiting retry (dialing, retry). |
| Cool Off | Lead was dialed but not connected; waiting for cool-off timer (cooloff). |
| Voicemail | Agent or dialer marked voicemail; treated like cool-off until timeout. |
| Successful | Lead answered and connected to an agent (success). |
| Failed | Retry limit exhausted; lead will not be dialed again unless reset. |
Agents can set Voicemail from the desktop when they reach an answering machine.
Start and stop¶
| Action | Behavior |
|---|---|
| Start (Play) | Campaign status becomes Running (or Scheduled if outside schedule window). Dialer begins selecting eligible leads. |
| Stop | In-progress dials are stopped and moved to retry. Leads in cool-off remain in cool-off until their timer expires, even after restart. |
Inbound priority
The campaign dialer dials only when no customers are waiting in the bound inbound queue and agents are available. High inbound volume pauses outbound dialing automatically.
Campaign activity¶
Call Center → Campaigns → Activity provides a cradle-to-grave report for dialed leads: dial result, agent name/extension, ring time, talk time, and (for Progressive) customer wait SLA and agent SLA columns.
Operational checklist¶
- Create and configure the bound queue (agents, strategy, audio, wrap-up).
- Create the campaign — set type, retries, cool-off, queue, schedule, caller ID.
- Upload or sync leads; verify Leads Status shows Active rows.
- Start the campaign during the schedule window.
- Monitor Activity and Leads Status; adjust cool-off or retries if connect rates are low.
Related documentation¶
- CX Queues — queue configuration used by campaigns
- Skills Routing — route campaign queue calls by agent skills
- Campaigns API — REST API for leads, status, and activity

