The workflow engine evaluates a workflow as follows:

  • Visit all nodes in the workflow tree (from parent to child, then from top to bottom)
    • Here is an easy trick to remember: if you expand all nodes, the evaluation order is simply from top to bottom.
  • Action nodes (eg: setting a variable or a Confluence page label) are executed
  • If a condition node is not fulfilled, its children are ignored

Once the evaluation pass is complete, the workflow engine checks whether anything (eg: a variable) has changed during the evaluation pass.

  • If yes, an additional evaluation pass is performed.
  • If not, the evaluation is complete.

In other words: the workflow engine repeats the evaluation until the workflow state has become stable.


Anytime a user visits a page, the workflow engine does as follows:

  • It looks at all workflows that are bound to that page
  • For each workflow, it visits the nodes in the workflow tree, and picks all widgets that are reachable under the current conditions.
  • It displays these widgets to the user

The widgets that are displayed are entirely defined by the conditions specified in the workflow. Some workflows may display different widgets for different users.

Special cases

If the workflow contains a mistake, it could (for example) toggle between two states indefinitely, which would cause an infinite loop. The workflow engine prevents this, and will log an error and stop workflow evaluation in that case.

You can adjust the limit by changing "Max iterations" in the plugin settings.

On this page: