Different between receive message event and user task


Can someone please explain the difference between passively waiting on a receive message event and a user task.

For me they are steps that will halt the process until data is sent to the engine and makes the process move forward…

Any niche between them ?

Thank you

Hello @maroun_ayle ,

regarded in an abstract way, these 2 activities/events are waiting states. You could add some more events and activities as well that have a similar behaviour.

When we look at a process in a more semantic way, the difference is very clear. User tasks require interaction of a person with the system, receive message events require a message to be sent to a system (in a technical way usually).

Hope this gives you a first idea.


Hello @jonathan.lukas, thanks for the quick reply!

I understand so far, my question in a more technical way is the following:

If I’m exposing camunda via a custom API built on top of camunda which then accesses the camunda java API to forward the process, what are the differences between a message receive event and a user task?

Hello @maroun_ayle ,

for a user task, there will be 2 directions of information flow required. (Plus, there is more interaction possible)

  1. Towards the user: Information about which data needs to be entered where
  2. Towards the API: The submitted form data


For a receive message event, only one direction is relevant: Towards the API. Another possible endpoint could be a query for waiting receive message events to assert that your API call will not fail.


One very important difference regarding identification: A user task always has a unique ID, as a receive message event will be queried by its name and some other parameters that will make it unique as a whole.

The information sent towards the API will be handled in a quite similar way inside the engine again.

Hope this helps