# Call limits and calling hours

How often Voice Logica will call the same person, and at what hours. These rules protect the people you call (and your number's reputation with carriers). They apply to **outbound** calls only. People calling you are never limited.

## Calling hours

- Outbound calls go out only between **09:00 and 21:00**, in your **company's country** time (Greek time for a company in Greece).
- Single calls (API, workflows, scheduled calls) also skip **Saturday and Sunday**.
- A call asked for outside these hours is not lost. It is **scheduled** for the next allowed time, and the API answers `"scheduled": true` with `scheduleTime`.
- [Campaigns](https://docs.voicelogica.ai/outbound-calls/campaigns/) call only inside their own **schedule days and hours**, and never outside 09:00–21:00.
- Transfers and calls a person places from the apps or a desk phone are not limited.

API requests can bypass the hours with `overrideTimeRestriction: true` and the weekend rule with `overrideDayRestriction: true`. Calling people at night or on weekends can break consumer-protection law in your country. Use these only for people who asked to be called then.

## Single calls: at most 3 a day per number

Every call placed one at a time (the [API](https://docs.voicelogica.ai/outbound-calls/api/), a workflow, a scheduled call) is protected **by default**. For each phone number, per day:

| Rule | Limit | If you go over |
|---|---|---|
| Calls that went through | **3** | `daily_call_limit_reached` |
| Failed attempts (no route, rejected) | **3** | `failed_call_limit_reached` |
| Time between calls that went through | **1 hour** | `cooldown_period_active` |
| Calls to the same number at the same time | **1** | `call_already_in_progress` |

- Calls the person makes to you do not count.
- A callback the person asked for ("call me at 7") is always made: it skips these limits and the campaign max retries. Calling hours still apply.
- Requests that were refused do not count either.
- The day resets at **midnight UTC** (02:00 or 03:00 in Greece).
- A refused request answers HTTP 429 (409 for a call already in progress), with `details.retryAfterSeconds`, `details.nextAllowedAt` and a `Retry-After` header. Wait until then. Don't send it again in a loop.
- An API request can turn these limits off with `useAntiHarassmentProtection: false`. Do that only for numbers that belong to you or people who expect the calls.

## Campaigns: how many times one person is called

Campaigns don't use the 3-a-day rule. You decide how often each person on the list (each lead) is called, on the campaign's **Stages** tab.

<Aside type="tip" title="In short">
- **Nobody answers:** we call again, up to the number of **retries** you set, with the wait you set between calls. 3 retries means up to 4 calls.
- **Someone answers but it is not a yes or a no yet:** the **Try later** stage calls again later (up to 4 more times, every 5 days, unless you change it).
- **One limit per person:** both settings share it. The most calls anyone gets is the first call plus the larger of the two numbers, not the two added together.
- **"Call me tomorrow at 6"** always happens, even when the calls are used up.
- Calls go out only on the campaign's days and hours.
- **Never too often:** whatever the settings, a person is not called again within 30 minutes of the last call, and no more than 3 calls are answered in 24 hours.
</Aside>

### When nobody answers

Open **Stages** → **When nobody answers** and set how many times to call back and how long to wait between calls.

- "Nobody answered" means a busy line, voicemail, no answer, or a call that did not connect. A number that does not exist is not called again.
- **Retries** (0 to 10, default **3**) are the calls *after* the first one. 3 retries = up to 4 calls in total. 0 = one call only.
- **Wait between calls:** 1 hour to 4 weeks, default **4 hours**.

### When someone answers

After each answered call the AI picks the stage that fits how the call went, for example *Succeeded*, *Failed* or *Try later*. A stage set to **Try again** calls the person again later. You set **Calls on this stage** (1 to 10) and the wait (30 minutes to 1 week). **Calls on this stage** includes the call that put the person on the stage. Example: *Try later* set to 5 = up to 4 more calls, every 5 days. Someone who declines is closed as **Cancelled** and not called again.

### Both settings share one limit

Nobody is called more than **the first call + the larger of the two numbers**: the retries under *When nobody answers*, or the highest **Try again** count. The two numbers are not added.

| Retries | Try later | Most calls one person can get |
|---|---|---|
| 3 | 5 | **6** (1 + 5), not 9 |
| 3 | 2 | **4** (1 + 3) |
| 0 | 5 | **6** (1 + 5) |

Unanswered calls and *Try later* calls come out of the same allowance. Someone who did not answer three times has fewer *Try later* calls left. With a *Try later* stage, even 0 retries can mean more than one call to someone who never answers. To call people less, lower both numbers.

Each call counts **once**, however it ends. If an answered call drops, we call back about a minute later. That call-back counts as one of the person's calls, and it is not made once their calls are used up.

### Extra numbers and "call me at 6"

- **More than one number:** if the first number is not answered, we try the next one about a minute later. That does not use up a retry; the wait starts once every number was tried.
- **The person asks for a time** ("call me tomorrow at 6"): that call always happens, even when the calls are used up, inside the calling hours and the campaign's days and hours. It still counts as one of their calls, so afterwards there may be none left. If they asked to be called back but gave no time, we call again after the wait you set (2 days on appointment campaigns).
- The **Schedule Callback** tool is something else: it creates a callback task for your team and does not place the campaign call. Its **Max callbacks per caller** (1 to 3) limits those tasks, not campaign calls. See [Tools & Workflows](https://docs.voicelogica.ai/agent-configuration/built-in-tools/).

### Calls wait for the campaign's hours

Every retry and callback goes out only on the campaign's **Schedule** days and hours. One that falls outside them is not lost: it goes out when they next open. Example: hours 09:00–20:00, wait 4 hours, unanswered call at 18:00. The next call goes out at 09:00 on the next calling day.

### Never too often for one person

On top of the settings above, a campaign never calls the same number:

- within **30 minutes** of the last outbound call to it (answered or not, from any campaign or call of your company);
- after **3 answered calls** in the last 24 hours.

The person is not lost: their call waits and goes out as soon as it is allowed again. Callbacks the person asked for and the redial after a dropped call are not held. **Allowed test numbers** skip this too.

### Changing the settings while the campaign runs

You can change the retries, the wait and the stages at any time. The change applies within seconds:

- People already waiting for a call at a set time keep that time. The new wait applies after that call.
- Fewer retries: people who already had that many calls are not called again.
- More retries: people already marked **All attempts used** stay closed. To call them again, add them to the campaign again.

### How many times each person was called

In the campaign's leads table, **Call attempts** shows the calls made to each person so far. The status shows **Retry scheduled** while they wait for the next call and **All attempts used** when no calls are left. Open a lead to see each call and its stage.

### A message when the calls run out

Under **When a lead runs out of calls**, choose an **SMS**, an **email**, or both, and for an SMS the sender (**From**: *Automatic* uses your agent's SMS sender or your company's own verified sender). It is sent **once** per person when they reach **All attempts used**: the call-backs or a stage's own call limit ran out without a result, also if the person picked up and hung up. It goes out within the campaign's calling hours (a lead that runs out of calls in the evening gets it when the next calling window opens), never to a number that asked not to be called, and not if an appointment was booked on one of their calls.

<Aside type="caution">
10 retries 1 hour apart can mean **11 calls to the same person in one day**. For people who did not ask to be called, keep retries at 2–3 and the delay at 4 hours or 1 day.
</Aside>

Numbers in the campaign's **Allowed test numbers** skip every limit. Use that only for your own phones while testing.

## Opt-out is permanent

When someone asks not to be called again, their number is marked opted out:

- No agent or campaign of your company calls it again (`callee_opted_out`).
- Their campaign leads are parked, in every campaign, and any calls already scheduled for them are cancelled right away.
- The opt-out is matched on the number itself, so every lead with that number (in any stored form) is covered, and re-adding or re-uploading it will not call them.
- Don't re-add them as a new contact or in a new campaign.

Blocking a contact in **Contacts**, or merging a number into an opted-out one, parks their leads the same way.

## Blocked contacts

Block a contact in **Contacts** when that person should only talk to your team, never to an AI agent. Their calls to a number an agent answers are declined before the agent picks up (SIP 603 Decline), so your carrier or phone system can send them to your team instead. No agent or campaign calls them (`callee_opted_out`, reason `contact_blocked`). Calls routed to a user or user group, and calls your team places, are not affected. Unblock the contact to undo it.

## Do-not-call registry (Μητρώο 11)

Numbers on your company's [do-not-call registry](https://docs.voicelogica.ai/outbound-calls/do-not-call-registry/) are never called either (`callee_opted_out`, reason `do_not_call_registry`), and their campaign leads are set to Do not call.

## Deleting or erasing a lead stops its calls

Opting out is not the only thing that stops a campaign from calling a lead. Deleting the lead and erasing the person's data each cancel the calls already scheduled for them, too:

- **Delete a lead** - one lead, several at once, or by deleting the whole campaign - and the calls it had scheduled are cancelled. A call already queued for a lead that no longer exists is dropped instead of placed.
- A **data-erasure (GDPR) request** cancels the person's scheduled calls and removes their leads. If the person had opted out, their number stays suppressed, so a later add or upload will not call them.

## Common questions

**Can the agent call the same person 10 times in one day?**
Not with single calls: the limit is 3 calls a day to the same number, 1 hour apart. A campaign set to 10 retries with a 1-hour delay can. Set the retry delay so the calls are spread over days.

**Why was my outbound API call scheduled instead of placed?**
It was outside 09:00–21:00 or on a weekend in your company's country. The call goes out automatically at the `scheduleTime` in the response.

**I sent more calls than the dashboard shows. Where are the rest?**
They wait their turn. Your plan sets how many calls run at the same time, and a call takes its line for the whole ring and conversation, so extra calls queue and go out as lines free up. Under **Calls** on the dashboard, **waiting to be dialled** shows how many are queued now and **took place in this period** how many were actually made. The big number counts calls by when they were sent or retried, so a call queued yesterday and made today counts for yesterday. To get through a list faster, ask us for more simultaneous calls.

**I'm testing outbound calls on my own phone and hit the call limit. What do I do?**
Add your number to a campaign's **Allowed test numbers**, or send `useAntiHarassmentProtection: false` on your test API requests.

**I set 3 retries and Try later to 5. Why was one lead called 6 times?**
A campaign with stages has one limit per lead: the first call plus the larger of the two numbers, here 1 + 5 = 6. Unanswered calls and Try later call-backs both count toward it. To call fewer times, lower the **Try again** count on the stage as well.

**The lead had no retries left but was still called. Why?**
The person asked to be called back at a set time. A callback the person asked for always happens, within the calling hours and the campaign schedule. If they ask for a time outside the schedule ("call me tonight at 10"), the agent offers the nearest time inside it. It still counts as one of the lead's calls.
