Skip to main content
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:
OutcomeDefault BehaviorDescription
No AnswerRetriedThe destination rang but was not picked up within the ring timeout.
VoicemailConfigurableThe call reached an answering machine or voicemail system. You can choose to retry or treat voicemail as a final outcome.
BusyRetriedThe destination line was busy.
FailedNot retriedThe call could not be established (e.g., invalid number, carrier error). Failed calls are not retried as the same error is likely to repeat.
CompletedNot applicableThe 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.

Configure Auto-Retry

Auto-retry settings are configured at two levels:
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
  }
}

Retry Settings Reference

SettingTypeDescription
max_retriesintegerMaximum 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_minutesintegerMinutes to wait between retry attempts. Applies uniformly between all retries (not exponential).
retry_on_voicemailbooleanWhether to retry when voicemail is detected. If false, voicemail calls are marked final.
retry_on_no_answerbooleanWhether to retry when the call rings but is not answered.
retry_on_busybooleanWhether to retry when the line is busy.

How Retries Work

When an initial call ends with a retryable outcome:
  1. DialNexa waits the configured wait_minutes interval.
  2. The call is redialed using the same from_number, to_number, and agent_version_id.
  3. Variables and metadata from the original call are preserved across retries.
  4. If the retry also results in a retryable outcome and attempts remain, the process repeats.
  5. 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 StatusMeaning
completedAt least one attempt reached a live person
all_retries_exhaustedMax retries reached with no live connection
voicemail_finalReached 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.