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

# How Journeys Decide When to Call and Text

> How Simple AI Journeys times each call and text: step timing, calling hours by time zone, contact limits, retries, callbacks, and when a journey ends.

Every time something happens to a contact (they enroll, a call ends, they reply, their record changes), Journeys works out again what is allowed next. The same facts always produce the same plan, so the board can show exactly why a contact is waiting.

## When a Step Is Due

| Timing | Due |
| - | - |
| On entry | As soon as the contact enters the stage |
| After entry | A number of days after entering the stage, at a time of day |
| From the anchor | A number of hours before or after the record's date, at a time of day |
| After the previous step | A number of minutes, hours or days after the previous step actually went out |
| At a date | At a fixed date and time |

Times of day are in the contact's time zone. A step timed "after the previous step" waits for that step to go out. If the previous step can never go out (for example, the contact opted out of texts and it was a text), the later step is timed from when the previous one would have gone.

## What Can Hold a Step Back

A step that is due still goes out only if:

* the goal isn't met and no teammate has taken the contact over;
* the contact isn't snoozed and hasn't opted out of the step's channel;
* the step hasn't already been answered or replied to, and it has attempts left;
* no call to the contact is still connected and no callback is waiting;
* the step's "only if" conditions are true;
* it's inside the calling window, on an allowed day, in the contact's time zone (never outside 8 AM to 9 PM);
* it's within the contact limits: calls per 24 hours, calls and texts per day and per 30 days, the journey's total, and the gaps between calls and texts.

The plan shows the first check a step fails and when it can try again. The contact waits until then on its own.

## Time Zones

Each contact's time zone comes from, in order of trust:

1. A zone a teammate confirmed.
2. A zone on the contact's record.
3. Their address.
4. Their phone number's area code.

When the zone is uncertain, Journeys only uses hours that are inside calling hours in every possible zone. That happens for an area code or state that spans two zones, or a number with no known location. For a contact who could be anywhere in the mainland US, that is noon to 8 PM Eastern with the default calling window.

## Retries

A step with several attempts tries again after its spacing. With **immediate redial** on, the second attempt goes right after an unanswered first call.

## Late Arrivals

If a contact enrolls after several timed steps have already passed, only the most recent one runs. Someone who enrolls on the morning of their appointment gets the morning-of call, not yesterday's reminder.

## Callbacks

A contact can ask to be called back at a time:

* in a text reply ("call me tomorrow after 3");
* on a call, even if they hang up right after;
* through a teammate, who schedules it from the contact's page.

The callback is placed at that time, ahead of the journey's other calls; texts can still go out meanwhile. It can go outside your calling window, but stays inside 8 AM to 9 PM on an allowed day, so with the defaults a Sunday callback waits until Monday. If nobody answers, it is tried once more 15 minutes later before the journey carries on. A journey needs a call step for callbacks.

## Replies and Opt-Outs

* A reply reaches the journey whose number the contact texted.
* A reply counts as reaching the contact, and can move them to a stage or meet the goal.
* In playbook mode, a reply that none of your conditions recognize marks the contact **Needs you** so a person can answer.
* **STOP** ends texts to the contact. If they have opted out of every channel the journey uses, their journey ends.

## When a Journey Ends for a Contact

| Reason | When |
| - | - |
| Goal met | The goal's conditions are true, or a teammate marked the goal met |
| Rescheduled | A goal condition that you set to end as rescheduled is true |
| Opted out | The contact opted out of every channel the journey uses |
| Total cap reached | The journey's total number of calls and texts is used |
| Every step used up | Every step of the last stage is finished without meeting the goal |
| Superseded | A newer record took over, for example a rebooked appointment |
| Cancelled | The journey was archived, your system cancelled it through the API, the record was removed or no longer names the contact, or the contact has no phone number |
| Ended by a person | A teammate ended it |

A contact whose journey ended isn't enrolled again by later updates to the same record.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.