Parallel dialing (concurrency)
- Set a concurrency per campaign: how many calls run simultaneously.
- The effective limit is the lower of the campaign setting and your plan’s
max_parallel_calls. - Stale calls (stuck in ringing) are detected and freed automatically, so slots never leak.
Retry logic
Unanswered leads are retried automatically:- Max attempts (
retry_max) per lead (e.g. 3). - Delay between attempts (e.g. 120 minutes) — the retry lands at a different time of day, which measurably improves reach.
- A lead that answers stops being retried;
busy,no answer, andfailedoutcomes schedule the next attempt until the budget is exhausted. - The full attempt history is visible per lead.
retry_max is the hard ceiling for every retry policy below. The voicemail and goal options don’t create unbounded loops — once the additional attempts are exhausted, the lead is finalized with a terminal status (failed / no_answer).
Retry until a human answers
Enableretry_on_voicemail (default off) to continue calling until a human answers (skip voicemails). When on, a call whose AMD result is a machine category (machine-vm, machine-ivr, machine-unavailable) does not count as reached — the lead is rescheduled for another attempt instead of being marked done, up to retry_max. Only a human result (or an exhausted retry budget) finalizes the lead.
This is a retry policy. What the assistant actually does when it hits a machine — hang up silently or leave a message — is configured on the assistant (Settings → Conversation → Voicemail), not on the campaign.
Retry until the goal is achieved
Two settings work together to keep dialing a lead until a defined outcome is met:retry_until_goal(boolean, default off) — Continue calling until the goal is achieved. A lead is markedcompletedonly when its goal variable evaluates totrueon the finished call; otherwise the dialer schedules another retry (bounded byretry_max).goal_variable(text) — Variable that must be true to mark a lead as completed. The name of a boolean post-call evaluation field. Options come from the campaign assistant’s post-call analysis fields (thebooleanfields in its analysis config), plus the built-insuccessflag. The dialer reads the value from the finished call’s analysis data (or the call’ssuccessflag when the variable issuccess).
retry_until_goal is on but the goal variable never becomes true, the lead is retried until retry_max is reached and then finalized with a terminal status — the goal policy never overrides the retry ceiling.
Calling windows
Define when the campaign may dial, per weekday, in the campaign’s timezone — e.g. Mon–Fri 09:30–18:00. Outside the window the dialer pauses and resumes automatically.In Germany, unsolicited calls outside reasonable hours violate the UWG. Calling windows aren’t just a courtesy feature — configure them for every campaign that dials consumers.
Do-not-call (DNC)
A central workspace suppression list hard-blocks opted-out contacts before proactive marketing outreach:- Universal mode blocks every linked channel after an opt-out on any one channel.
- Per-channel mode blocks only the channel where the opt-out was received.
- Phone, email, contact identity, scope, source, reason, and the mode at opt-out are retained for auditability.
- Campaign dialing checks the active voice suppression immediately before dispatch and fails closed when consent status cannot be verified.
GET /api/v1/suppression-list— list active recordsPOST /api/v1/suppression-list— record an opt-outDELETE /api/v1/suppression-list/{id}— restore consent without deleting the audit history
AMD & voicemail
Answering machine detection classifies who picked up into one of five categories:
What the assistant does on a machine — hang up silently, or leave a message after the beep — is configured on the assistant (Settings → Conversation → Voicemail), not on the campaign.
The AMD result is stored on the call and feeds the lead status, so retry logic can distinguish “mailbox” from “never picked up”. Turn on
retry_on_voicemail to keep dialing until a human (rather than a machine-* category) answers.