A flow has one shared draft and a history of deployed versions. You test the draft before you deploy it, compare versions, and roll back when a deploy went wrong. This page covers that cycle.
Drafts and versions
| Draft | Version | |
|---|---|---|
| What it is | The flow as it is being edited | The flow as it was deployed |
| How it is made | Saved automatically as anyone edits | Each Deploy makes the next version (v1, v2 …) |
| Runs | Never | The deployed version runs while the flow is switched on |
| Shared | Yes: one draft per flow for everyone | Read-only |
The editor shows “Draft differs from vn” while the draft has changes. Discard draft throws the draft away: “Discard the draft? The deployed version comes back.”
A draft of a deployed flow that nobody touched for 30 days is cleared by the daily cleanup. A flow that was never deployed keeps its draft.
The version list
Select Versions in the editor (“Versions of name“):
| Column | Shows |
|---|---|
| Version | v1, v2 …; the running one is marked deployed |
| Deployed | When |
| By | The person, or System / Template setup for automatic deploys |
| Note | The deploy note, or a generated one such as “Rolled back to version 3” |
| Content | A short fingerprint of the flow’s content |
Compare with now shows what going to that version would change: blocks added, removed and changed, and wires connected and disconnected, with Show on the canvas.
Roll back
- In Versions, open the row’s actions and select Roll back to this.
- Confirm: “This deploys vn again as a new version. A draft you have saved stays.”
A rollback is a deploy: it makes a new version with the old content, needs the same permissions and confirmations, and is audited. A version that no longer compiles (for example it uses a block that is no longer available) cannot be rolled back to: “That version no longer compiles here”.
How long versions are kept
Under Automation > Automation settings:
| Setting | Default | Range |
|---|---|---|
| Keep unsaved drafts (days) | 30 | 7 to 3,650 |
| Versions always kept per flow | 100 | 100 to 10,000 |
| Keep versions younger than (days) | 90 | 90 to 3,650 |
An older version is removed only when it is outside both, and never the deployed, the newest or the newest approved version.
Test a flow
Test runs the saved draft once with a message you give. “Runs the saved draft once with your message. Nothing is written and nothing is sent.”
- Select Test (“Test this flow”).
- Run: The whole flow or Only one node (then pick the Node).
- Enter through: the trigger the message enters at.
- Fill the message: Message type, Originator type, Originator id and Payload (JSON). The form is filled with a sample of the block or of the message type, or with the newest real input recorded for the node.
- Optionally tick Start from the live state and context: a read-only copy of what the deployed flow holds now (counters, last values). Needs the debug permission.
- Select Run test.
The result lists every step (“n steps in m ms”), what each block received (In:) and sent (Sent on:), errors, and under It would: what action blocks would have done (the HTTP call, the mail, the command, the saved values). No data is stored, no message, call or command leaves the platform, and no live memory changes. Waits up to 10 minutes are simulated and end at once.
Tests are rate limited: “Too many tests. Try again in n seconds.”
Test from real messages
- On a block’s Messages tab, Test with this input starts a test with a message that passed that block.
- On an error in the Activity panel, Test with this input reruns the failing input.
- The Script block has its own Test the script, which runs the code on the real sandbox. See The script block.
Watch a deployed flow
The Activity panel shows what the running flow does:
| Tab | Shows |
|---|---|
| Debug | Messages that reach Debug blocks |
| Runs | Recorded runs: every step with its input and output (see the recording level below) |
| Trace | One message followed step by step |
| Errors | Error counters per block and the newest errors |
| Busiest | Blocks by messages, errors and time |
| Data | The flow’s and the organisation’s context values, and how full the stores are |
| Block | The selected block’s figures |
| Help | The selected block’s help |
Record sets what is kept: Nothing (counters only), Runs that fail, or Every run, for 5 minutes (then it goes back). Trace the next message records the next message through a trigger in full; an armed trace lapses after 5 minutes. Run records are kept 24 hours. Message contents are shown only to people who may debug.
The audit trail
Every create, change, deploy, rollback, delete, restore, import, export, test and root change is written to the audit log. A flow’s Details has an Audit tab (Change, Who, When), and the editor’s events view lists the last 50 audit entries of the flow. See Audit log.
Delete and restore
- Delete a flow from its row menu: “Delete name? It can be restored later.” A flow that something still uses (a root binding, another flow’s Run flow or Link out) cannot be deleted until that use is removed; Details > Used by lists them.
- The Deleted (last 7 days) filter lists deleted flows with Restore. A restored flow is switched off (“Restored. It is switched off.”). After 7 days it cannot be restored.
- Restoring counts against your plan’s flows and script blocks again.
Export and import
- Export (row menu) downloads the flow as a JSON file. Secrets are never in the file. A draft that would not pass the deploy checks is left out.
- Import (flow list) takes a file exported from Hermetry, or from a licensed router. Choose Import to the host, then for each flow that already exists: Replace it, Import as a copy or Skip it. The preview shows what replacing would change.
- Imported flows arrive switched off and not approved. Enter the secrets of their connections again (“Secrets are never in a file. Enter them again after the import”).
- Blocks that do not exist on the host arrive as placeholders that keep their wires but do nothing.
- Undo last import is offered while the page is open; a flow deployed or edited since the import is left as it is.

