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

# Versions and publishing

> Every publish is permanent, rollback is instant, and "save draft" is not what its name implies.

Every time a flow's graph is published, Tied writes a new, permanent version and points the flow at it. Nothing is overwritten — the flow itself just holds a pointer to whichever version currently counts as live.

<img src="https://mintcdn.com/tied/EKg57bTFCkV_E_Je/images/diagrams/flow-versions-light.svg?fit=max&auto=format&n=EKg57bTFCkV_E_Je&q=85&s=0511f2cd1cc3af398b94270bf4e5dccc" alt="Both save controls publish immediately, a running conversation is pinned to the version it started on, and a rollback writes no new version." className="block dark:hidden w-full my-8" noZoom width="900" height="482" data-path="images/diagrams/flow-versions-light.svg" />

<img src="https://mintcdn.com/tied/EKg57bTFCkV_E_Je/images/diagrams/flow-versions-dark.svg?fit=max&auto=format&n=EKg57bTFCkV_E_Je&q=85&s=69715ac0e63689158255a16206fa4f8d" alt="Both save controls publish immediately, a running conversation is pinned to the version it started on, and a rollback writes no new version." className="hidden dark:block w-full my-8" noZoom width="900" height="482" data-path="images/diagrams/flow-versions-dark.svg" />

## "Save draft" and "Publish" do the same thing

<Warning>
  **Read this before you rely on either button.** The builder's header shows **Save draft** and
  **Publish** only while a flow has never been published, or is currently turned off. Today, both of them
  create a new version from your current graph and immediately make it the live one — the only difference
  is the label attached to the version in its history. **There is currently no way to save a
  work-in-progress graph without it going live.** If you want to try changes without affecting real
  conversations, use the [simulator](/chatbot/testing) instead of either save control.

  **Once a flow is live, Publish disappears and is replaced by the Live toggle** (see below). At that
  point **Save draft is the only save control left in the header, and it still republishes** — clicking it
  on a live flow creates a new version and makes it live immediately, exactly like Publish did before. The
  label is the only thing "draft" about it.
</Warning>

This matters most mid-edit: a half-finished change saved to check your progress is a half-finished change now running for whoever triggers that flow next.

## Turning a flow off

The header shows a **Live** toggle once a flow is published. Turning it off moves the flow back to draft — it stops matching *new* triggers immediately. It does not touch any conversation already running the flow; those continue exactly as described below. Turning a flow back on afterward means publishing again.

## Rolling back

Every version stays in the flow's history, whether it was ever the live one or not. Rollback points the flow at an earlier version directly — it doesn't create a new version, and it doesn't discard the one you're rolling back from. You can roll forward again just as easily.

<Tip>
  Tied asks you to confirm before a rollback takes effect, precisely because it takes effect for that flow
  immediately the moment you confirm it — rollback is scoped to the one flow you're rolling back, not the
  account.
</Tip>

## What happens to a conversation already mid-flow

This is the part worth trusting: **a running conversation is pinned to the exact version it started on.** Publishing a new version, rolling back, or turning the flow off changes what happens next for *new* conversations only — nothing retroactively moves a conversation that's mid-flow onto a different graph, even one node at a time.

Practically: if someone is sitting at a `wait_for_reply` when you publish a fix, they finish the flow they started. The fix applies from the next new conversation onward.

## Multiple flows, one inbox

An inbox can have more than one published flow at a time. When a trigger fires, Tied checks them in priority order — highest first — and runs the first one whose trigger matches. Two flows with overlapping triggers on the same inbox is a priority decision, not an error. No flow starts while a person owns the conversation, after an AI handoff or a teammate takeover. A hand-back from a teammate's takeover returns the conversation to the AI, and so does the customer writing again after the conversation was resolved (an active takeover still keeps it with the person).

When a resolved conversation is reopened by the customer, a flow that starts new conversations (its trigger includes "new conversation") does not run again unless it has "restart on reopen" turned on. The next matching flow by priority runs instead. Flows that do not start new conversations are not affected. The setting is available through the API for now, with no screen in the builder.

## Who can do this

Publishing, rolling back, and turning a flow on or off all require an account administrator. See [Roles and permissions](/roles-permissions).

## Next

<CardGroup cols={2}>
  <Card title="Testing and simulation" icon="flask-conical" href="/chatbot/testing">
    The actual safe way to try a change before it's live.
  </Card>

  <Card title="Canvas basics" icon="mouse-pointer-click" href="/chatbot/canvas">
    Where Save draft and Publish live in the builder.
  </Card>

  <Card title="Node types" icon="boxes" href="/chatbot/nodes">
    What a published graph is actually made of.
  </Card>

  <Card title="Flow templates" icon="copy" href="/chatbot/templates">
    The version a template clone starts its own history from.
  </Card>
</CardGroup>


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