userSelectionTask Step

Use this feature to route a workflow task to users selected during workflow execution.

Last published at: August 20th, 2026

Description:

The UserSelectionTask workflow step creates a human task and routes it to selected users or roles. It provides extensive configuration options for task descriptions, priorities, completion durations, routing rules, reminders, email notifications, response handling, and user reassignment.

Unlike a task step that relies solely on predefined user or role assignments, the User Selection Task is designed for scenarios in which the users who should receive the task can be selected or configured as part of the workflow.

The step supports:

  • Routing tasks to selected users
  • Routing tasks to selected roles
  • Configuring user selection
  • Task descriptions and detailed instructions
  • Task priority
  • Task completion and expiration settings
  • Weekend handling
  • Task routing rules
  • Task reminders
  • Waiting for all assigned users to respond
  • Storing the routed user list in a Variable/Global
  • Email notifications
  • Separate emails to routed users
  • Email CC lists and attachments
  • Expiration notifications
  • Acknowledgement links
  • Custom approval and rejection button labels
  • Hiding the reject button
  • User task reassignment
  • Required comments
  • Multiple task completion outcomes

 

Inputs

  • Select users to route to – Optional users to whom the task should be routed.
  • Select roles to route to – Optional roles to whom the task should be routed.
  • Configure user selection -- Optional configuration for user selection behavior.
  • Task description – Required description of the task.
  • Task detail description - Optional detailed task instructions or information.
  • Task priority – Optional priority assigned to the task.
  • Complete the task in - # of days, minutes, hours, and months to complete the task by
  • Task expire type – Optional setting that determines how task expiration is handled.
  • Include weekends – Optional setting controlling whether weekends are included when determining the task duration.
  • useFullDuration -  Optional setting controlling whether the configured task duration is used in full.
  • taskRoutingRules- Optional routing rules for the task.
  • taskReminder- Optional reminders associated with the task.
  • Wait for all to respond – Yes = all users must act on the task, No = requires only 1 user to act on the task
  • Store the routed user list in a Variable/Global – Optional workflow Variable/Global where the routed user list can be stored.
  • sendEmailNotifications – Yes = email notification will be sent to each user for the task
  • sendSeparateEmails - Yes, to send separate emails for multiple users
  • fromEmail – from email address
  • emailSubject – the subject of the email message
  • emailBody – the body of the email message
  • emailFiles – email file attachments
  • emailCCList - list of email addresses (separate by semicolon) 
  • sendExpireEmail - send expired email notification
  • sendAckLink - send acknowledgment link
  • approveButtonLabel--label for approval button
  • rejectButtonLabel--a label for the reject button
  • hideRejectButton--hide reject button
  • userCanReAssign – Yes = user can re-assign the task to other active users 
  • commentRequired - User comments are required
 

 

Returns

  • Completed – The completed return path indicates that the task was successfully completed.
  • Closed - The closed return path indicates that the task was closed.
  • Rejected – The rejected return path indicates that the task was rejected.
  • Timeout – The timeout return path indicates that the task reached its configured expiration condition.
 

 

Usage: 

The User Selection Task is typically placed at a point in a workflow where human involvement is required and the users responsible for completing the task need to be selected or configured.

The task can be routed directly to users, to roles, or through the user-selection configuration provided by the step.

For example, a workflow can:

  • Route an approval task to selected users.
  • Route a review task to users belonging to selected roles.
  • Allow workflow participants to determine who should perform the next task.
  • Require multiple users to respond before the workflow continues.
  • Assign a priority and completion period to the task.
  • Send task notifications by email.
  • Provide acknowledgment links for recipients.
  • Require comments when users complete or reject a task.
  • Allow assigned users to reassign the task.
  • Handle completed, rejected, closed, and timed-out outcomes separately.

 

When the workflow reaches the User Selection Task, the configured users or roles receive the task. If Wait for all to respond is enabled, the workflow waits for all required responses before continuing. If configured, the routed user list is stored in the specified Variable or Global variable.

 

Typical Workflow Suggestions

Dynamic Approval Routing

Use the User Selection Task when an approval must be routed to users selected based on the specific workflow instance.

Example:

Submit Request → User Selection Task → Process Approval

This is useful when the approver cannot be determined solely from a fixed workflow assignment.

 

Role-Based Review

Use the step to route a task to one or more selected roles.

Example:

Submit Document → User Selection Task → Review Document

This can be useful when different workflow instances need to be reviewed by different organizational roles.

 

Multi-User Approval

Use Wait for all to respond when all selected participants must respond before the workflow can continue.

Example:

Submit Request → User Selection Task → Wait for All Responses → Continue

This can support review processes requiring input from multiple stakeholders. The XML exposes Wait for all to respond as an optional configuration.

 

Request Review

Use the step to allow selected users to review information before a workflow continues.

Example:

Create Document → User Selection Task → Review → Complete

 

Escalation and Time-Limited Tasks

Configure task expiration and reminders for human tasks that must be completed within a defined period.

Example:

Submit Approval → User Selection Task → Wait for Response → Escalate on Timeout

The XML provides properties for task duration, expiration type, weekend handling, full-duration behavior, and reminders.

 

Email-Driven Task Notification

Use the email properties when recipients need to be notified outside the normal task interface.

Example:

Create Task → User Selection Task → Email Notification → User Response

The step supports email subject, body, attachments, CC recipients, separate emails, and expiration notifications.

 

Task Reassignment

Enable the user to reassign the task when responsibility may need to be transferred to another user.

Example:

Assign Task → User Selection Task → Reassign if Necessary → Complete

 

Required Review Comments

Use Comment required when the workflow needs users to provide an explanation with their response.

Example:

Submit Change → User Selection Task → Review → Require Comment → Continue

 

Approval and Rejection Processing

Use the separate completed and rejected return paths to implement different business logic.

Example:

User Selection Task → Completed → Continue

User Selection Task → Rejected → Return for Correction

The step explicitly defines completed and rejected return values.

 

Example:

Let’s build and execute the “userSelectionTaskDef” example.          

  • Create a new process definition named “userSelectionTaskDef” and open it in designer mode. 
  • Drag a “Task, userSelectionTask” step to the canvas.
  • Connect the dots between the “Start” step and other steps, as shown above.
  • Select the line between the steps to configure the “Connection Properties”. The default property values are “None, Error, Evaluate, and Timeout”. Depending on the step’s purpose, additional values are available for configuration. 
  • Define a variable or a global to store the list of routed users.
  • Click the “userSelectionTask” step to configure its “Required” properties. Enter the step name and task description. Note: As per the legend, the task step has one incoming and two outgoing connections. Click the Save button. Note: Click the "AI Predict" button to have Copilot add new process steps that match your process description. 

 

  • Click the globe icon to globalize the task step using the following UI. Select the language from the dropdown list. Click the “Translate” button to convert the description into the selected language. A notification message is displayed in the top-right corner. 

 

  • Click the “userSelectionTask” step to configure its “Optional” properties. Click the button to specify the users to whom the route should be sent. Click the button to specify the application role (users) that the application will route to. Click the button to configure the user selection. Provide a task detail description. Continue configuring the “task” steps’ “Advanced” properties, as shown below. Select the task priority from the list (low, medium, high, normal, urgent). Select the task expiration type (days, hours, months, minutes). Provide the task completion duration value. Select the 'Include weekends' option as “Yes” if desired. Select “Yes” to wait for the entire duration, even after completion. 

 

  • Task Routing Rules - Select task routing rules (default, task lock, least # of tasks in total, least # of tasks by definition) to be applied during runtime. 
    • Default” means the task has no lock status. 
    • Task lock” means the task is locked by a user. 
    • Least # of tasks in Total” means the task is assigned to the user with the fewest total tasks.
    • Least # of tasks by Definition” means the task is assigned to the user with the least count of tasks by definition.

 

  • Configure task reminders. Click the Add Row (+) button to insert an empty row. Enter the time duration, subject, and message body. Click the Save button. You can insert multiple Task Reminders using the Add Row function.  

 

  • Configure whether the task needs to wait until all users have responded (when routed to more than one user). Provide a variable or global reference to store the list of routed users upon task completion. The variable may be created before or after the process definition is saved. Select “Yes” to send an email notification (the Status determines the notification duration - Status - Settings - Email - Notifications section). Select “Yes” if separate emails are to be sent to users (which include different task IDs in the URL). Provide the FROM email address (other than the default). Provide the email subject text. Click the button to configure email attachments on the app server. Click the Save button.   

 

  • Click the “userSelectionTask” step to configure its “Optional” properties. Click the button to enter the email content (body). Click the button to configure email file attachments (from the app server path). Click the Save button. 

 

  • Click the “userSelectionTask” step to configure its “Optional” properties. Enter an Email CC list (semicolon-separated). Select “Yes” to send expired notifications (the Status determines the notification duration - Status - Settings - Email - Expired Task Notifications section). Select “Yes” to email an acknowledgment link. Enter new text to change the Approve and Reject button labels (e.g., OK and Not OK). Select “Yes” to hide the Reject button. Select “Yes” to reassign the task at runtime. Select “Yes” for mandatory task comments. Click the Save button. 

 

  • Click the button to configure the user selection. Click the Add Row button to add new rows. Select Users from the radio button group. Enter the task label text. Enter a variable or a global to store a list of selected user IDs. Click the Save button. 

 

  • Click the Add Row button to add new rows. Select Roles from the radio button. Provide the task label text. Provide a variable or a global to store the list of application role user IDs after selection.  

 

  • Click the Task Reminder to set the task reminder intervals. Enable "Send Email Notification" to “On”. Task reminders with a positive value are calculated from the task creation date. Task reminders with a negative value are calculated by subtracting that duration from the task's due date. The task reminder message body supports line breaks. 

 

  • Click the Email body and use the existing template (you can also edit it), or create a custom one. Enter the message text in the email body. Click the “Replace Links” button to select information links from the list to include in the message. Click the “Variables” or “Globals” button to select variables and globals to include in the message. Click the Save button. 

 

  • Click the “Task 1” step to configure its routing properties for users.

 

  • Search for users by the first three characters and select from the list in the left pane using the arrow buttons. The task can be assigned to more than one user or to a user GUID (provided the GUID is known in advance). Configure the variable to reference the user's GUID. The username selection should be empty, as the function is mutually exclusive, as shown in the image below. 

 

  • Click the “Task 2” step to configure its routing properties for roles. 

 

  • The “variable.roles” stores all user names (comma-separated) for the selection configured for that application role and is mapped to the input field, as shown below.  

 

  • The “Logging” configuration is necessary for documentation and to measure workflow progress and percent complete. This is done by configuring the step state and percent fields individually, as shown in the images below. Configure the “Logging” using the following properties. The "Send Test Mail" feature sends a test email with the configured email body to the current (logged-in) user. 

 

  • Save the process definition, create a new instance, and execute it. Render the process instance. 

 

  • Click “Items > Tasks”. The step should route the UserSelection task to users.

 

  • The UserSelection task is rendered for the user as shown below. The user selects the target user from the active user list and the application role users list. Use the “Search” text box to filter the list. The task can be saved incrementally using the “percentage scroll bar” and the “Save Comment” button. Upon user selection of task completion, the process step routes "Task 1" and "Task 2" to the appropriate users and app roles. 

 

Tips:

  • Provide a clear and meaningful Task description, since it is the only required task configuration property.
  • Use Select users to route to when specific users should receive the task.
  • Use Select roles to route to when responsibility should be associated with one or more roles.
  • Use Configure user selection when the workflow requires configurable user-selection behavior.
  • Use Task detail description to provide instructions or additional context to task recipients.
  • Set Task priority appropriately for business-critical activities.
  • Configure a completion period and reminders for tasks with a defined response deadline.
  • Use Wait for all to respond only when the workflow genuinely requires responses from all routed participants.
  • Store the routed user list in a Variable/Global so subsequent workflow activities can access the selected users.
  • Configure separate outgoing paths for completed, rejected, closed, and timeout outcomes.
  • Use Comment required when an audit trail or explanation is needed for the user's response.
  • Use meaningful custom approval and rejection button labels when the standard labels do not accurately represent the business action.
  • Enable User can reassign task only when reassignment is appropriate for the business process.

 

Notes:

The UserSelectionTask step is defined in the Human Tasks category with the internal name userselectiontask and display name User Selection Task.

The workflow step is implemented by the FlowWright.Workflow.UserSelectionTask namespace in FlowWright.Workflow.dll and is defined as a Process step. It supports 2 incoming connections and 2 outgoing connections.

The step contains 28 configurable properties, ranging from user and role selection through task configuration, routing, reminders, email notification, response behavior, reassignment, and comments.

The routing properties use FlowWright data types to select users and roles, and to configure user selection. Task-related properties use dedicated data types for priority, expiration, routing rules, and reminders.

The step supports four task outcomes: closed, completed, rejected, and timeout.

 

Feature Comparison.

Feature Task CheckListTask ChoiceTask RouteToQueue UserSelectionTask
Primary purpose Route a task to users/roles Route a task containing checklist items Route a task where users select a defined choice Route a task to a queue Route a task using configurable user selection
Category Human Tasks Human Tasks Human Tasks Human Tasks Human Tasks
Select users Yes Yes Yes No Yes
Select roles Yes Yes Yes No Yes
Select queue No No No Yes No
Checklist No Yes No No No
User-selection configuration No No No No Yes
Choice/return-value configuration No No Yes No No
Routed item Yes Yes Yes Yes No
Render URL Yes Yes Yes Yes No
External email addresses Yes Yes Yes No No
Task priority Yes Yes Yes Yes Yes
Queue priority No No No Yes No
Due duration Yes Yes Yes Yes Yes
Expiration type Yes Yes Yes Yes Yes
Include weekends Yes Yes Yes Yes Yes
Use full duration Yes Yes Yes No Yes
Routing rules Yes Yes Yes No Yes
Task reminders Yes Yes Yes No Yes
Wait for all to respond Yes Yes No No Yes
Store routed users Yes Yes No No Yes
Email notification Yes Yes Yes No Yes
Separate emails Yes Yes Yes No Yes
Email subject/body Yes Yes Yes No Yes
Email attachments Yes Yes Yes No Yes
CC list Yes Yes Yes No Yes
Expired-task email Yes Yes No No Yes
Acknowledgement link Yes Yes No No Yes
Approval/reject button labels Yes Yes No No Yes
Hide reject button Yes Yes No No Yes
Reassign task Yes Yes Yes No Yes
Require comment Yes Yes Yes No Yes
Store selections No Yes No No No
Return paths closed, completed, rejected, timeout closed, completed, rejected, timeout Defined through choice return values completed, rejected, timeout closed, completed, rejected, timeout

 

Definition Sample:

You may download a sample definition when provided and import it into your FlowWright Process Definition.

Note: Verify and complete any missing configuration after importing a sample, including:

  • Users or roles to route the task to
  • Task description and details
  • Task priority
  • Completion and expiration settings
  • Routing rules
  • Reminders
  • Email notification settings
  • Response and approval/rejection configuration
  • Reassignment and comment requirements
  • Outgoing connections for each task outcome

After verifying the configuration, save the Process Definition before execution.

Click here to download the sample file.