Conditions determine whether a task should start or be skipped. Conditions can be simple, like “If the deadline is 3 days from now; start the task” or more complex, “If the deadline is 3 days from now, and the process is high priority; start the task”.
Conditions can be applied to tasks and fields.
- Use Task Conditions to configure if a task should start or be skipped.
- Use Field Conditions to configure if a field should be shown or hidden in a web form or the Assign Task to a Person action.
Task conditions are set per task on the configure task page and field conditions are set per field on the configure field page.
Dependencies and task conditions form the order and logical flow of actions in a Workflow. Almost all processes will use dependencies and conditions. Add task conditions when configuring the task.
💡Tip: All conditions are assessed after dependencies. Dependencies determine when a task is up next in line, then the condition is assessed to determine if the task should start or be skipped. See how and when conditions are evaluated.
Conditions work like conditional statements, for example: “if the run owner of an instance is equal to Gundula, then assign the task to Gundula’s group”. You create conditions by defining these bolded elements. The example below shows them filled in.
The 1st and 3rd line of the condition are fields or values and contain any of the following values:
- Field: Select from a list fields available in this Workflow.
- Field Choice: Only appears if one of the conditions is a single or multiple choice field. Select from a list of available choices.
- Text: Enter in a value, such as text or integer, to compare against. This accepts more than just strings.
- True or False: Select from True or False.
- Action: Select from a list of actions available in this Workflow.
- Action Status: Select a status that an action may have, such as “Completed” or “In Progress”
The 2nd box of the condition is the operator. An operator defines the relationship between the 1st and 2nd box. Choose from an of the following operators:
|is empty||True if the field value is blank or null, does not require a second value|
|is not empty||True if the field has a value|
|is equal||True if the first and second value are the same|
|is not equal||True if the first and second value are different|
|is less than||True if the first value is a smaller number, earlier date, or earlier in alphabetical order versus the second value|
|is greater than||True if the first value is a larger number, later date, or later in alphabetical order versus the second value|
|is less than or equal||True if the first value is a smaller number, earlier date, or earlier in alphabetical order or the same as the second value|
|is greater than or equal||True if the first value is a larger number, later date, or later in alphabetical order or the same as the second value|
|is in||True if the second value contains the first value. For example “vacation” is in “extended vacation request”.|
|is not in||True if the second value does not contain the first value|
|starts with||True if the first value starts with the text or numbers of the second value|
|does not start with||True if the first value does not start with the text or numbers of the second value|
|ends with||True if the first value ends with the text or numbers of the second value|
|does not end with||True if the first value does not end with the text or numbers of the second value|
Every task has a status like Pending, In Progress, or Completed. Conditions are part of what determines whether a task should move from Pending (not yet started) to In Progress, and so on. Before a Pending step is set to In Progress or Skipped, the step’s dependencies, conditions, and delays are checked one by one.
Conditions are always checked after dependencies. If a dependency or condition is not met, the step is skipped and set to Skipped.
After dependencies and conditions are checked, the delay is checked. If the delay is not met, the step is delayed and set to Delayed. The conditions and delay are rechecked after the delay; the dependencies are not rechecked. The following video demonstrates these scenarios.
See understanding step status and milestones for more details on each status.
Conditional statements can be more advanced with additional operators like AND and OR. With these operators, you could expand on the example above: “if the run owner of an instance is equal to Gundula AND if the deadline of an instance is not equal to 3 days, then assign the task to Gundula’s group”
You can add AND and OR operators by selecting Add a Condition below the last condition, and a new condition will be inserted directly below. See the Task Conditions and Field Conditions articles for more information.
Conditions can be applied to both tasks and fields. Task conditions are set per task on the configure task page and field conditions are set per field on the configure field page.
A condition can be based on the status of an action, like whether or not it is assigned or completed. In the example below, the task being configured will not start unless the
Send email task is
If something’s not working as expected, or you’re looking for suggestions, check through the options below.
Remember that if the conditional statement evaluates to true, the field is hidden or the task is skipped.
For example, when setting a task condition, the task executes if the condition is true. The task is skipped is the condition is false.
- If Action A is snoozed, and your condition is “If Action A is snoozed”, the task will execute.
- If Action B is not snoozed, and your condition is “If Action A is snoozed”, the task will be skipped.
Conditions are evaluated from top to bottom. In some cases, it’s necessary to rearrange the order of conditions when you have two or more conditionals linked with and and or statements. For example, it’s usually best practice to put is empty or is not empty statements last.