Configuring Intelligent Task Prioritization

With Intelligent Task Prioritization, a task list uses historic runtime data to automatically prioritize tasks in terms of skill and impact, leading to workforce efficiency improvements.

Before you begin

You must install Business Automation Insights and configure event emitters. See Configuring event emitters.

About this task

Tasks are assigned to a user in an optimal sequence to maximize throughput and to further improve your workforce efficiency according to
  • Who is an expert for that task
  • The impact of the worker for that task predicted by processing times

Task experts are determined by using a self-supervised classification neural network that predicts the likelihood of whether a worker will complete a task faster than the workforce average. Processing time is determined by using a regressive neural network that predicts how long it takes a worker to complete a task in seconds. These models are hosted in Machine Learning Server.

Procedure

  1. Configure the parameters for Intelligent Task Prioritization in the custom resource definition file.
    Go to the "Intelligent Task Prioritization configuration parameters" section. For more information, see IBM Business Automation Workflow and Workstream Services parameters.
    • Specify the number of replicas by setting the following property to the number of pods that you want:
      baml_configuration:
        intelligent_task_prioritization:
          replicas: <number_of_pods>
    • Enable autoscaling, which allows Kubernetes to dynamically scale the number of Intelligent Task Prioritization pods to handle requests from the IBM Business Automation Workflow Task Filter Service. To enable autoscaling, set the following properties:
      baml_configuration:
        intelligent_task_prioritization:
          autoscaling:
            enabled: true
            max_replicas: <max_replicas>
            min_replicas: <min_replicas>
            target_cpu_utilization_percentage: <cpu_utiliziation_percentage>
  2. Enable Intelligent Task Prioritization in Process Portal and Workplace.
    Go to the "Workflow Services configuration parameters" section and add the following attributes under baw_configuration:
    • To activate Intelligent Task Prioritization, set host_federated_portal to true in at least one IBM Business Automation Workflow instance.
    • Add a business_event section under each IBM Business Automation Workflow instance with both enable_task_api and enable_task_record set to true.
    • After Intelligent Task Prioritization is installed, it is available for use in Process Portal Task List and Workplace. If show_task_prioritization_service_toggle is set to true, a "task prioritization" button in the task list dashboard lets users enable or disable task prioritization. Otherwise, task prioritization is always enabled.

    For more information on configuring Intelligent Task Prioritization in Workplace, see Enabling Intelligent Task Prioritization.

    For example:
    baw_configuration:
      - name: instance1
        host_federated_portal: true
        business_event:
          enable: true
          enable_task_api: true
          enable_task_record: true
          subscription:
            - {'app_name': '*', 'version': '*', 'component_type': '*', 'component_name': '*', 'element_type': '*', 'element_name': '*', 'nature': '*'}
      environment_config:
          show_task_prioritization_service_toggle: true
          always_run_task_prioritization_service: true

What to do next

The next step is training. The machine learning models for Intelligent Task Prioritization are trained based on historical data. Therefore, sufficient task history is required before the models can be trained. Specifically, two or more workers must complete at least 30 task instances for each task before they can be used as training data. The trained models are saved in persistent storage. If a pod is deleted, the new pod will access the same models from existing persistent volumes. Similarly, the logs are also stored in persistent storage. However, the logs for each pod are saved separately in different subdirectories.