Skip to main content

Task Workflow

Route: /org/taskconfig?tab=workflow · Manage permission: Manage Task Status


1. What the workflow is​

The workflow is a graph of permitted status changes. Statuses says which states exist; the workflow says which state may follow which.

It is drawn on a canvas: one node per status, plus a single Start node marking where a new task enters. An arrow from To Do to In Progress means that move is legal. No arrow means it is not.

Statuses tabWorkflow tab (this page)
DefinesThe statesThe moves between them
ShapeA sortable listA node graph
Adding a statusCreates itShows it as an unconnected node
PermissionManage Task StatusManage Task Status — the same one
A status with no arrows is unreachable

Creating a status on the Statuses tab does not connect it to anything. The node appears here alone, and no task can enter or leave it until you draw an arrow.

This is the single most common cause of "I made the status but nobody can use it".


2. How the workflow spreads across the application​

Two gates sit between a user and a status change

The workflow decides whether the move is possible. The Change Status of Task permission decides whether this user may make it. A user without that permission sees the status control but cannot change it, however the graph is drawn.


3. Drawing a workflow — step by step​

Figure 1 — The full canvas with Start node, status nodes, arrows, legend, toolbar and minimap.

Step 1 · Open the canvas​

The canvas fills the section. Around it:

#ElementWhere
1Toolbar — JSON, Clear, SaveTop right
2Legend — blue = Input (Target), green = Output (Source)Top left
3AI Assistant panelBottom left
4Zoom controls and minimapBottom
5Full screen buttonTop right of the section, outside the canvas
The AI Assistant panel does nothing yet

It reads "Optimization suggestions coming soon." — it is a placeholder, not a disabled feature. There is no AI generation on this canvas today.

Step 2 · Connect the Start node​

The Start node is a blue circle with a single green output handle. Drag from it to the status a new task should begin in.

Start accepts exactly one connection

Attempting a second one is refused with Start Node Limit — "Start node can only connect to one status." Saving without any is refused with Validation Error — "'Start' node must be connected to a status."

Step 3 · Draw transitions​

Each status node carries eight handles — an input and an output on all four sides:

Handle colourTypeMeaning
BlueTargetSomething can arrive here
GreenSourceSomething can leave here

Drag from a green handle to a blue one. The arrow is animated and directional. Orbit picks the tidiest pair of handles for you, so the arrow re-routes as you move nodes.

Duplicate arrows between the same two nodes are silently ignored.

Step 4 · Or use the side panel​

Clicking a node opens a panel on the right showing the status, its description, and Allowed Next States — every other status with a tick beside it if a transition exists. Clicking a row toggles that transition on or off.

Figure 2 — The Selected Status panel with the Allowed Next States list, ticked and unticked rows. Tall+narrow → Split.

The panel lists every other status with a tick beside it where a transition already exists. Clicking a row toggles that transition on or off, which is the same edit as dragging an arrow but without the aim.

The panel is easier than dragging for a dense graph

Dragging is faster for two or three statuses. Once you have six, the ticklist is far less error-prone — and it is the only way to see, at a glance, which moves a status does not allow.

Step 5 · Configure a transition​

Clicking an arrow opens the transition panel: source status, target status, and two collapsible groups — Actions and Conditions, the latter behind an Allow Conditions toggle.

Figure 3 — The Edit Transition panel showing source, target, Actions and Conditions. Tall+narrow → Split.

Source and target are fixed — a transition is redrawn, not re-pointed, from here. Actions run when a task makes the move; Conditions, behind the Allow Conditions toggle, can block it before it happens.

Step 6 · Save​

Save validates the Start node, then writes the whole graph — nodes, edges, and a derived adjacency map of permitted targets per status.

Clear removes every arrow at once (All connections cleared) and leaves the nodes in place. Nothing is saved until you press Save, so a mistaken Clear is recoverable by leaving without saving.


4. Field reference​

Toolbar​

ButtonShown whenDoes
ExitIn full screen onlyLeaves full screen
JSONAlwaysToggles a raw view of the saved graph. Includes a copy button — JSON copied to clipboard
ClearIf you can manageRemoves all arrows. Toast: All connections cleared
SaveIf you can manageValidates and persists

Transition actions​

Actions run when a task makes this transition.

ActionConfiguration fieldsShown when
Create Developer TaskTask Title (Follow up on ticket), Task Description, Task PriorityOnly if the organization has the task package
Send Document to RequestorDocument to SendAlways
Send Status SummaryMessage templateAlways
Create Calendar EventEvent Title (Review session), Event DescriptionAlways
Email Status ReportTarget Email Address ([email protected]), Subject Line, Report Message BodyAlways

Transition conditions​

Conditions are evaluated before the transition and can block it. They are only editable with Allow Conditions on.

ConditionOptions
SLA Breach GuardPrevent transition if SLA is Breached · Allow transition ONLY if SLA is Breached
Current Status BlockPick the statuses a transition may not originate from
Assignee RequirementTicket must have an assigned Agent · Ticket must NOT have an assigned Agent
Allowed Ticket PrioritiesMulti-select of priorities
The condition vocabulary is written in service-desk language

The labels say ticket, agent and SLA because these condition types are shared with Orbit Resolve. On a task workflow, read ticket as task and agent as assignee.

The SLA Breach Guard has nothing to drive it on a task workflow — tasks have due dates, not SLA clocks. Setting it here is not useful.

Validation​

RuleMessage
Start must be connected'Start' node must be connected to a status.
Start may have one connection'Start' node can only have one outgoing connection.
Start connection attempt beyond oneStart node can only connect to one status.

Nothing validates that every status is reachable, that a Done status exists, or that the graph has no dead ends.


5. The admin contract​

PrerequisiteWhy
Page Access of Task ConfigurationPage access
Manage Task StatusManage — shared with the Statuses tab
At least one statusWith none, there is nothing to connect but the Start node
A desktop browserSee below
The canvas is desktop-only

On a mobile viewport the section renders a desktop-only fallback instead of the canvas. Every other configuration tab works on a phone; this one does not.


6. Downstream​

ChangeEffect
Add an arrowThat status change becomes available in the task detail control and as a Kanban drop
Remove an arrowThe move disappears from the control. Tasks already in that status stay there
Move the Start node's arrowOnly affects newly created tasks
Add an actionRuns on every future transition along that arrow
Add a conditionCan block the transition for everyone
Delete a status on the Statuses tabIts node and arrows vanish from the graph

7. Don't confuse this with…​

ThingWhereWhy it is different
Task workflow (this page)?tab=workflowPer project, status transitions for tasks
Statuses?tab=statusesDefines the nodes this canvas draws
Resolve statuses & workflowsResolve settingsA separate graph for tickets, with version history. This canvas has none
Module State ManagementOrganization SettingsApproval-gated state machines for other modules
Approval workflowsOrganization SettingsWho signs off, not which state follows which
This canvas has no versioning

Orbit Resolve keeps versions of its workflow and reconciles in-flight tickets when one changes. The task workflow does not: a save replaces the graph, and tasks sitting in a status whose arrows you just removed simply stay where they are.


8. Troubleshooting​

SymptomCause
Cannot saveStart is unconnected, or has more than one arrow
A new status cannot be usedIt has no arrows yet
Second arrow from Start refusedStart allows exactly one
A user cannot change status though the arrow existsThey lack Change Status of Task
A Kanban drop is rejectedNo arrow between those two statuses
The canvas is blank on mobileDesktop-only fallback
The canvas has almost no heightIt needs a sized parent; use Full screen
Arrows vanished after editing statusesDeleting a status removes its node and arrows
SLA condition never firesTasks have no SLA clock — that condition is Resolve vocabulary