The limits that actually bind on a campaign

Three concurrency ceilings, a schedule window, per-number pacing and a retry policy. Where each lives, and the four rules that surprise people.

Updated

This page is about the platform’s behaviour rather than any feature, and it is the one to read before a list gets long. Where we are more permissive than you would expect, that is said plainly.

The companion page for calls you receive is the limits on inbound calls, and the short version is that almost none of this applies there.

Concurrent calls

Three ceilings apply at once, and the lowest wins.

ScopeDefault
One workspace10 concurrent calls
One campaign5
The whole platform20

Three rules matter more than the numbers.

A cap above the platform ceiling has no effect. If the platform allows 20 and you set a workspace cap of 50, you have set 20. Raising a number already above the ceiling changes nothing, which is a frustrating way to spend an afternoon.

Zero means unlimited, not nothing. A cap of 0 disables enforcement for that scope. An empty value means “use the default”. They differ, and the one that looks like “off” is the one that removes the limit.

Caps are resolved once, at launch. Changing a cap does not reach a running campaign. Pause it and start it again if you need the new number to apply.

The schedule window

Set in the composer’s Schedule section. The summary line states it back: Starts …, Days: …, Windows: …, Timezone: … — or Send immediately when nothing is set.

Two behaviours to expect:

A campaign outside its window is Running, not paused. It has started, it is waiting, and it re-checks about once a minute. A campaign showing Running while placing no calls is usually this, and it is the single most common “nothing is happening” report.

A future start time is a sleep, not a delay in starting. Scheduling for next Tuesday starts the campaign now; it sleeps until Tuesday. So it exists, holds its resolved caps, and appears in your list from the moment you launch.

Advanced settings

Three controls here decide more than their placement suggests.

Retry policyNone, Manual or Scheduled, with up to N attempt(s), every N min, and a list of dispositions it is allowed to retry on:.

Restricting by outcome is what separates a polite second attempt from harassment. A no-answer is worth calling back. Someone who hung up on you is not, and neither is a disconnected number. A retry policy without an outcome list asks the platform to try everyone three times, including the people who already said no by hanging up.

Respect recipient timezone (8pm – 8am) — suppresses calls during the recipient’s night rather than yours. If you are calling across time zones this is the control you want, and it is easy to miss down here.

Auto-dial all on launch — off means the campaign is created and waits.

Per-number sending limits

Every outbound call and message is throttled per sending number, resolved most-specific-first: an override on the exact number, then patterns matching a country or area code, then a default. The composer surfaces the resolved pacing for the sender you picked.

Two honest notes. These are administered rather than self-served — not a setting in your workspace. And the defaults match what the platform did before per-number limits existed, so nothing changed for anyone when they shipped.

This is the limit that protects your sending reputation, which is why it is not yours to raise on a Friday afternoon.

Voice minutes and budget

Settings → Voice holds the Daily voice-minute budget, showing Used today, what is left, and when it resets. It reads Default: unlimited unless somebody set an override — so if you have never touched it, there is no daily cap.

When one is set and reached: “Daily budget spent — new calls are paused until …”, and calls are skipped rather than queued. It resets at 00:00 UTC, not your midnight — in the Americas your budget refills mid-afternoon, which reads like an outage that fixed itself.

Settings → LLM holds the Monthly budget with alerts as you approach it.

What we have not tested

The behaviour when a transfer to a human fails because nobody is available is not tested, and we are not going to describe it here. When we have tested it, this section will say what happens.