> For the complete documentation index, see [llms.txt](https://docs.n8n.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.n8n.io/build/understand-workflows/save-and-publish-workflows.md).

# Save and publish workflows

n8n auto saves your workflow while you're editing. When you're ready to put the workflow into production, publish your workflow. This approach prevents accidental production changes while enabling safe iteration and review.

## How saving works <a href="#how-saving-works" id="how-saving-works"></a>

Changes save automatically as you edit, typically within 1 to 5 seconds. No manual save button is required. All edits remain in draft until you publish.

## How publishing works <a href="#how-publishing-works" id="how-publishing-works"></a>

Publishing makes your workflow live and locks it to a specific version. Production executions will use this published version, not your latest edits. When you publish, your workflow will enable the following:

* Webhook and form triggers will use their production URLs
* Schedules will run at the times you've defined
* Events from connected apps will trigger this workflow

**Initial state** When you open a workflow with no publishable changes, the Publish button is disabled.

![Disabled, greyed-out Publish button because there are no unpublished changes](/files/2iPb5MOrYuKGLAfdOA6f)

**Ready to publish** When the workflow is not yet published but has changes, the button becomes active.

![Active Publish button for a workflow that has unpublished changes](/files/LJb5HBebtIQtr75nVppm)

**Published, up to date** The workflow is currently published and there are no new changes since the last publish.

![Publish button showing the workflow is published and up to date, with no pending changes](/files/IAxTykAlM000LopghkpW)

**Published, has changes** The workflow is published, but you've made changes since the last publish that haven't gone live yet.

![Publish button showing the workflow is published but has changes not yet live](/files/XZFfU57lKuEvf1xgiITl)

**Published, invalid changes** The workflow is published, but it's not in a state to be republished (no trigger requires publishing).

![Publish button showing the workflow can't be republished because no trigger requires publishing](/files/oQi0Nvx1YpNEWZJoc9Ja)

**Published, error** The workflow is published, but there are errors in your recent changes that need to be fixed before you can publish again.

![Publish button showing an error state because recent changes contain errors to fix](/files/SlM5Vi7cYWyAG0dzZxZW)

## How collaboration works <a href="#how-collaboration-works" id="how-collaboration-works"></a>

Only one person can edit a workflow at a time. If someone else is currently editing:

* You see the workflow in read-only mode
* The edit lock releases when they stop editing or become inactive
* You can then take over editing with the latest changes

## Checking publishing status <a href="#checking-publishing-status" id="checking-publishing-status"></a>

On the **Workflows** page, if a workflow is published an indicator will be displayed on the card.

![Published indicator badge on a workflow card in the Workflows list](/files/C1Dispx8kf7C71BBvMkA)

## Publishing a workflow <a href="#publishing-a-workflow" id="publishing-a-workflow"></a>

The **Publish** button in the canvas header is enabled whenever there are unpublished changes.

Each time you make a change to a workflow, n8n autosaves those changes to a new version of the workflow. These saved versions go live in production only when you publish the workflow after the changes.

1. Click the **Publish** button (or use hotkey `Shift` + `p`) to open the publishing modal
2. The version name defaults to a UUID. Customize the name if you'd like and add a description of the version.
3. Click **Publish** to make your changes live in production. Production executions always point to the currently published version.

   If you only update workflow settings, n8n will re-publish the version without requiring you to take any action.

![Publish modal with an editable version name (defaulting to a UUID) and description field](/files/IkR3X6YPaHTSS81Ja7HI)

{% hint style="info" %}
**Workflow reviews**

If workflow reviews are enabled for your instance, you can submit a version for review instead of publishing immediately. While a review is open, n8n blocks publishing that workflow. Refer to [Workflow reviews](/build/manage-workflows/workflow-reviews.md) for plan availability and how reviews work.
{% endhint %}

## Naming versions <a href="#naming-versions" id="naming-versions"></a>

{% hint style="info" %}
**Feature availability**

Named versions are available on:

* **n8n Cloud:** Pro, Enterprise
* **Self-hosted:** Business, Enterprise
  {% endhint %}

Named versions let you give a meaningful name and description to any workflow version. This helps you identify important milestones in your workflow's development. Named versions are also protected from automatic [version history pruning](/build/manage-workflows/view-change-history.md), so they persist indefinitely.

To name a version from the canvas header:

1. Select the dropdown arrow next to the **Publish** button (or use hotkey `Cmd/Ctrl` + `s`).
2. Select **Name version**.
3. Enter a name and optional description.
4. Select **Save**.

![Publish button's dropdown menu with the Name version option](/files/AcXcgz4qK18UrPTudZcU)

To name a version from the version history page:

1. Open the version history by selecting the history icon in the header.
2. On the version you want to name, select **Options** <img src="/files/u571i29h1qOyVdUCmDJP" alt="Options icon" data-size="line">.
3. Select **Name version**.
4. Enter a name and optional description.
5. Select **Save**.

## Managing version history <a href="#managing-version-history" id="managing-version-history"></a>

View and manage version history by clicking the history icon in the header. In the version history view, you can perform these actions:

* Unpublish the workflow to remove it from production
* Restore a previous version. Restoring lets you work on a version without affecting the production execution.
* Publish another version of the workflow
* Name a version to protect it from pruning

## How to unpublish a workflow <a href="#how-to-unpublish-a-workflow" id="how-to-unpublish-a-workflow"></a>

Unpublish a workflow from either:

* The dropdown arrow next to the **Publish** button in the canvas header (or use hotkey `Cmd/Ctrl` + `u`).
* In the workflow list
* The version history page (unpublish action on published versions)
