status: active); older versions are kept addressable for replay and audit.
Version anatomy
| Field | Notes |
|---|---|
version | Integer, bumped on every save. Starts at 1. |
status | draft (not in service) / active (handling events) / archived (no longer used). |
createdAt | Original creation timestamp. |
updatedAt | Last save timestamp. |
createdBy | The user who first created the workflow. |
_lastEditedBy | The user who made the most recent save (optional). |
Promotion flow
Duplicate as draft
From the active workflow, “Duplicate as draft” creates a sibling with the latest definition copied over. Its
status: draft keeps it out of service.Edit + test
Use the test pane (see Testing) against fixtures and historical runs.
Promote
Flip the draft’s
status to active and archive the prior version (status: archived). The prior version remains readable at its version for replay.Replay against an updated version
Frayme replays historical runs against the current active version — letting you see how a past case would resolve under today’s logic.?version=N) — useful when you specifically want to reproduce historical behaviour rather than see how new logic would have decided.
Comparing versions
The editor’s Versions panel shows the change log per version with an auto-extracted summary plus the human-written description.Best practice
Treat the workflow definition like code: every save is a commit, every active workflow has a reviewer.
Use draft duplicates for experimentation; never edit the active version directly.
Keep workflow descriptions current — they’re surfaced as the “what does this do” tooltip in the queue, the decision console, and the audit-export bundles.