> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telli.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Auto-dialer & Calling Strategy

> Reach out to contacts automatically. Pick a strategy, retry intensity, and dialer windows that fit your campaign.

The auto-dialer is telli's built-in system for automatically calling contacts until they're reached. Once you add a contact to the dialer, telli will keep trying, spacing calls intelligently, respecting calling hours, and stopping when the person answers or when your configured limits are hit.

Think of it as a persistent, polite assistant that never forgets to follow up.

***

## When to Enable It

You enable the auto-dialer **per agent** in the Agent Builder under **Call Control → Auto-Dialer**. Flip the toggle on, and every contact assigned to that agent enters the calling loop automatically.

<Tabs>
  <Tab title="What it does">
    * Repeatedly calls contacts who haven't been reached yet
    * Respects your dialer windows (calling hours) and timezone settings
    * Tracks every attempt and adjusts timing based on your chosen strategy
    * Stops automatically when the contact is reached or limits are exceeded
  </Tab>

  <Tab title="What it doesn't do">
    * It doesn't retry inbound calls. If the first interaction was inbound, the dialer won't retry
    * It doesn't call contacts who are already on an active call
    * It doesn't override "call me later" requests from contacts. It respects those
    * It doesn't replace your agent's conversational logic. It only controls *when* and *how often* calls happen
  </Tab>
</Tabs>

***

## Smart Calling vs. Defined Intervals

You have two dialing strategies to choose from:

<Tabs>
  <Tab title="Smart Calling">
    The system automatically spaces out call attempts based on how many days have passed. Early on, it calls more frequently. Over time, it backs off gradually. No manual configuration of intervals needed.

    **When to use:**

    * General outreach, sales - it adapts automatically
    * Long-running nurture campaigns - with Conservative intensity
  </Tab>

  <Tab title="Defined Intervals">
    You specify exact wait times between attempts. For example, "retry after 20 minutes, then 60 minutes, then 150 minutes." The number of intervals you define is the total number of retry attempts. Once the list is exhausted, the system stops.

    **When to use:**

    * Urgent, time-sensitive callbacks - precise control over timing
    * Short-burst campaigns (same day) - with tight spacing
  </Tab>
</Tabs>

***

## Smart Calling Intensity

Smart Calling has three intensity modes that control how aggressively the system follows up:

<Tabs>
  <Tab title="Aggressive">
    **Best for: hot leads, time-sensitive outreach** where reaching the contact quickly matters most.

    * **Day 1:** Up to **3 attempts**, roughly 1 hour apart
    * **Days 2–10:** **2 calls per day** (morning + afternoon, or afternoon + evening)
    * **Day 11+:** **1 call per day**
    * Never drops to weekly
  </Tab>

  <Tab title="Moderate (Default)">
    **Best for: general-purpose outreach** - a balanced approach without being pushy.

    * **Day 1:** Up to **3 attempts**
    * **Days 2–3:** **2 calls per day**
    * **Days 4–10:** **1 call per day**
    * **Day 11+:** **1 call per week** (picks a random weekday)
  </Tab>

  <Tab title="Conservative">
    **Best for: nurture campaigns, follow-ups, or sensitive contacts** where you want to stay in touch without overwhelming them.

    * **Day 1:** Up to **2 attempts**
    * **Days 2–3:** **1 call per day**
    * **Day 4+:** **1 call per week**
  </Tab>
</Tabs>

<Note>
  Within each phase, the system randomizes the exact call time within your dialer window so calls don't all land at the same minute.
</Note>

***

## Max Retry Days and Max Attempts

These are your **stop conditions** - safety nets that prevent the dialer from calling forever. You must set at least one (and can set both):

* **Max retry days** - The system stops trying after this many calendar days since the first attempt. Default is **7 days**. Range: 0–365.
* **Max attempts** - The system stops after this many total call attempts. Range: 1–100.

<Warning>
  **When both are set, whichever limit is hit first wins.** For example, "stop after 14 days or 15 attempts, whichever comes first."
</Warning>

For **Defined Intervals**, the max attempts is implicitly the number of intervals you've defined - no separate setting needed.

***

## Dialer Windows

Each weekday gets its own schedule:

* **Enabled/disabled** toggle - disable a day entirely (e.g., no calls on weekends)
* **Time window** - start and end time (e.g., `09:00` to `18:00`)

**Default:** Monday–Friday, 9:00 AM to 6:00 PM. Weekends disabled.

<Note>
  You can set dialer windows at two levels:

  1. **Account level** (Settings → Dialer) - applies to all agents by default
  2. **Agent level** (Agent Builder → Call Control) - overrides the account default for that specific agent
</Note>

### No-Call Days

You can also add **no-call dates** - specific days where no calls should go out (holidays, company events, etc.). These are set at the account level with an optional label (e.g., "Christmas Day").

### How Timezone Overrides Work

<Info>
  **The dialer windows are interpreted in the contact's timezone, not yours.**
</Info>

The system resolves the timezone in this order:

1. **Contact's timezone** - if set and valid, this is used
2. **Account's timezone** - fallback when the contact has no timezone set

So if your account is in Berlin (`Europe/Berlin`) and a contact is in New York (`America/New_York`), the 9:00–18:00 window means 9 AM to 6 PM *New York time* for that contact. This ensures you're never calling someone at 3 AM their time.

If a scheduled call falls outside the window, the system automatically pushes it to the next available slot with a small random buffer (up to 15 minutes) so all your calls don't fire at exactly 9:00 AM.

***

## What Counts as "Reached"

<Info>
  This is the single most important concept: **A contact is "reached" only when the call status is `COMPLETED`** - meaning they answered, had an actual conversation with the agent, and the call ended normally.
</Info>

Everything else triggers a retry:

| Status                  | What Happens                                                                                                      |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **Completed**           | Contact reached. Loop ends. Contact status → `reached`.                                                           |
| **Voicemail**           | Not reached. System retries. (Your agent can optionally leave a voicemail message.)                               |
| **Not Reached**         | Phone rang, no answer. System retries.                                                                            |
| **Answered**            | Contact answered but asked to be called back later ("call me later"). System schedules a callback.                |
| **Error**               | Technical issue. System retries - but gives up after **2 consecutive errors** to avoid hammering a broken number. |
| **Ringing / Initiated** | Call started but didn't connect. System retries.                                                                  |

### Permanent Failures (No Retry)

<Warning>
  Certain SIP error codes cause the system to **immediately give up** on a contact - these indicate the number itself is invalid:

  * **404** - Number not found
  * **482** - Loop detected
  * **483** - Too many hops
  * **484** - Address incomplete
</Warning>

***

## Manual Calls and the Call Loop

You can trigger a call manually at any time from the UI or API. Here's how it interacts with the auto-dialer:

<Tabs>
  <Tab title="Contact already in dialer">
    * The manual call fires immediately, **bypassing the dialer window**
    * The existing call loop is updated (agent, call details, etc.)
    * After the manual call, the loop continues as normal based on the outcome. If the contact wasn't reached, the dialer picks back up with its regular schedule
  </Tab>

  <Tab title="Contact not in dialer">
    * A new call loop is created
    * The call fires immediately
    * If the auto-dialer is active for that agent, retries will follow the configured strategy
  </Tab>
</Tabs>

<Tip>
  In short: manual calls never conflict with the dialer. They slot right in.
</Tip>

***

## Common Patterns

<Tabs>
  <Tab title="Hot Leads">
    **Respond fast, follow up aggressively**

    * **Strategy:** Smart Calling
    * **Intensity:** Aggressive
    * **Max retry days:** 3–5
    * **Max attempts:** 10–15
    * **Why:** You want to reach them while interest is high. Multiple calls on day 1, twice daily for the next week.
  </Tab>

  <Tab title="Follow-Ups">
    **Balanced persistence**

    * **Strategy:** Smart Calling
    * **Intensity:** Moderate (default)
    * **Max retry days:** 7–14
    * **Max attempts:** 10–20
    * **Why:** Balanced approach. Persistent but not annoying. Good for appointment confirmations, onboarding calls.
  </Tab>

  <Tab title="Nurture Campaigns">
    **Stay in touch over weeks**

    * **Strategy:** Smart Calling
    * **Intensity:** Conservative
    * **Max retry days:** 30–60
    * **Max attempts:** 8–12
    * **Why:** Light touch over a long period. One call per week after the first few days. Great for re-engagement or long sales cycles.
  </Tab>

  <Tab title="Same-Day Urgent">
    **Time-sensitive callbacks**

    * **Strategy:** Defined Intervals
    * **Intervals:** `[15, 30, 60, 120]` (in minutes)
    * **Why:** You need to reach them today. Four attempts over \~3.5 hours, then stop. No multi-day follow-up.
  </Tab>

  <Tab title="Appointment Reminders">
    **Scheduled touchpoints**

    * **Strategy:** Defined Intervals
    * **Intervals:** `[1440, 60]` (24 hours, then 1 hour before)
    * **Why:** Call the day before, then an hour before. Two precise touchpoints.
  </Tab>
</Tabs>

***

## Good to Know

* When you change dialer settings on an agent or account (strategy, intensity, windows), the system automatically recalculates the schedule for all active loops. You don't need to restart anything - changes take effect within seconds.
* Only **one active call loop per contact** is allowed at any time.
* The dialer scheduler runs every **10 seconds**, so there's minimal delay between a scheduled time and the actual call.
* Account-level changes to dialer windows apply to **all agents** that use the account default - a confirmation dialog reminds you of this in the UI.
