Steps
The steps that make up a workflow are divided into Ordered Steps (steps that will be executed in the order they are listed in the XML) and Unordered Steps, which must be explicitly indicated by an action.
Ordered Steps
Ordered steps' actions may contain the attribute "move", with a value "forward" or "reverse." This has the effect of moving the workflow to the next or previous ordered step. Ordered steps are ordered by the order in which they appear in the workflow definition xml <steps> element. There are three types of ordered steps:
System Step
- Happens automatically and is carried out completely by the system without user intervention.
- This type of step must only have one action whose type is "auto". This action is generally reserved for running system triggers such as Merging, Publishing, Versioning, etc.
Transition Step
- Represents a user choice.
- A transition step will have N different actions representing user choices.
- Can be assigned to a user or group.
Edit Step
- The workflow waits for the asset to be edited before continuing.
- It is only when a workflow is waiting at an edit step that a workflow's related asset may be edited, and once that edit takes place the action associated with this edit step is executed. Hence for this step type (in addition to system) it only makes sense to have one action, with type "auto".
- Can be assigned to a user or group.

Unordered Steps
Unordered steps' actions must use the "next-id" attribute to specify which step the action forwards to; since these steps are unordered, it does not make sense to use the "move" attribute in their action(s). Unlike ordered steps, unordered steps do not need to occur in order to complete the workflow. Unordered steps, therefore, should be used for optional steps, such as "Edit".
Elements that make up a Step
Each step is made up of a number of attributes that tell the system what the step is and what should happen during that step:
- step identifier – This is how this step is identified within the workflow. Identifiers are used to define transitions from one step to another by using the next-id attribute of the action.
- label – This is what will be visible to the user.
- type – This may be system, transition, or edit.
- action – his determines what the system should do next (transition steps may have multiple actions).