Workflows
Author workflow definitions, edit drafts on a step timeline, and publish immutable versions.
Overview
Workflows automate business processes: a trigger starts a run, and an ordered list of steps carries it out. The admin area is where those definitions are authored — drafted, validated, and published.
Editing and running are deliberately separated. The draft in workflows / workflow_steps is always editable; publishing takes an immutable copy-on-publish snapshot into workflow_versions. Runs are pinned to the version they started on, so editing a draft can never rewrite what an in-flight or historical run executed.
Where it lives
Route: /admin/workflows (admin.workflows.index), /admin/workflows/{workflow}/edit (admin.workflows.edit)
Open Admin → System → Workflows. Viewing requires workflows.view; creating workflows.create; draft edits workflows.update; publishing, activating, and deactivating workflows.publish; deleting workflows.delete.
Key workflows
- Index — every definition with its status (active, published, draft), published version number, trigger, and step count.
- Editor — a step timeline: add steps from the registered action handlers, reorder them, rename them, and configure each step against its handler's own configuration schema.
- Publish — validates the draft (at least one step, every action step naming a registered handler, every handler configuration passing that handler's schema) and writes version n+1. Validation failures are shown against the offending step.
- Activate / deactivate — arms or disarms a published workflow without touching its versions.
- Version history — every published version with its number, publisher, and timestamp.
Notes
- A workflow must be published before it can be activated, and deactivated before it can be deleted.
- Deleting a workflow is a soft delete; published versions and run history are retained as evidence for runs that already happened.
- Step types come from the workflow handler registry, so plugins that register handlers appear in the editor automatically.