Skip to main content
Running outbound calls at scale is not a dialling problem - it is a reputation problem. The moment a team moves from tens to thousands of calls per day, the question shifts from “can we dial this number?” to “will anyone actually answer?” An outbound campaign manager is software that takes a list of phone numbers, dials each one systematically, records what happened, and surfaces the results - all while keeping your numbers from being flagged as spam. The hard parts are not the dialling itself; a SIP trunk and an API call can place a call in milliseconds. The hard parts are which number to dial from, when to dial, how fast, what to do when nobody picks up, and how to prevent your entire number pool from getting labelled Spam Likely by Tuesday afternoon. This guide is a vendor-neutral walkthrough of how each of those five decisions works, what the trade-offs are, and how to configure them for a production campaign. Where it helps, it points to the equivalent control in Vobiz Campaigns.

The lifecycle of a single dial

To understand which configuration knobs matter, it helps to see what actually happens between “I have a CSV of 10,000 phone numbers” and “the phone in someone’s pocket rings.”
1

Upload

A contact list (typically a CSV) is parsed and stored. Each row becomes one record with a destination phone number and per-contact metadata.
2

Schedule

The user sets when the campaign should start - immediately, or at a specified future time.
3

Promote

When the campaign becomes active, every contact is enqueued into a job queue.
4

Pace

A worker pulls one contact at a time and decides whether to dial it right now or wait. This is where the rotation, cap, and cooldown rules apply.
5

Dial

The worker selects a from number from the pool, asks the SIP layer to place the call, and records the call UUID.
6

Hangup

When the call ends - answered, unanswered, busy, or failed - a webhook fires back to the campaign manager with the outcome.
7

Decide what's next

Based on the outcome and the campaign’s retry policy, the contact is either marked terminal or scheduled for a retry.
8

Complete

When no contacts remain in pending or retry-pending states, the campaign is marked complete.

The carrier reputation problem

Three companies - Hiya, First Orion, and TNS - operate the analytics platforms that mobile carriers use to decide how your call appears on a recipient’s screen. Hiya powers AT&T’s call labelling, First Orion powers T-Mobile’s Scam Shield, and TNS powers Verizon’s analytics. These engines never see the content of your call. They infer intent from patterns:
SignalWhy it looks like a robocaller
Calls per number per dayA single number making 500+ outbound calls in 24 hours matches the statistical signature of a robocaller almost exactly.
Burst patterns within a dayFifty calls in sixty seconds from one number is dramatically more suspicious than fifty calls spread over an hour.
Answer-and-hang-up rateWhen recipients reject calls, analytics systems infer the calls were unwanted.
Geographic mismatchA number in one area code calling many recipients in a distant area code signals a spoofed-feeling call.
Number ageBrand-new numbers with no history of normal use appear more suspicious.
Once a number earns a Spam Likely label, answer rates typically drop 40-70% overnight. The labelling is sticky, and disputes require convincing three independent, proprietary AI systems - separately - that your traffic is legitimate.
Everything below exists to keep your traffic on the legitimate side of those signals.

Number rotation: the core idea

Instead of dialling all calls from one number, a campaign manager maintains a pool of phone numbers - called DIDs - and rotates across them systematically. Three standard rotation policies exist:
StrategyHow it picks the next numberWhen to use
Round-robinCycles through numbers in order: 1 → 2 → 3 → 1 → 2 → 3. Produces perfectly even distribution.The right default for almost every campaign.
Least-usedAlways selects the number used fewest times. Recovers gracefully when the pool changes mid-campaign.Uneven contact lists, or pools that grow/shrink mid-run.
RandomPicks uniformly at random. Same average distribution, but can create uneven bursts.Only for specific adversarial contexts where carriers fingerprint round-robin patterns.
In Vobiz these are the Round Robin, Least Used, and Random rotation strategies, available when the caller-ID strategy is set to Pool. See Caller ID Strategy.

The daily cap: the most important reputation knob

Carrier analytics systems specifically watch 24-hour windows. A number placing 800 calls today and zero yesterday is far more suspicious than one placing 50 calls per day every day for a month.
Campaign typeDaily cap
Compliance-sensitive (financial, healthcare)25-40 calls / number / day
General B2C outreach50-100 calls / number / day
Internal notifications, low scrutiny200+ calls / number / day
Two caps work together, and you usually want both:
  • Daily cap - limits how many times a single number is used within one 24-hour window. Addresses burst risk.
  • Lifetime cap - limits total uses of a number across the whole campaign. Addresses cumulative wear.
Vobiz exposes both as Max calls / day and Max calls (lifetime) per number, applied to every number in the pool. The daily ceiling resets at midnight in the campaign’s timezone. See Limits.

Cooldown: preventing burst patterns

A cooldown period means: after a number is used for one dial, it cannot be used again for at least N seconds. This smooths timing so it looks naturally spaced rather than machine-gunned.
Throughput math
Effective rate per number  =  (1 / cooldown_seconds) calls/sec
Aggregate throughput       =  (pool_size / cooldown_seconds) calls/sec
A 10-second cooldown across a 20-number pool gives 2 calls per second aggregate throughput - well under any reasonable daily cap, and the timing pattern appears naturally spaced to carrier analytics systems.
Cooldown and rotation reinforce each other: rotation spreads volume across numbers, cooldown spreads it over time. Use both. In Vobiz this is the Cooldown (sec) field. Pace overall throughput separately with CPS and Max Concurrent - size them with the CPS Calculator.

Retry policy: persistence without harassment

Not everyone answers the first time. A retry policy decides how many times - and how far apart - to try again before giving up. Escalating delays plus a hard retry window keep a campaign persistent without hammering unreachable numbers indefinitely.
Use caseAttemptsDelaysWindow
Appointment reminder230 min, 60 min1 day
Sales outreach360 min, 240 min, 1440 min7 days
Emergency notification45 min, 15 min, 30 min, 60 min1 day
Soft renewal reminder11440 min3 days
Vobiz Retry Attempts accepts 0-5 (default 2) and uses an exponential-backoff schedule for contacts that didn’t answer - busy, no-answer, or network error. See Retry Attempts.

The campaign state machine

A campaign is a long-lived object that moves through well-defined states. A good manager makes the current state - and the reason for it - explicit at all times.
StateMeaning
DraftCreated; no contacts uploaded yet.
ReadyContacts uploaded, waiting for start.
RunningActively dialling. Sub-states: active, idle, stalled.
PausedTemporarily stopped - the reason must be exposed: manual, window closed, pool exhausted, failures.
CancelledTerminal stop. Data preserved permanently.
CompletedEvery contact reached a terminal state.
ArchivedHidden from default list views. Data fully preserved.
In the Vobiz Console, the live controls map onto these transitions:
  • ⏸ Pause - stop placing new attempts; calls already in flight finish normally.
  • ▶ Resume - restart from where the pause left off.
  • ⏹ Abort - cancel remaining attempts permanently; completed attempts stay in the logs.
Campaigns are never hard-deleted. Every call placed carries the campaign ID - hard-deleting orphans historical reports, audit trails, and billing reconciliation. Vobiz preserves completed attempts in Campaign Call Logs even after a campaign is aborted.

A worked example

A 5,000-contact retention campaign for a SaaS business. Goal: complete within a standard work week without burning numbers.
SettingValue
Pool25 numbers, Round Robin rotation
CapsLifetime 500 / number; daily 100 / number
Cooldown30 seconds
Window9am-6pm recipient timezone
Concurrency8 simultaneous calls
Retries2 attempts, 120 min and 480 min delays, 5-day window
This delivers 2,500 calls per day - the 5,000-contact list completes in 2 working days. Each number averages 100 calls per day, well under spam thresholds, and nothing rings outside business hours.

How Vobiz handles all of this

Building this from scratch is a multi-month engineering project with a long tail of edge cases that only surface in production. Vobiz Campaigns ships with all of it built in:

Three rotation strategies

Round Robin, Least Used, and Random across a pool of your DIDs - plus Single and Sticky caller-ID modes.

Per-number caps

Max calls per day and lifetime ceilings, applied to every number in the pool.

Timezone-aware windows

Restrict dialling to compliant hours in the recipient’s local timezone.

Configurable retries

0-5 attempts with exponential backoff for unanswered contacts.

Cooldown + concurrency gating

Per-number cooldown plus account-wide CPS and Max Concurrent pacing.

Full state machine

Pause / Resume / Abort with explicit reasons and permanent CDR preservation.
With ~80 ms media latency, outbound reach across 130+ countries, and native integrations with Vapi, Retell AI, ElevenLabs, Pipecat, and more.

Start building on Vobiz

Create your first outbound campaign - pool rotation, caps, cooldown, windows, and retries in one form.

Campaigns (Console)

The full field-by-field walkthrough of launching a campaign.

Number Utilization

Number-series selection, daily volume limits, and spam reduction.

CPS Calculator

Size CPS, concurrency, and daily volume before launching.

FAQs

Software that takes a list of contacts, dials each one systematically, and manages the full lifecycle - including which number to dial from, when to dial, how to handle unanswered calls, and how to prevent phone numbers from being flagged as spam.
Carrier analytics engines (Hiya, First Orion, TNS) score outbound numbers based on calls per number per day, burst density, answer rates, and geographic patterns. When a number makes too many calls too quickly, it earns a spam label that suppresses answer rates by 40-70%.
A daily cap limits how many times a single number can be used within one 24-hour window. A lifetime cap limits how many total times a number is used across an entire campaign. Both are necessary - daily caps address burst risk, lifetime caps address cumulative wear.
For most use cases, 2-3 retry attempts with escalating delays (60 minutes, 240 minutes, 1440 minutes). A retry window prevents retries from running indefinitely on unreachable numbers.
Yes. Vobiz provides DID numbers and outbound calling reach across 130+ countries. Timezone-aware daily windows ensure calls only fire within compliant hours in the recipient’s local timezone.