It's possible to automatically start processes by sending a message to it from another process containing information.


How to make one process trigger another process

You need to configure the receiving process with a catching message on its start event and the sending process(es) with throwing messages on their intermediate or end events. In the receiving process you can define the information that is required. After you have connected the two together you can configure how to send the required information in the sending process.


In the receiving process:

1. Add a start event with the type Message


2. Click on Configure message and name your message. The text that you write in this field will be what will be shown in the process that wishes to send a message. A process can have more than one receiving start event allowing the sending process to choose which one to send a message to.





Required information or not?

A process can start with or without any data, and if your receiving process can be triggered without any information then your settings for the receiving process is done. But otherwise you will need to follow the next steps as well to make the receiving message to pre populate a form to contain the needed information.


3. Add a Data Object to your start event with fields you want to populate with data from the sending process.


4. Open the Configure message in the start event message settings


5. Name the message fields in order to have them show up in the sending process, then select which fields in what form you want to populate.



6. If you want to assign an already assigned user from a role in the sending process to a role in the receiving process, in the Role section, fill in the role in your process you wish to add an already assigned user from the sending process to. 


7.Publish and deploy your process.


NOTE: Only the fields specified in the receiving start message will be visible in the sending process end event detailed below.  


In the sending process:

1. Create a new pool in the sending process model, double click the pool name to open the settings and mark the pool as a black box


2. Click on Select app and browse your receiving process and click on save


3. Add an event of the type throwing Message and connect it to the new pool by dragging an arrow from the event to the pool. This event can be either an intermediate or an end event.

Connect the data object containing the data you wish to send to the message event.



4. Click on Configure message for the event and select Process message




5. If the receiving process has more than one messages, select the wished one in the drop down



6. The section also shows weather the receiving process request any information to get triggered, if so there are one or more values to be mapped from a form field or set by default.

If your sending process always should send the same thing select the checkbox to the right of the form value and state your information. If your value should be fetched from a form field, then you have to connect a data object to your event, then go back to this message configuration and select the data object and state the form field. 




7. If there are any roles in the receiving proces which are set to receive assigned performers from roles in the sending process, these will show up under the Roles section in the process message configuration window.




NOTE: Any other process, in the same space, can send and trigger the receiving process, and if you want the process to have the ability to be triggered manually; add a normal start event as well.