Self managable user tasks - notification and reassignment

As a continuation of the first post, let's try to make use of LDAP configuration to make actors aware of the tasks awaiting their attention.
Human task service is capable of reacting on certain events such as task was not started or task was not completed in time. Currently there are two options a process designer can choose from:
  • remind the user about the task
  • reassign the task to another actor/group
Depending on the needs either one of them or both can be configured on a user task activity, moreover designers are not limited to single instances of those events, for instance user task can be modelled as follows:
  1. as soon as task is created send notification to the actor assigned to it
  2. if there is no action within a day, send a reminder to the actor
  3. if there is no action within two days, reassign the task to another actor
  4. if the task is not completed within a week send notification to a manager
This is illustrated on following screen cast, starting at designing a process with user task, configuring deadlines (reassignment and notifications), building and running the process.

1. first let's design the process and define deadlines

2. now it is time to build the package and execute process

Task service supports four types of events:
  • reassign if not started
  • reassign if not completed
  • notify if not started
  • notify if not completed
To give some flexibility, expression that reference process and task variables are supported, for instance when modelling notification, users and/or groups can point to a process variables to get a list of users/groups that should be notified. In addition, notification subject and body can reference both process and task variables and provides additional variables that could be useful when referring to a task:
  • processInstanceId
  • processSessionId
  • workItemId
  • taskId
  • owners
 and all task variables are available as Map in
  • doc
Process variables are accessed with #{variable} and task variables are accessed with ${variable}, simple notification could look like this:


A task with id ${taskId} was assigned to you. You can access it in your personal <a href="http://localhost:8080/jbpm-console/app.html#errai_ToolSet_Tasks;Group_Tasks.3">inbox</a>.


Although HTML notifications are supported it is recommended to make use of process variables and some services to provide email templates instead of putting them inline within process definition, the bpmn2 file. Both subject and body of the notification can be declared as process variable.

but how to configure it?

Note: This guide assumes that human task service is deployed as web application, if that is not the case please refer to online documentation.

There are two elements that needs to be provided to make human task capable of performing deadline actions:
  1. configure user info component that delivers information required by notification mechanism
  2. configure email service
And of course declare deadline requirements on the user task in your process.

Previous post showed how to configure LDAP user info component to utilize external service as user information provider (Quick recap - it simple requires to put the right class name in web.xml init param section - user.info.class and LDAP configuration property file). As this is rather common to use LDAP in such cases there is a way to add custom implementations as well so you are not limited to that.

Configuring email service is done by providing drools.email.conf property file that contains smtp configuration and place it inside META-INF directory of jbpm-human-task-war/WEB-INF/classes.

from = sender-email-address (required)
replyTo = reply-to-email-address (optional)
host = smtp-host-name (required)
port = smtp-port-number (required)
defaultLanguage = en-UK

NOTE: there could be a need of prefixing file name with additional drools. to be found properly due to bug. So file name should be drools.drools.email.conf; this will be fixed in 5.4.

With this, many uses cases can be covered as shown in the example but most likely not all, so if there are any scenarios you find yourself in and think it might be useful to others please let us know about it:)


  1. Hello Maciej

    Maybe you could help me about how configurate an email task notifications, in JBPM 6.0.1 using KIE WB, because I am not using eclipse.


    1. I have this on my todo list and hopefully will publish a new article on how to configure jBPM (workbench/kie server) to send emails this week. stay tuned and keep an eye on new posts here.

    2. Thanks!! I will be waiting for your article!!

    3. here is the article about email with jBPM http://mswiderski.blogspot.com/2017/04/email-configuration-for-jbpm.html

      it was tested with 6.5 but should work same way for 6.4 and even 6.3

  2. This comment has been removed by the author.

  3. Hi Maciej, I am just following your blogs these are all excellent.
    I am in need of sending a mail to multiple recipient. I am able to send it to single recipient.
    I will get the java list which contain all set of email ids where I need to send a mail notification through a script task or alternative.

    1. see this article http://mswiderski.blogspot.com/2017/04/email-configuration-for-jbpm.html

  4. hi Maciej

    is Reassignment and notification properties are removed from version 7.8? as i am not able to find for human task

  5. Even I am looking for reassignment and notification functionality in human task in process designer(version 7.15.0). Is it removed ? There are lot of drastic changes happening with jbpm and there is no guarantee that a feature which works in one version will also work in other version.

  6. Its my bad. Looks like the new stunner UI for process designer is not yet completely implemented. I have to switch to legacy process designer with one caveat that I cannot switch back to new stunner interface. Having said that am I going to lose any new features built in the designer tool ?

    Lastly, what is the road map for the new stunner Interface ?