Workflow Studio

Version History

Every workflow save creates an immutable version. Browse history, compare diffs, restore previous versions, and understand which version is active in each environment.

FlowOS never overwrites a workflow version. Every time you save a draft a new version is appended. The Version History page at /workflows/[id]/versions shows the complete timeline with author, timestamp, and change summary.

Version States

StateDescription
draftSaved but not yet deployed. Only one draft version exists per workflow at a time.
activeThe version currently handling new triggers in an environment. There is one active version per environment.
supersededWas previously active; replaced when a newer version was deployed. Running instances continue until they complete.
archivedManually archived. Still viewable in history but cannot be re-activated without restoring first.

Diff View

Select any two versions on the history page and click Compare. The diff view shows:

  • Nodes added/removed/modified — shown in green/red/yellow with the changed properties highlighted.
  • Edge changes — new connections, removed connections, condition expression changes.
  • Trigger changes — type, table, conditions before/after.
  • Metadata changes — name, description, tags.

Restoring a Version

On the version history page, click a version row → Restore. This overwrites the workflow's live definition (name, nodes, edges, trigger) with the selected version's snapshot. Historical version records themselves are never mutated, but restoring does not create a new version entry.

Restoring updates the live workflow definition directly — it does not go through a separate publish/activate step.

Retention Limits

  • Default: last 50 versions retained.
  • Increase to 200 on the Enterprise plan.
  • Active versions in any environment are never pruned regardless of the limit.
  • Manually archive a version to permanently exclude it from auto-pruning.

API

POST
/api/workflows/:id/versions

Snapshot the workflow's current definition as a new version.

GET
/api/workflows/:id/versions

List all versions for a workflow (id, version number, label, createdAt).

POST
/api/workflows/:id/versions/:versionId/restore

Overwrite the live workflow definition with a version's snapshot.