Skip to main content

Why versioning matters

Workflows evolve. You tweak a prompt, add a tool, restructure a branch. Without versioning, the only record of yesterday’s working workflow is whatever you remember — and one bad edit can break what’s running in production. MagOneAI solves this with two ideas working together:

Draft history

Every meaningful save becomes an immutable revision you can inspect, compare, and restore.

Published version

One specific revision runs in production at any time. Editing on the canvas doesn’t ship until you explicitly publish.
This lets you iterate freely on the canvas — experimenting, testing, refactoring — while the live workflow keeps running unchanged.

Automatic snapshots on save

You don’t create versions manually. Every time you save a workflow in Studio, MagOneAI checks whether the content has actually changed and records a new revision if it has.
1

You save changes on the canvas

Add a node, rewrite a prompt, reroute a branch — any edit that changes the workflow.
2

MagOneAI de-duplicates cosmetic saves

If the underlying workflow is identical to the last revision (for example, you opened a use case and re-saved without editing), no new revision is recorded.
3

A new revision is recorded

New content becomes the next revision in history, stamped with the author and timestamp.
4

Older history is pruned

To keep history bounded, the oldest unpinned revisions are removed once you exceed the retention limit. Pinned revisions are always kept.
Revisions capture both the workflow graph and the canvas layout — so restoring an older revision brings back exactly what you were looking at that day.

Labels, notes, and pinning

Raw revision numbers aren’t very memorable. Three pieces of metadata help you make sense of history later:
  • Label — a short human-readable tag like launch-candidate or pre-prompt-rewrite. Great for marking releases or baselines.
  • Note — a longer message explaining what changed or why. This is what future-you will thank present-you for writing.
  • Pin — protects a revision from being pruned when history hits the retention cap. Pin your released versions, safety baselines, and anything you might want to roll back to.
Before a big refactor, pin the current revision and label it something like before-<change>. Even if you churn through many drafts afterwards, that safety point stays available.
You can edit labels, notes, and pin state on any past revision at any time. The workflow content itself is immutable — that’s what makes versions trustworthy.

Draft vs published

A use case always has a published version — the one revision that executions actually use. Until you publish, the workflow in production is whatever was published last, regardless of how many drafts you’ve saved since. This separation is the core of safe iteration:
  • Drafts pile up as you edit. You can save freely, walk away, come back tomorrow, keep experimenting. Production is unaffected.
  • Publishing is an explicit action. When you’re happy with a draft, you publish it. That’s the moment the change reaches users.
  • Triggers and schedules follow the publish pointer. Scheduled runs, API triggers, and chat-triggered workflows all resolve to the published version automatically — no config to update.
Saving is not shipping. If you want a change to reach production, you have to publish.

Testing a draft before publishing

You don’t have to publish to try out changes. When you run a workflow from Studio — for example, via the Run button or a test case — you can target the latest draft directly. This executes the in-progress revision without touching the published version, so you can validate behavior end-to-end before committing. A typical flow:
1

Edit on the canvas

Make your changes. They save as drafts automatically.
2

Run the draft with sample input

Use Studio’s run panel (or a test case) to execute the latest draft and review the output.
3

Iterate until it's right

Each save is a new revision you can go back to if needed.
4

Publish when you're confident

Promote the revision you just validated to be the new published version.

Rolling back

Because every past revision is preserved, rolling back is never a restore-from-backup operation — it’s just publishing an older revision.
1

Open the versions panel

In Studio, open the history for the use case. You’ll see every revision with its label, note, author, and timestamp.
2

Find the revision you want

Labels and notes help you identify the right one. You can preview a revision’s workflow before acting.
3

Publish it

Publishing an older revision makes it the new live version. Subsequent runs, schedules, and triggers immediately use it.
Your newer drafts aren’t lost — they stay in history. You can always publish forward again once the issue is fixed.

Working across projects

Workflow versions travel with a use case. When you export a use case for sharing with another project or team, the export captures the currently published revision. On import, the receiving project starts a fresh history from that point — each project maintains its own independent version timeline after that.
Share via export/import when you want a one-time handoff. Keep use cases in a shared project when you want a single source of truth that all teams see updates to.

Next steps

Triggers & execution

How the published version is used by API, chat, and schedule triggers

Workflow overview

Back to the canvas, activities, and workflow basics