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

# Journey version history

> View every saved version of a Journey, see exactly what changed, and restore an earlier version when you need to undo a change.

Journey version history saves a snapshot every time you edit a Journey's structure, so you can see what changed, when, and by whom, and restore an earlier version if a change needs to be undone. It works on both draft and live Journeys.

## Viewing version history

1. Open the Journey.
2. Click the **More Options** menu.
3. Select **Version history**.

The panel lists every saved version in reverse chronological order. Each entry shows:

* A short, auto-generated summary of what changed (for example, **Updated push notification step template** or **Added email step**)
* The timestamp
* Who made the change

Entries for **Set live** and **Archived** mark state changes rather than structure changes.

![Version history panel listing saved versions next to the Journey canvas](https://mintcdn.com/onesignal/JsppPZT99zfvb_ml/images/journeys/journeys-version-history.png?fit=max\&auto=format\&n=JsppPZT99zfvb_ml\&q=85\&s=fe5e9ff37349a73ed52bbe894e8d40a3)

Version history panel open alongside the Journey canvas

Any user who can open the Journey can view its version history, including read-only users. Restoring a version requires edit access.

## What creates a new version

Generally, any edit you make on a Journey creates a new version. There are some exceptions to this rule, listed below.

The following changes are not tracked as versions and can't be restored:

* Changing the Journey's schedule or start/end time
* Clicking **Set Schedule**
* Changing a Journey Goal or a message Goal
* Editing the content of a push, email, or SMS template or an in-app message used by a step
* Editing the definition of a segment used by the Journey

> [!NOTE]
>
> Version history tracks which template, message, or segment the Journey points to, not what's inside it. Swapping a step's template or in-app message for a different one does create a new version, for example **Updated email step template** or **Updated in-app message step template**, because the step now points to something else. Editing a template, in-app message, or segment outside the Journey isn't tracked, and restoring an earlier version uses its current content, not the content at the time that version was saved.

Adding, removing, or updating a step creates a new version, labeled with the action and the step type, for example **Added push notification step**, **Updated email step template**, or **Removed SMS/RCS step**. Moving steps creates a version labeled **Reordered steps**. Changing the Journey's name, description, or settings (entry rules, exit rules) also creates a new version, naming each modified setting.

## Viewing a historical version

Click any entry in the version history panel to open a read-only preview of the Journey as it existed at that point, including the full canvas and the settings of each individual step.

> [!NOTE]
>
> A historical preview shows the Journey's structure and settings, not its delivery stats. Message and Journey statistics are never snapshotted. The counters you see always reflect current totals, not the totals at the time that version was live.

## Restoring a version

**Draft and scheduled Journeys** can restore any version saved while the Journey was a draft or scheduled. **Live Journeys** can only restore versions saved after the Journey went live. Once a Journey goes live, its draft-era history is no longer eligible for restore.

Click **Restore** on a historical version, then click **Restore** again in the confirmation modal.

The Journey's content is replaced with the version you chose, and that becomes the current version. It's added to the top of the history with a **Restored from Vn** link back to the version it came from. The version you were on before restoring stays in the history, so you can restore it later if you need to undo the restore.

> [!NOTE]
>
> Users that are already in the Journey continue to flow through it. If the step they're on no longer exists, they move forward to the next matching step further in the flow.

> [!WARNING]
>
> Some Journey versions can't be restored. See [Restore limitations](#restore-limitations) for the full list.

Restoring never changes the Journey's schedule, since schedule changes aren't tracked by version history at all.

### Restoring a Journey with A/B tests

Version history saves which [A/B test](https://documentation.onesignal.com/docs/en/journeys-ab-testing.md) is on each step, so restoring a version can affect tests that are running now.

> [!WARNING]
>
> On a live Journey, restoring a version cancels any running A/B test that the version doesn't include. This happens when the version doesn't have the test's step, or has the step with no test or a different test. The test's remaining traffic goes to Control.

* **Deleting a step on a live Journey** cancels its running A/B test. If you later restore a version that includes the step, the step comes back with the canceled test in its A/B test history. The test doesn't resume. Start a new test on the step to keep testing.
* **Deleting a step on a draft Journey** leaves its A/B test untouched. Restoring a version that includes the step brings back the step and its test.
* **Completed A/B tests** stay completed. Restoring a version saved while a test was still running doesn't restart it.
* **A/B test results** aren't reset or changed by a restore.

## Retention

How far back your version history reaches depends on your plan:

| Plan | Retention |
| - | - |
| Free | 30 days |
| Growth | 90 days |
| Professional | 1 year |
| Enterprise | 2 years |

You can view and restore versions up to your plan's retention window.

## Limitations

### Restore limitations

**All Journeys**

* Archived Journeys can't be restored.
* A Journey that is still being set live can't be restored until it finishes processing.
* A version can't be restored if it uses features your current plan doesn't include.
* A version can't be restored if its structure no longer passes current Journey validation.

**Scheduled and live Journeys**

* A version can't be restored if it references a segment that has since been deleted or paused.
* A version can't be restored if it references a message template, in-app message, or webhook that has since been deleted.
* A version can't be restored if it uses a channel that has since been disabled.

**Live Journeys**

* A live Journey can only restore versions saved while it was live.

### History tracking limitations

* Some changes aren't saved as versions. See [What creates a new version](#what-creates-a-new-version).
* Versions don't capture the content of templates, in-app messages, or segments. Restoring a version points the Journey back to the same templates and segments, using their current content.
* Journey version history became available in October 2026. Journeys created before then track new versions as you make changes, but no historical versions exist from before that date.

## FAQ

### Can I undo a change to a Journey?

Yes. Open **Version history** from the **More Options** menu, select the version from before the change, and click **Restore**. This replaces undo for Journey edits.

### Does restoring a version reset my delivery stats?

No. Message and Journey statistics are never reset or snapshotted by version history. Your counters keep accumulating regardless of which version is active.

### What happens to users already in the Journey when I restore an older version?

They continue automatically. Each user moves forward. If their existing step exists in the restored version of the Journey, they stay where they are. If their step does not exist in the restored version of the Journey, they move forward in their original Journey until they find the step that exists in both.

### Can I restore a draft version on a live Journey?

No. A live Journey can only restore versions saved after it went live. If you need an earlier draft structure, duplicate the Journey. The copy is created as a new draft that you can edit to match the earlier version, using its preview in version history as a reference, and then set live.

### Why is the Restore button blocked on some versions?

A version can be blocked for several reasons, such as a deleted segment or a disabled channel, and the reasons depend on whether the Journey is a draft, scheduled, or live. See [Restore limitations](#restore-limitations) for the full list.

### Can I see version history on an archived Journey?

Yes, but you can't restore from it. Duplicate the archived Journey if you need to recreate its structure.

## Related pages

> **[Managing journeys](https://documentation.onesignal.com/docs/en/managing-journeys.md)**
>
> Edit Journey steps and messages, view stats, duplicate or archive flows.

> **[Journey settings](https://documentation.onesignal.com/docs/en/journeys-settings.md)**
>
> Configure entry rules, exit rules, re-entry, and scheduling.

> **[Journey analytics](https://documentation.onesignal.com/docs/en/journeys-analytics.md)**
>
> View delivery metrics, engagement stats, and audience activity for each Journey.


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