Transitions

A Transition represents the movement from one node to another in a workflow.

On this page

A transition is the movement from one workflow node to another. Click a node, and then drag to draw a transition from the node to another node.

A Node is a single step in a workflow. For example, a node could represent a task assigned to a user, or an action, such as sending a notification or setting of a value. Think of Nodes as the 'building blocks' of a Workflow.

Transitions define the sequence of steps in a workflow by connecting nodes. Each node can have an unlimited number of transitions originating from it or going to it. You can set properties for a transition that define the conditions that must be met before moving from one node to another.

Transition properties enable you to define conditions that must be met before moving from one node to the next. For example, you can set conditions based on column values such as Priority or Amount, or based on the current workflow state such as Approved or Rejected. (Note: Before you can use form fields on your condition, the field must first be promoted.)

Notes: You can right-click anywhere in the Workflow to open a context menu that enables you to turn off/on Transition text for improved readability.

See Set transition properties just below for more information about transition properties and shortcuts you can use when setting them.

Add a transition

  1. Click the center of the node where you want to create the transition.
  2. Drag the mouse to draw a transition to the next node in the workflow.

Delete a transition

  1. Click the transition.
  2. Press the Delete key on the keyboard or click Delete on the ribbon.

Set transition properties

  1. In the canvas, click on the transition.
  2. The Properties pane displays properties for the selected transition.
  3. Under Transition, next to Condition, click the options button […]
  4. In the Edit Condition dialog box, type the expression/condition, and then click OK. See Expressions for additional help creating and using expressions.

    See the table below for a list of Transition relational operators, and see Transition properties for more detailed information about using Transition properties.

Transition functions

Functions enable the processing of list and workflow data - in particular, to use conditions to branch from node to node. Arguments to functions can be literal values or specified as column names. In the latter case, the argument values are retrieved from the list column. The following table lists and describes transition functions.

Note: Some functions require a node name as an argument. To specify a node name, you can type it in the Edit Condition dialog box, or right-click in the Edit Condition dialog box and choose from the Nodes pop-up menu.

Function Description

Approved

Returns true if the node specified as the argument was approved by the assigned user. For example, Approved ("Manager Approval") returns true if the user assigned to the Manager Approval node chose Approve when completing the assignment.

AutoApproved

Returns true if the specified node was approved and it was done via the Default Approval Period associated with the task. Takes the name of the node as an argument. AutoApproved will also trigger Approved, because Approved is a superset of AutoApproved and ExplicitlyApproved.

ExplicitlyApproved

Returns true if the specified node was approved and it was done by the user either clicking the Approve button in the UI or by an email approval. Takes the name of the node as an argument.

InSiteGroup

Returns true if the person assigned to the given Swim Lane exists in the given group. Takes two arguments, the first is the Swim Lane name, and the second is the name of the group for consideration.

Example: InSiteGroup ("Approvers", "Managers") returns true if the person assigned to the Approvers Swim Lane is in the Managers group.

IsAssignmentValid

Returns true if the Swim Lane passed as the single argument has someone assigned to it. This function is useful if you have a process where all Swim Lanes might not be assigned.

Example: IsAssignmentValid("Optional Approvers") will return true if anyone has been assigned to the Optional Approvers Swim Lane, false otherwise.

Match

Returns true if the first argument is matched by the regular expression passed as the second argument.

Example: Match("Invoice Line Items",".*Drill Bits.*") returns true if the column Invoice Line Items contains Drill Bits anywhere in its value.

Otherwise

This is a catch-all for all other conditions. If no other emanating transition matches when the workflow engine is evaluating the next nodes to process, then any transition marked with Otherwise will be traversed. Otherwise takes no arguments.

ProcessInfo

Takes one of Name, Description, StartDate, DueDate, CompletionDate, Status, or Originator as the argument and returns the respective process information.

Rejected

Returns true if the node specified as the argument was rejected by the assigned user.
Example: Rejected("Manager Approval") returns true if the user assigned to the Manager Approval node chose Reject when completing the assignment.

Swim LaneParticipants

Returns a comma-separated list of the users assigned to the specified Swim Lane.
Example: Swim LaneParticipants("Managers") returns all users assigned to the Managers Swim Lane.

Task Info

Takes a task name as the first argument, and then one of Name, Description, StartDate, DueDate, CompleteDate, Status, Note, Participant, or Swim Lane and returns the respective assignment information for the given task.

Example transition conditions

The following table shows examples for frequently used conditions on transitions. You can modify them as needed for your workflow.

For This Condition: Use This Expression:

Dollar amount less than $2,500

[Amount] < 2500

Manager approved and priority is urgent

Approved ("Manager Approval") & [Priority] = "Urgent"

Form is re-submitted

Resubmit = ‘true’

Transition relational operators table

The following table lists the operational operators you can use in Workflow transitions and expressions.

Rational Operators Description Logical Operators Description
== Equal && And
!= Not Equal || Or
> Greater ! Not
>= Greater than or equal    
< Less    
<= Less than or equal    
= Assignment