Classify before you retry
Not every non-success is retryable.Configure retries once, in the call
Setretry_config on the Make call API or the Create batch API rather than rebuilding retry logic in your own scheduler:
Respect the two limits that bite at scale
Concurrency
Your account has a floor and, optionally, a ceiling on simultaneous calls. Sub-accounts share one organization envelope, so one team’s campaign can starve another’s unless minimums are set.
Calling hours
Guardrails evaluate the recipient’s local time. A campaign spanning several countries will legitimately reschedule large portions of itself.
POST /call requests.
Monitor without polling everything
- Take results from webhooks as the primary channel — Get results with webhooks — and poll only for executions you never heard about.
- For a batch, read
GET /batches/{batch_id}/executionsrather than fetching each execution individually. It returns a bare array. - Treat only terminal statuses as final:
completed,no-answer,busy,failed,canceled,stopped,error,balance-low. - Watch the mix, not the total. A rising share of
failedin one country is a carrier incident; a rising share ofno-answeracross the board usually means the calling window drifted.
Before the next big campaign
Readiness checklist
Pre-launch verification
Control cost per call
Retries multiply spend
Call a contact list in bulk
How batches work

