Scaling & Concurrency
When you scale from “a few calls” to “lots of calls”, four things matter:- Your scheduling limits (campaign caps)
- Concurrency controls (how many calls happen at once)
- API rate limits (429 responses)
- Idempotency & deduplication (safe retries for API + webhooks)
Who this is for
- Teams launching outbound campaigns or high-volume automations.
- Developers designing a reliable integration (no duplicate side effects).
Understand the two layers of limits
1) Campaign-level limits (batch engine pacing)
Campaign requests include:max_concurrent_calls: how many calls can be in-flight at once for that campaignmax_calls_per_day: a daily cap for how many calls the campaign will place- Schedule parameters that determine when contacts are eligible:
timezoneworking_daysstart_time/end_time
2) API-level limits (your integration throughput)
Even if a campaign schedules successfully, your integration still might hit rate limits if you poll too aggressively or trigger too many requests at once.- On 429, handle retries using backoff.
- Use idempotency keys for create/write endpoints so retries do not create duplicates.
Configure concurrency safely (batch campaign example)
Here’s an example payload that sets both pacing controls:Pause/Resume to adjust without breaking history
If you need to reduce load:- Use Pause to stop future scheduled calls from firing.
- Use Resume to continue when things look good again.
Reliable retries: API and webhooks
API writes: use X-Idempotency-Key
For create/update/write operations, always send:
X-Idempotency-Key: <uuid>
Webhook receivers: dedupe by event ID
Your webhook endpoint may receive duplicates (for example after retries). Implement idempotency by:- Persisting the webhook
id/event_idyou’ve processed. - Ignoring duplicates.
Troubleshooting scaling problems
If you see unexpected behavior, check:- Are you sending a unique
X-Idempotency-Keyon every retry? - Are you respecting rate limits (429)?
- Are you increasing
max_concurrent_callsgradually? - Are you using webhooks (push) instead of polling too frequently?
Next steps
- Learn how to build campaigns: Batch Calls & Campaigns Overview
- Use webhooks safely: Webhooks
- Handle 429s: Rate Limits

