Tutorial: Create a workflow from zero
Workflow admin from an empty definition: access, create workflow, metadata, effective dates, graph/BPMN, steps, gateways, and per-step permissions.
This tutorial starts with no pre-built intake scaffold. You will author a workflow manually. Replace yourteam with your account slug.
Prerequisites
workflow.managepermission or account owner. (The product seeds aworkflow_adminrole with this permission on some teams.)- At least one form schema and (optionally) one data entity you can attach to stepsβcreate them first under
/home/yourteam/admin/formsand/home/yourteam/admin/dataentities.
Step 1 β Open Workflow admin
Go to /home/yourteam/workflow/admin. You should see the list of workflows and a control to create a new workflow.
Step 2 β Create the workflow shell
Click to add a workflow and fill in:
- Name β Human-readable (e.g.
Capital request). - Slug β URL-safe identifier used in operative URLs (e.g.
capital-request). If you leave it blank, the UI often derives it from the name. - Version β String (e.g.
1). This is the workflow definition version, distinct from form/entity versions. - Status β Typically
active,inactive, ordraftdepending on whether you want it listed for operators.
Submit to create the row. The page reloads and your workflow appears in the list. Open it to reach /home/yourteam/workflow/admin/{workflowId}.
Step 3 β Workflow metadata (editor header)
On the edit page, set or adjust:
- Name, Slug, Version, Status
- Effective from / Effective until β Optional datetimes controlling when this definition is considered active for new instances (policy may still respect
status).
Use Save workflow (or equivalent) so the row updates.
Step 4 β Definition JSON and graph (optional BPMN)
The editor includes a definition JSON area that can embed a validated workflow_graph structure describing steps, edges (next_steps), gateways, participant_groups, and links to form_schema_id / data_entity_id at the graph level.
There is also a BPMN panel that imports/exports XML and can stay in sync with the graph when you use the provided sync actions. If you are not comfortable with BPMN yet, you can rely on the Steps card alone (next section)βthe app can still persist a coherent graph for many cases.
Tip: After structural edits, save and refresh if the UI prompts youβsome environments sync relational workflow_steps rows from the graph on update.
Step 5 β Build steps (required path)
Use the Steps section to add and maintain ordered steps. For each step you can configure:
| Field | Purpose |
|---|---|
| step_key | Stable machine id (e.g. submit, approve). |
| label | Shown in operative UI. |
| step_type | One of start, task, gateway, end. |
| form_schema_id | Which form users fill on this step (usually task steps). |
| data_entity_id | Optional backing entity for structured capture / IO. |
| gateway_config | JSON for branching logic on gateway steps. |
| step_actions / step_data_config / step_io_config | Advanced JSON for actions, data bindings, inputs/outputs (e.g. entity state transitions). |
| next_steps | JSON array of edges such as { "step_key": "nextStep", "when": "outcome" }. |
Use Add step to append, Edit to change, Delete to remove. The editor validates server-side.
Typical linear pattern
startβnext_stepsβ first human step.- One or more
tasksteps β each with a form (and optional entity). - Optional
gatewayβ routes by outcome. endβnext_stepsempty.
Step 6 β Step permissions (roles and security)
Expand permissions for each step. Each row defines:
- role_type β
system(built-in:owner,member,workflow_admin) oraccount(pick one of your custom account roles). - can_view β User sees the step in the instance.
- can_capture β User may submit data / complete the step.
Add multiple rows per step to model handoffs (e.g. member captures submit, custom role βApproverβ captures approval).
Save permissions per step applies workflow_step_permissions in the database.
Step 7 β Verify in operative
Visit /home/yourteam/operativeworkflow. Your workflow should appear if status and effective dates allow it. Start a new instance, walk the steps, and confirm task inbox behavior at /home/yourteam/operativeworkflow/tasks if assignments are used.
Checklist
- [ ] Slug unique and stable for bookmarks.
- [ ] Every
taskthat collects data has the right form + entity. - [ ]
next_stepsform a complete path to anendstep. - [ ] Permissions match who may view vs submit each step.