Business process designer > BPMN processes > Graphical elements / Approval


approval 1

The Approval activity is used to create document routes. It represents those steps of a process where an employee (for example, a manager) approves or rejects a document. ELMA365 automatically assigns the task to review the document and creates an approval sheet which contains the name of the approver and the decision.


начало внимание

Tip: besides documents, you can send app items and files for approval, too.

конец внимание

How to set up approval

All the settings are managed in three tabs: General, Deadline, and Connectors. Here you can define the approval logic, specify the task name, set up the deadline, etc.    

To open the settings, double-click on the Approval shape on the process diagram.

начало внимание

Make sure that you have added a process context variable that will store the object sent for approval.

конец внимание

General tab

approval 2

The General tab features general information about the approval task:

  • Name*. Enter a name that will be displayed in the process diagram. We recommend choosing a short yet informative name to make the process diagram easy to read.
  • Task name*. Enter a text that the task executor will see in their task list or on the task page. You can add a context variable to the name to make it more detailed. To do that, click on the + sign in the right corner of the field.
  • Item to send for approval*. Specify the context variable that will store the file or app item that is sent for approval.
  • Approval type. This option appears only if a user group or a department is specified as executor in swimlane settings. The task will be assigned to all the users who belong to the user group or department, and the system's behavior will depend on how you set up the connectors and the approval type:
    • Parallel. The approval task will be simultaneously assigned to all executors included in the swimlane. Depending on connector settings, ELMA365 will either wait until every executor reviews the document or the process will go to the next step as soon as one of the executors approved or rejected the document.
    • Sequential. The task will be assigned consequently to all the executors one by one. The process will go to the next step only when all the employees will accomplish the task.  With connector settings,  you can define how the system must behave if someone rejects the document.

Please note that in a dynamic swimlane the tasks will be assigned in the same order as users were specified in the user-type variable. In a static swimlane, the sequence is random.

  • Leave only actual participants – remove from the approval sheet those users who were assigned with the approval task but had neither approved nor rejected the document.
  • Write the output variable. Specify a String type variable that will be used to store the output of the current operation.

The following examples will help you understand how to use approval types in different cases.

Example 1.

Example 2.

Example 3.

Deadline tab

approval 3

On this tab, you can set the due date for the task as well as specify the system behavior in case the task is not completed on time.

There are two ways to set the deadline:

  • Exact time. Specify the number of days, hours or minutes that the executor has to complete the task. The business calendar can be taken into account;

If the approval task belongs to a swimlane with multiple executors, each of the executors will have the specified number of days, hours, and minutes to complete the task.

  • Variable. Sometimes it is needed to complete the approval by a certain moment, for example, by the date when an employee has to get back to the customer with a reviewed document. By this time all the approvers have to either approve or reject the document. In this case, you can use a context variable of the date/time type to define the deadline for the approval task.

If the approval task belongs to a swimlane with multiple executors, and a variable is used to define the deadline, all the executors will have to complete their tasks by this moment, otherwise, the task will be overdue.

In the Notification field, you can select users who will be notified if the executor fails to complete the approval task on time. You can select the current user, a context variable (for example, the process initiator), a user group or an org chart item.

sdai 4

The Interrupt field allows you to specify which path the process flow should take if the executor fails to complete the task on time.

approval 4

ELMA365 will automatically route the process by the selected path if the executor does not approve or reject the document before the deadline. The corresponding connector on the process diagram is marked with the timer icon.


These settings help you timely react to any delays.


Connectors tab

approval 5

Here you can define the approval logic: specify the conditions that define which connector the process flow should take. Do not forget to specify a default connector, it is necessary to avoid creating a bottleneck. If none of the specified conditions is met, the process still needs to go further using the default connector.

начало внимание

The approval task form has only two buttons: Approve and Reject, regardless of how many outgoing connectors the activity has on the process diagram.

конец внимание

To open the connector’s settings, click on its name. The settings window contains two tabs: General and Conditions.

General tab

approval 6

  • Name. We recommend giving a short and clear name since it will be displayed on the transition button on the task form.
  • Description. In this field, enter the text of the tooltip.


Conditions tab

Specify the conditions under which the process should go down this connector.

approval 7

  • You can set up multiple conditions and use a Logical operator to check them. If the result is True, then the process flow will follow this connector:
    • AND. The result is True if both conditions are met.
    • OR. The result is True if at least one condition is met.
    • AND NOT. The result is True if at least one of the conditions is not met.
    • OR NOT. The result is True if both conditions are not met.

Please note that the conditions are checked in the same order as they are listed in the connector's settings.

  • Operand 1, 2. Here you have to select a process context variable or enter a value (for example, the approval or rejection percentage).
  • Operation. Here you can define the comparison operator that will be used to check the conditions by comparing the operands.

If the swimlane where the approval task is located includes several executors, the conditions of the connector are checked each time one of them completes the task.

Signature Settings tab



On this tab, you can enable and set up the use of digital signatures in the Approval task. Read more about signatures in Digital signature in apps.

The following settings are available:

  • Enable signing. Enables the use of digital signatures in the Approval task. After you enable signing, you can specify whether it is required. If the selected option is Do not use, other settings aren’t displayed.
  • Sign attributes. Defines whether the approver needs to sign the app item’s attributes.
  • Sign document file. Defines whether the file attached to the document needs to be signed.
  • Sign decision. Defines whether the approver’s decision needs to be signed. If the user signs the decision, the system will generate a text file with information about the approval task, the item sent for approval, the approver’s decision and comment, and the user who was approving the document.

For each setting, you can select one of the following options:

  • Do not use. The option is disabled. It is not displayed in the Approval task.
  • Optional. The option is displayed in the approval window, but it is not selected by default.
  • Preferred. The option is displayed in the approval window, and it is selected by default.
  • Required. The option is selected by default and cannot be disabled.

Example of setting up an approval route

Found a typo? Highlight the text, press ctrl + enter and notify us