Creating a policy
Policies belong to the account and are managed at Account Settings → Retry Policies in the Dashboard, or through the Retry Policies API. Each policy has a name (unique within the account) and: Rules — one per outcome, forno_answer, busy, voicemail (the call reached a voicemail box, with or without leaving a message) and failed. An outcome with no rule is never retried; a call that reached a person is never retried either.
Contact limits (
contact_policy) — hard caps per destination number, enforced across the whole account: Max calls per day (max_attempts_per_day, up to 50), Max calls per week (max_attempts_per_week, up to 200), and a Minimum gap between attempts (min_seconds_between_attempts). A call that would break a cap is refused when it is triggered, with 409 policy_violation, and a retry that would break one is cancelled instead of dialled.
When attempts run out (on_exhausted) — end (Stop quietly), webhook (Call a webhook), or notify_email (Send an email), with the URL or address in on_exhausted_target. See escalation.
Reschedule out-of-window calls (reschedule_out_of_window) — when the agent has calling hours and a call is triggered outside them, queue it for the next window instead of refusing it.
Assigning a policy
- Per agent: choose a Default retry policy in the outbound agent’s settings (Dashboard or Connect App), or set
defaultRetryPolicyIdthrough the Agents API. Every call that agent places follows it. - Per call: pass
retry_policy_idwhen you trigger the call. It overrides the agent’s default for that call only.
How a retry chain works
Each retry is a new outbound call that inherits everything that defined the original — number, agent, context, greeting, voicemail message, AMD and IVR settings, callback URL — and keeps its own transcript, recording and detection result.- The retry is created with status
scheduledand anext_attempt_at; it dials when that time arrives. attempt_numbercounts up from 1.parent_call_idpoints at the attempt before it androot_call_idat the first call of the chain, so you can group a chain in your own system. Yourmetadatais echoed on every attempt, with a reserved_telzino_retrykey carrying the same two values.- Each attempt fires your result webhook on its own.
- Reports → Outbound Calls shows the attempt number and, for a scheduled retry, when it will dial, with a Cancel button.
Stopping retries
- Opt-out. If the callee asks not to be called again — the agent is given a tool for exactly this on outbound calls, and the transcript is also checked for clear phrases such as “stop calling me” or “take me off your list” — the call is marked
opt_out_detected, every queued retry to that number is cancelled, and the result webhook reports it. Add the number to the suppression list to stop future campaigns as well; opting out does not do that on its own. - Cancel one scheduled retry: the Cancel button in the report, or
DELETE /v1/agents/{agentId}/outbound-calls/{callId}on a call whose status isscheduled(reference). - Cancel every scheduled retry to a number:
DELETE /v1/outbound-calls/queued?to_number=…, for do-not-call handling when all you know is the number.
When attempts run out
Withon_exhausted: webhook, Telzino POSTs one event to your URL when the last attempt of a chain ends without reaching a person:
notify_email, an email with the same facts is sent to the address you gave, from the account’s own configured email server. Delivery is best-effort and is not retried.