There are two generic types of business processes in Bitrix24:
a sequential business process that performs a series of consecutive actions on a document, from a predefined start point to a predefined end point;
a state-driven business process that does not have start and end points; instead, the workflow changes the process status. Such business processes can finish at any stage.
Sequential Business Process
The sequential modus is generally used for processes having a predefined, limited lifecycle. A typical example is the creation and approval of a text document. Any sequential process usually includes several actions between the start and end points.
Status-driven Business Process
The status-driven approach is used when a process does not have a definite time frame and can recur or can cycle on the same status due to the nature of production or office style. A typical scheme for such processes consists of several statuses, which in their turn include actions and status change conditions.
Each action in a status is usually a finite sequential process whose design is defined by the nature of actions performed on information in a given status. Hence, a status-driven business process consolidates multiple sequential processes, the activity between which is relayed depending on their result.
How to choose the right business process type
In practice, any management task can be modeled using a sequential as well as a status driven business process. However, an improperly chosen business process type may make the resulting model and business process template substantially and unreasonably more complicated.
Use a sequential business process to model a simple sequence of actions.
Choose a state-driven business process if the model shows that a business process may occur in different statuses along the way, and it may migrate from one status to another according to the rules the model specifies. This kind of business process enables full control over the document access permissions in different statuses. Additionally, you can specify events that will trigger the execution of child processes.