userSelectionTask Step

Learn how to create and configure a user selection step

Last published at: May 14th, 2024


Use "User Selection Task" to select users and/or application role (users) and route tasks appropriately, during run time. 


  • routeTo – list of users to route the task
  • routeToRoles – select roles to route to
  • configureUsers--configure user list
  • taskDesc – description for the task
  • taskBody – body of the task
  • priority – priority of the task
  • daysToComplete - # of days, minutes, hours, months to complete the task by
  • expireType – task expire type
  • includeWeekends – include Weekends
  • taskRoutingRules- task routing rules types
  • taskReminder- set task reminder to send reminder mails
  • waitForAll – Yes = all users must act on the task, No = requires only 1 user to act on the task
  • storeRouteToUsers – variable to store what users the task was routed to
  • sendEmailNotifications – Yes = email notification will be sent to each user for the task
  • fromEmail – from email address
  • emailSubject – subject of the email message
  • emailBody – body of the email message
  • emailFiles – email file attachments
  • sendExpireEmail - send expired email notification
  • sendAckLink - send acknowledgement link
  • approveButtonLabel--label for approval button
  • rejectButtonLabel--label for reject button
  • hideRejectButton--hide reject button
  • userCanReAssign – Yes = user can re-assign task to another active users 


  • completed – task was approved and completed
  • rejected – task was rejected
  • timeout – task timed out 



Let’s build and execute the userSelectionTaskDef example.          

  • Create a new definition called “userSelectionTaskDef
  • Select the definition and click the “design” button
  • Drag a userSelectionTask step and Task step to the canvas
  • Connect the steps as shown on the above graphic
  • Define the variables as shown on the below graphic

  • Click on the “userSelectionTask” step to configure its properties
  • Configure the User Selection values as shown on the below graphic. Variable.Users stores all user GUIDs (comma separated) during run time and Variable.Roles stores all user names (comma separated) configured for that application role.

  • Click on Task reminder to set task reminder intervals. Enable "Send Email Notification" to ON.Task reminders configured with a positive value is calculated from the task created date. Task reminders configured with a negative value is calculated by reducing that duration from the task due date. The task reminder message body supports line breaks.

  • Click on Email body and use the existing template (you can edit existing template as well) as email body or create custom template as email body.

  • Click on the “Task 1” step to configure its properties to route to users. Variable.Users stores all user GUIDs (comma separated) on selection and is mapped to input field as shown below. 

  • Click on the “Task 2” step to configure its properties to route to roles. Variable.Roles stores all user names (comma separated) on selection configured for that application role and is mapped to input field as shown below.  

  • Save the process definition, create a process instance and execute. The user selection step routes the task to the user to make an appropriate user and role selection as shown below. 

  • On user selection task completion, the "Task 1" and "Task 2" are routed to appropriate users and app role (users) by the process step. This is visible when the process instance is rendered, click on Items - Tasks menu option. 

  • Navigate to Logging settings. The "Send Test Mail" feature is provided to send a test email with the contents configured in the email body, to the current (logged in) user.