Auto-retry automatically redials a destination number when an outbound call does not connect with a live person. It applies to individual API-triggered calls and is also configurable per batch campaign. Retry settings determine what counts as a retryable outcome, how many times to reattempt, and how long to wait between attempts.
Retryable Outcomes
Not every call failure triggers a retry. The following outcomes are configurable as retry triggers:
| Outcome | Default Behavior | Description |
|---|
| No Answer | Retried | The destination rang but was not picked up within the ring timeout. |
| Voicemail | Configurable | The call reached an answering machine or voicemail system. You can choose to retry or treat voicemail as a final outcome. |
| Busy | Retried | The destination line was busy. |
| Failed | Not retried | The call could not be established (e.g., invalid number, carrier error). Failed calls are not retried as the same error is likely to repeat. |
| Completed | Not applicable | The call connected and ran. No retry is triggered. |
Voicemail detection uses DialNexa’s AMD (Answering Machine Detection) system. Detection accuracy depends on the voicemail greeting length and cadence. Short or unusual greetings may be misclassified.
Auto-retry settings are configured at two levels:
Per Call (API)
Batch Campaign
Pass retry settings in the retry object when calling POST /calls:{
"from_number": "+14155550100",
"to_number": "+16505550199",
"agent_version_id": "av_01hx...",
"retry": {
"max_retries": 3,
"wait_minutes": 30,
"retry_on_voicemail": false,
"retry_on_no_answer": true,
"retry_on_busy": true
}
}
Set retry rules in the batch configuration UI when creating a batch campaign. The same settings apply to all recipients in the batch. See Batch Calling for the full batch setup flow.
Retry Settings Reference
| Setting | Type | Description |
|---|
max_retries | integer | Maximum number of retry attempts. The first dial is attempt 1; retries are attempts 2 through max_retries + 1. Set to 0 to disable retries. |
wait_minutes | integer | Minutes to wait between retry attempts. Applies uniformly between all retries (not exponential). |
retry_on_voicemail | boolean | Whether to retry when voicemail is detected. If false, voicemail calls are marked final. |
retry_on_no_answer | boolean | Whether to retry when the call rings but is not answered. |
retry_on_busy | boolean | Whether to retry when the line is busy. |
How Retries Work
When an initial call ends with a retryable outcome:
- DialNexa waits the configured
wait_minutes interval.
- The call is redialed using the same
from_number, to_number, and agent_version_id.
- Variables and metadata from the original call are preserved across retries.
- If the retry also results in a retryable outcome and attempts remain, the process repeats.
- When
max_retries is exhausted or a non-retryable outcome occurs, the call is marked final.
Retries in Call History
Each attempt appears as a separate entry in Call History. All attempts for the same original call are linked by a common retry_group_id field. In the call detail view, a Retry History section shows all attempts in sequence with their outcomes and timestamps.
The parent call record (first attempt) shows a summary status:
| Summary Status | Meaning |
|---|
completed | At least one attempt reached a live person |
all_retries_exhausted | Max retries reached with no live connection |
voicemail_final | Reached voicemail and retry on voicemail is disabled |
Concurrency Impact
Retry calls consume workspace concurrency slots the same as initial calls. If you have a large batch with aggressive retry settings, peak concurrent calls may be significantly higher than the number of first-attempt calls active at any time. Monitor concurrency usage in your workspace dashboard. See Concurrency and Limits.
Set wait_minutes high enough that retry calls are spread across time rather than all firing at once. For 1000-recipient batches with 2 retries each, a 60-minute interval prevents a concurrency spike at the T+60 mark.