Loading the guide…
Loading the guide…
Learn how publishing snapshots an immutable version, what the unpublished-changes indicator means, and how to pause, resume, and duplicate a workflow.
Building a workflow and running one are two separate acts. You edit the canvas as freely as you like, but none of it takes effect until you publish. Publishing snapshots the whole graph into an immutable version, and that version is what processes triggers. This article explains the publish-and-version model, the unpublished-changes indicator, how pausing and resuming differ from publishing, and how to duplicate a workflow to iterate safely. If you have not built one yet, start with build your first workflow.
A workflow has two layers: the draft you edit, and the published version that runs. Every change you make on the canvas (adding a step, rewiring a link, editing a condition) lands on the draft. The live version keeps running exactly as it was until you publish again.
This separation is deliberate. Build progressively, leave steps half-configured, and experiment without any risk to automations already handling real contacts.
Publishing is the moment your edits become real. When you publish, maxclicks validates the whole graph, then snapshots everything into a new immutable version.
Open the workflow from Workflows. Confirm the graph is complete: at least one trigger, every non-trigger step connected, and no empty placeholder steps left unconfigured.
Use the Publish control. maxclicks validates the graph first. Errors block the publish and are flagged on the offending step; warnings do not block. A valid graph is snapshotted into a new version.
After a successful publish, the unpublished-changes indicator clears and the new version becomes the one that starts new runs. Publishing also un-pauses the workflow if it was paused.
Validation blocks a publish when the graph has no trigger, contains a cycle, still has an empty placeholder step, or leaves a required field blank. Fix what the editor flags and publish again.

Inspect the draft signup workflow. Open the Usersignedup trigger, two-day delay, condition checking this user’s own projects, and email step. The true branch ends the follow-up; the false branch continues. The tour does not publish or run this draft.
Once a workflow has been published at least once, any further edit marks it as having unpublished changes, often called a dirty state. The indicator is your reminder that what you see on the canvas is not yet what is running.
The distinction matters because your edits sit only on the draft until you publish them. If you tweak a condition and walk away without publishing, live runs keep using the previously published version. When the indicator is clear, the canvas and the live version match.
Each publish creates a new immutable version, a frozen copy of the entire graph and every step's configuration. maxclicks keeps these versions so runs stay predictable.
This is why you can safely edit a workflow that has active runs: you are never rewriting a run that is already underway. There is no way to cancel an in-flight run, so let versioning do its job and know that existing runs drain out on their own version.
Pausing is not the same as unpublishing. A paused workflow keeps its published version but stops accepting new trigger runs.
Pausing is the safe way to take an automation offline temporarily without losing the runs that are mid-flight. You will find the pause and resume controls both on the workflow itself and on the Workflows list.
You can duplicate a workflow. The copy is created as a fresh, unpublished draft, so it starts life with no live version and no runs of its own. This makes duplication the right tool for a few common situations:
Duplicate from the Workflows list. The new workflow arrives as a draft you publish when you are ready, exactly like a workflow you built from scratch.
Publishing does more than snapshot the graph: it also arms your triggers, and some trigger types depend on the workflow being published and unpaused to fire at all. This is worth knowing so a trigger behaves the way you expect after each publish.
The practical takeaway: pausing genuinely takes an automation offline for new work, and a real-time trigger missed during a pause is not caught up afterward. If you need to process what happened during a gap, you handle it deliberately, not by resuming and expecting a backfill.
The workflow's first publish enables its Runs and Metrics tabs, which are greyed out until then. The Runs tab is the live view: it streams run history and per-step detail as runs execute, and it is where you diagnose failures. That is covered in understand workflow runs and fix failures.
The Metrics tab is the aggregate view, and because every publish creates its own version, you choose which published version to inspect at the top of the tab. Alongside the workflow's run totals (started, completed, and failed), it shows, for the version you picked, the average time a run spent in each step, how many runs traversed each link, and a delivery and engagement funnel for every Send Email step.
No. Edits land on the draft and change nothing live until you publish. When you publish, the new version starts handling new runs, while runs already in progress finish on the version that started them.
It means the canvas has edits that are not yet live. The previously published version keeps running until you publish again. When the indicator is clear, what you see matches what is running.
There is no unpublish. Pausing keeps the published version but stops new runs from starting, while letting in-flight runs finish. Resuming, or publishing again, re-opens the workflow to new runs.
Yes. Duplicating creates a fresh, unpublished draft copy with no runs of its own. It is the recommended way to iterate on a live workflow safely or to reuse an existing pattern for a new automation.
No. There is no run cancellation. Pausing stops new runs but lets current ones finish. If a workflow is doing something you do not want, pause it and let the in-flight runs drain, or fix the graph and publish a corrected version for future runs.
Did this article answer your question?