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

# Versioning & Rollback

> Publish-based versioning that separates editing from deploying. Save drafts, publish immutable snapshots, and roll back when needed.

Xpander uses publish-based versioning: you save your work as a draft, test it, and only push it live when you explicitly publish. The running workflow stays on its last published version until you say otherwise.

<Tip>**Save vs. publish:** Saving persists your changes so you don't lose work, but it does not affect the live workflow. Publishing creates a new immutable version that replaces the current live deployment. Save is "checkpoint my progress." Publish is "ship it."</Tip>

## Track unsaved changes on the canvas

When you modify anything on the canvas (add a node, change an instruction, reconfigure a trigger), Xpander signals unsaved changes in two places.

A **floating toolbar** appears on the canvas with three actions:

* **Undo** reverses the last change
* **Reset** discards all unsaved changes and reverts to the last saved state
* **Save** persists your changes as a draft without affecting the live workflow

At the same time, the **Publish** button in the top toolbar picks up a red notification dot, signaling saved work that hasn't been deployed yet.

If you try to navigate away with unsaved changes, Xpander prompts with a "Discard Changes?" dialog.

## Publish your changes

Click **Save** on the floating toolbar (or the save icon in the Settings panel) to persist your draft. The floating toolbar disappears, but the Publish button stays active with its red dot.

When you're ready to go live, click the **Publish** button. A confirmation dialog appears: "Publish Changes? This will publish your changes and make them live. This action cannot be undone. Proceed?"

Click **Confirm** to deploy. The red dot clears, the Publish button grays out, and your workflow is now running the new version.

This two-step flow lets you save frequently without disrupting production, make changes across multiple editing sessions, and only publish once everything is ready. The workflow keeps running its last published version the entire time.

## Understand immutable snapshots

Each publish creates an immutable snapshot of the entire workflow: every node, connection, instruction, and trigger configuration. This snapshot cannot be modified after publication. Further edits create a new draft that becomes the next snapshot when you publish again.

This guarantees that what you tested is exactly what's running. There's no risk of a partial edit leaking into a live version.

The webhook URL includes a version parameter (`agent_version=1`) so external systems can reference a specific published version.

## Roll back to a previous version

Each publish creates an immutable snapshot, so rolling back means redeploying an earlier snapshot as the active version. Previous versions are preserved: publishing a new version doesn't delete old ones.

## What's next

<CardGroup cols={2}>
  <Card title="Running & Monitoring" icon="chart-line" href="/guides/building-workflows/running-monitoring">
    Run your published workflow and monitor execution results.
  </Card>

  <Card title="Workflow Canvas" icon="map" href="/guides/building-workflows/canvas">
    Navigate the canvas, add and connect nodes, and manage your workflow layout.
  </Card>
</CardGroup>
