Receive Task

Receive Task
A Receive Task is a simple Task that is designed to wait for a Message to arrive from an external Participant (relative to the Process). Once the Message has been received, the Task is completed.
— BPMN 2.0.2 Standard, 10.3.3, Receive Task

In Flowable, Receive Tasks are used if you want to stop the execution flow until an external source sends a trigger to continue.

This can be useful if an external system needs a long time to process data and you want to wait until the processing is done.

A similar result can be achieved if the flag Triggerable in a Service Task is activated.


The following example shows a process where a user enters the name and address of a client. The information is then sent to an ERP system. Since the communication between the Java back end of our application and the external system is asynchronously, we do not know when the processing is done. For that reason, the ERP system has to acknowledge that the client was created, for instance by calling a REST endpoint defined in the application which triggers the continuation of the process.

Receive Task


Group Attribute Description



The unique identifier of the element within the process model.


The name of the element. This is the name displayed in the diagram.


A description and additional information about this element.



When enabled, the activity is started as an asynchronous job. The process state is persisted before this element is executed. Then the process execution is resumed asynchroneously. This can be used when the execution of an activity takes a long time to return the user interface. However, if an error occurs before the following wait state, there is no direct user feedback.

Execution listeners

Active Execution Listeners of the activity. This lets you react to the following events:

  • Start: Occurs when the activity is started.

  • End: Occurs when the activity is completed.

Skip expression

Defines an expression which is evaluated before executing the task. If it evaluates to true, the task is skipped.

Skip expressions are only be evaluated if there is a process variable _ACTIVITI_SKIP_EXPRESSION_ENABLED with the boolean value true.

Is for compensation

Determines whether the activity can serve as a compensation for another activity.

Multi instance

Multi instance type

Determines if multiple instances of this activity are created. There are three choices:

  • None (default, only one instance is created).

  • MI parallel (activities are created in parallel. This is a good practice for User Tasks).

  • MI sequential (activities are created sequentially. This is a good practice for Service Tasks).

Once a type other than None is chosen, the following options appear:

  • Collection: The number of instances is determined by the elements of a collection. For each element in the collection, a new instance is created.

  • Element variable: The variable under which each element is available to the newly created instance.

  • Element index variable: The variable under which the current number of iterations is stored.

  • Completion condition: An expression which, if it evaluated to true, stops the creation of new instances.

  • Cardinality: An expression or numeric value (integer) which determines how many instances are created.


Font weight

The font weight of the element in the diagram.

Font size

The font size of the element in the diagram.

Font color

The font color of the element in the diagram.

Font style

The font style of the element in the diagram.

Background color

The background color of the element in the diagram.

Border color

The border color of the element in the diagram.