Caller intent
to follow-up, automatically.
When a caller asks your Retell agent for a callback — on a voice call or in an SMS chat — redialer.io captures it, schedules it for the right local moment, dials (or sends the message) at that moment, classifies the outcome, and retries until the line is clear. This is what happens between intent and connection.
When the caller says when, we know what they mean.
People don't say timestamps. They say “tomorrow at 3pm”, “in two hours”, “after lunch”. We parse all of it into one scheduled row.
-
Specific times
“Tomorrow at 3pm”, “next Monday at 10”, absolute dates. Resolved against the caller's clock.
-
Relative times
“In two hours”, “later this afternoon”, “tonight”. Anchored to when the call ended.
-
Vague times
“After lunch”, “first thing tomorrow”, “in the morning”. Normalized to a defensible local hour.
-
Global formats
E.164 phone numbers, ISO timestamps, any locale. We don't require your agent to format anything.
Right local time, every time.
Caller-local clock, DST handled, quiet hours respected. We don't drop requests that land in your no-dial window. We move them to the next open minute.
-
Caller-local timezone
Resolved from the caller's number, with agent defaults as a fallback when the caller doesn't state one. Your server's clock is irrelevant.
-
DST-aware
Caller crosses a DST boundary between the request and the dial-back? Already handled.
-
Quiet hours and quiet days
Set a no-dial window in hours and full calendar days. Requests inside either get shifted to the next open minute. We move them, we don't drop them.
-
Workspace defaults, per-agent overrides
Set it once at the workspace level. Override on any single agent without re-typing the rest.
Same agent, same trunk.
We don't sit between you and Retell on the call. We fire the outbound through your same Retell agent, with chain context injected as dynamic variables so your agent knows what attempt this is.
-
Your Retell agent makes the call
No separate caller experience. No swapped voice. The same agent that took the inbound is the one calling back.
-
Chain context as dynamic vars
Your agent sees the attempt number, the chain max, and whether this is the final try. Use it in your prompt however you want.
-
Manual override anytime
Operator can fire REDIAL NOW from the activity feed. Same dial, same context, no waiting for the scheduled moment.
Every outcome, captured.
Voicemail isn't a connect. Busy isn't a refusal. We classify every dial outcome, and that classification drives what happens next in the chain.
Retry until success, or until the line is clear.
Voicemail on attempt 1 doesn't end the chain. We retry up to your configured max, preserving per-attempt history. On the final attempt, GUARD ZERO fires: your agent gets a flag and a prompt snippet to tell the caller honestly that this is the last try.
-
Per-trigger retry delays
Each outcome gets its own delay before the next attempt. Voicemail waits longest, busy retries soonest, silent conversations wait a day. Sensible defaults, overridable per agent.
-
Configurable chain max
Plan ladder: free 1, starter 3, pro 5, scale 10. Lower per agent if you want. The most aggressive setting still feels measured to the caller.
-
Per-attempt history preserved
Every outcome stored on the chain row, queryable in the activity feed. Voicemail on attempt 2 stays visible even after attempt 3 connects.
-
GUARD ZERO final-attempt prompt
On the last attempt, your agent receives an is_final_attempt flag plus a snippet that tells the caller verbatim: this is the last try, want to continue now?
Every retry rule, your call.
Each outcome is its own switch with its own wait time. Quiet hours, quiet days, and the default timezone live as workspace defaults. Override on any single agent without re-typing the rest.
-
Per-trigger retry rules
Voicemail, no answer, busy, technical error, conversation silent. Each one has its own on or off and its own wait time before the next dial.
-
Voicemail and IVR detection
Classified automatically. Treat it as a retry trigger instead of a connect, or turn detection off if your trunk handles it differently.
-
Quiet hours and quiet days
Block by hour window and by full calendar day. Sundays off? Statutory holidays? Set them once at the workspace.
-
Workspace defaults on every plan
Set timezone, quiet hours, retry triggers, and limits once at the workspace. Every agent inherits.
-
Per-agent overrides on Pro and Scale
Need one agent to behave differently? Higher-tier plans unlock per-agent overrides so you can change only the rows that need to differ, without re-typing the rest.
-
Max attempts per plan
free 1, starter 3, pro 5, scale 10. On Pro and Scale you can lower it per agent to be more conservative on a specific line.
Your tools, intact.
Drop your existing webhook URL into redialer.io and we forward every Retell payload there. Same structure, your fields untouched. We add a few of our own alongside (attempt number, chain context) but never modify or drop yours.
Signature-verified at the door. Per-agent URL.
Same structure, your fields intact, our fields alongside.
Same trunk, same agent, chain context as dynamic vars.
Visibility and control, when you need it.
The activity feed is the operator's home. Filters across view, date, agent, and outcome. A detail panel for every callback. Direct actions when you need to step in.
-
Chain-grouped activity feed
Attempts 1 through N for the same caller show together, not scattered across the timeline.
-
Outcome filter spans the chain
Filter to VOICEMAIL and you see every chain where at least one attempt hit voicemail. Not just the most recent dial.
-
REDIAL NOW & cancel
Fire a callback immediately from any row, or cancel a scheduled one before it dials. Audit log records the actor and reason.
-
Per-callback detail panel
Full payload, transcript link, chain history, retry decisions, the exact dynamic vars we sent to Retell on the dial.
Read-only, signed, encrypted.
Your Retell API key is read-only on our side. We never write to your Retell account. Every webhook we deliver is signed. Sensitive data is encrypted at rest with the key material held outside the application database.
-
Read-only Retell access
We list and read your agents to verify configuration. The Boolean and the webhook URL are changes you make in your Retell dashboard.
-
Per-agent webhook URLs
One signed URL per agent. A leaked URL only affects one agent.
-
Encrypted at rest
API keys and caller PII are encrypted at rest. Decryption keys live outside the application database.
-
Rotate or disconnect anytime
Replace your API key whenever you want, or disconnect entirely. We drop all derived state on disconnect. No shadow data.