Flow: statuses and the process editor
A type's process (lifecycle) is the set of statuses an object can be in and the transitions between them. Statuses become board columns, and transitions become buttons on the object: "Start work", "Complete", "Cancel". This article describes the visual process editor, status types and publishing a new process version.
The editor opens in two ways: "Settings" → "Types and fields" → a type → the "Process and statuses" section, or the "Process" button on the type's board. The process can be changed by a member with permission to manage the schema.
How a process works
Status — where the object is: "New", "In progress", "Done". A status has a name, a status type, a color and a permanent key.
Initial status — new objects start in it. There is exactly one.
Transition — an allowed move from some statuses to another. The transition name is the button text on the object.
Conditions — expressions that can forbid a transition, for example "Not all blockers are closed".
Required fields on transition — fields you will be asked to fill in in the transition window.
Example: the task process in the Main workspace — "New" → "In progress" → "Done", plus "Cancelled". All four transitions — "Move back to New", "Start work", "Complete", "Cancel" — are marked "from any status", so you can go from every status to any other.
Status types
Each status belongs to one of four types:
Status type | API key | When to choose it |
|---|---|---|
Open |
| Work hasn't started yet: "New", "Backlog" |
In progress |
| Work is underway: "In progress", "In review", "Blocked" |
Closed |
| Work is done: "Done", "Won" |
Cancelled |
| Work was stopped without a result: "Cancelled", "Lost" |
The status type is set when you create a status. The type of a saved status cannot be changed: if you need a different one, create a new status and move the objects into it.
Why the "Closed" type matters
Each workspace has its own status names, so Flow can tell that "a task is closed" only from the status type. It affects:
Notifications. The template rule "Task done" fires on a transition to a "Closed" status and messages the author and watchers.
Due date reminders. An object in a "Closed" or "Cancelled" status gets no reminders: closing cancels scheduled reminders, and reopening schedules them again.
Filters. The "State category" condition in table filters and the category filter in "All workspaces" mode ("Open", "In progress", "Done", "Cancelled") select objects by status type, not by name.
Conditions and automations. Expressions like
t.state.category == 'done'check the status type specifically — that is how the "Tasks" template prevents completing a task while its blockers are still open.SLAs and reports. The SLA timer runs while the object is in a status and stops when it leaves. If the final status is marked "Closed", moving into it ends the work, and the SLA and time-in-status reports show an accurate picture.
If the final status was created as "In progress" by mistake, closed tasks will look open: they will keep getting reminders, and the completion notification won't arrive.
Visual editor
Statuses are shown as blocks, and transitions as arrows labeled with the transition name. A block shows the name, the status type and badges: "start" on the initial status and "from any" if a transition from any status leads into it. The toolbar above the diagram:
Button | What it does |
|---|---|
Status | Adds a "New status" block |
Transition | Opens the "New transition" form: "Source status" and "New status" |
Arrange | Lays out the blocks automatically |
− and + | Zoom; the mouse wheel zooms too |
Fit | Fits the diagram to the window |
The "i" icon | The "How to set up a process" hint |
How to work with it:
drag a block to move it; dragging the background pans the diagram;
drag the dot on the right of a block to another status to create a transition;
click a block or an arrow to configure it in the side panel; the Delete key removes the selection;
hover over an arrow or its name — the other arrows fade, and you can see where this transition leads from and to.
How to read the arrows
A regular transition is a straight arrow from the source status to the new one. If a transition is allowed from several statuses, an arrow runs from each of them.
Opposing transitions — transitions in both directions between two statuses — are drawn as two parallel arrows, each with its own name near its start. This keeps the pair from merging into one line.
A transition from any status is not drawn with arrows: otherwise lines from every block would converge on the status. Instead, the new status's block gets a "from any" badge. Such a transition is automatically allowed from statuses you add later, too.
Status settings
Name.
Status type — only for a new status.
Color — your own color or "By type".
Initial status — new objects start here.
Transition here from any status — the status can be reached from any other; the block gets a "from any" badge.
Column order on the board — "← Left" and "Right →".
Transitions from status — a list; clicking one opens the transition.
Remove from process.
Transition settings
Name (button on the object).
New status — where the transition leads.
From any status or a list of Source statuses. A "from any status" transition is allowed from all statuses of the process, including new ones: the list is rebuilt on every save.
Required fields on transition — you'll be asked to fill them in in the transition window.
Conditions — shown as a list; edited in JSON.
Delete transition.
JSON for advanced users
The "Advanced: JSON (conditions, SLA, events)" block opens the states (states) and the graph (transitions, guards, required_fields, form_fields, sla, layout) as text. While the JSON is open, the diagram is view-only; "Apply to diagram" carries your edits over to the editor. The condition language is described in Flow API: automations, reminders and expressions.
Deadlines (SLA)
Below the diagram is the "Deadlines (SLA)" block: "How long an object may stay in a status". The "SLA" button adds a row: status, a time limit in minutes, hours or days, and an "In business time" checkbox (the limit is then counted only during the workspace's business hours, in hours or minutes). Breaches are shown in the object card and in the SLA report — see Flow: reports, SLA and business calendar.
Saving and publishing
The line above the editor shows the state: "You have unsaved changes", "Draft of version N isn't published" or "Version N published".
Save draft — saves the changes; objects keep following the old process for now.
Discard changes — returns to the saved state.
Publish — saves the draft, publishes it as a new version and moves objects from previous versions to it. The move runs in the background.
Before saving, the editor checks that there is at least one status, exactly one initial status is marked, and every status and transition has a name. Publishing errors and warnings are shown above the editor.
"Where to move objects"
If the new version lacks a status that was in the published one, publishing opens the "Where to move objects" window: for each removed status, choose a status in the new version. If after publishing some objects in old versions are found in statuses with no match, the window opens again with the number of objects, and the "Move" button finishes the move.
During the move, transition conditions and rules are not checked: this is a system operation, and it is recorded in the log.
Process versions
When a process has more than one version, the "Process versions" block shows their statuses: "draft", "published" (the current one is marked) and "retired". A version becomes retired when no active objects are left on it — only archived ones. A retired version can no longer be a move target, and an object restored from the archive stays on it until the next move.
Board columns
Each status is a board column, in the order set by "Column order on the board". The column header is tinted with a light shade of the status color, with a strip of that color on the left. Below the name you can see how many cards are in the column with filters applied, for example "12 cards". If the type has a numeric estimate field ("Estimate, hours" in the "Tasks" template), the sum is shown next to it: "Estimate: 16 h". When searching by words there is no exact total: the number of loaded cards is shown, with a "+" sign if there are more.
You can edit statuses right from the type's board:
"+" after the last column ("Add column") opens "New column": a name, a status type ("In progress" by default) and the checkbox "Cards can be dragged into it from any column and back" (on by default). A column is a new status of the process. With the checkbox, a transition from any status leads into it, and transitions lead from it to all the others.
The "⋯" button in a column header opens the column window: "Rename" it, choose where to move its cards ("Move the column's cards to"), "Delete column" or go to "Configure process". The last column cannot be deleted.
Each such change immediately publishes a new process version and moves the objects. If the process has an unpublished draft, the board does not change the process and asks you to publish or discard the draft in the settings first.
At the bottom of each column is an "Add card" line: a new card is created in the initial status and immediately moved to this column. If there is no transition from the initial status to this column, the card is not created: Flow offers to create it in the initial column or to add a transition in the process settings. If the transition exists but a condition forbids it, the card stays in the initial status with an explanation. How to work with the board is covered in Flow: table, board, calendar and filters.
What's next
Flow: table, board, calendar and filters — how to move objects on the board.
Flow: automations — actions on status change.
Flow: notifications and reminders — who Flow messages and when.
Bình luận