1. Field
This disclosure generally relates to the field of workflow management. More particularly, the disclosure relates to task assignment.
2. General Background
A workflow is a sequence of events in which tasks are to be performed. A workflow management system is a system that defines the workflow for a given project and assigns tasks to various workers and resources according to the workflow.
Most communication systems that support workflow management assume that a given task will be assigned to a particular participant. When a variety of participants may perform the task, these communication systems typically utilize either a manual approach or an automatic approach to select a participant to assign the task. The manual approach involves a human being performing the selection based upon personal knowledge. Such an approach is labor intensive and subject to human error.
Alternatively, the automatic approach considers all of the participants to be fungible. The automatic approach may utilize a variety of algorithms, e.g., a fairness algorithm, a load balancing algorithm, a reward for past performance algorithm, or the like, to select the participant to perform the task. This approach may not select the most ideal participant for the particular task given the timing and dynamic context in which the task is assigned. It is believed that improvements in communications systems that support workflow management are needed to provide for better task assignment.
In one aspect of the disclosure, a computer program product is described. The computer program product includes a computer readable medium having a computer readable program stored thereon. The computer readable program while executing on a computer causes the computer to generate a task profile for a task. The task profile includes at least one intrinsic property of the task and at least one transient property of the task. Further, the computer readable program while executing on the computer causes the computer to generate a participant profile of the task for each participant in a predefined set of participants that qualify for performance of the task. In addition, the computer readable program while executing on the computer causes the computer to calculate a score for each participant profile by matching the participant profile to the task profile. The computer readable program while executing on the computer also causes the computer to select a participant from the predefined set of participants according to the score for each participant. Further, the computer readable program while executing on the computer causes the computer to assign the task to the participant.
In another aspect of the disclosure, a process is described. The process generates a task profile for a task. The task profile includes at least one intrinsic property of the task and at least one transient property of the task. Further, the process generates a participant profile of the task for each participant in a predefined set of participants that qualify for performance of the task. In addition, the process calculates, with a processor, a score for each participant profile by matching the participant profile to the task profile. The process also selects a participant from the predefined set of participants according to the score for each participant. Further, the process assigns the task to the participant.
In yet another aspect of the disclosure, a system is described. The system comprises a processor configured to generate a task profile for a task, generate a participant profile of the task for each participant in a predefined set of participants that qualify for performance of the task, calculate a score for each participant profile by matching the participant profile to the task profile, select a participant from the predefined set of participants according to the score for each participant, assign the task to the participant. The task profile includes at least one intrinsic property of the task and at least one transient property of the task.
The above-mentioned features of the present disclosure will become more apparent with reference to the following description taken in conjunction with the accompanying drawings wherein like reference numerals denote like elements and in which:
A computer program product, method, and system are utilized to provide dynamic task assignment, which allows a participant to be selected from a predefined set of participants to perform a task in a workflow. The dynamic workflow may be utilized in any workflow where tasks are assigned to a predefined set of participants. Examples of such workflows include, but are not limited to, delivery services, taxi dispatch systems, installation services, repair services, online help desks, call center routing, selection of entertainment personnel in an entertainment environment, selection of entertainment/game participants, or the like.
A given task is characterized by generating a task profile. Further, participant profiles are generated for each participant in the predefined set of participants. At task assignment time, the task profile is matched to the participant profile of the participant in the predefined set of participants that most ideally performs the task. As a result, an automated approach may be utilized that is less labor intensive than the manual approach and more accurate than current automated approaches.
The dynamic task assignment system 102 generates a task profile 118 based upon the task 104 that is received. The task profile 118 includes at least one intrinsic property of the task and at least one transient property of the task. In one aspect, the intrinsic properties are particular skills necessary to perform the task. For example, a delivery service task may have intrinsic properties such as the abilities to drive and lift heavy objects. In one aspect, the transient properties are properties that are changing on a frequent basis. For example, a transient property may be physical proximity. For instance, a transient property of a task is a delivery service having to be local for pickup of a product for delivery.
Further, the dynamic task assignment system 102 generates a participant profile for each participant. In
At task assignment time, the dynamic task assignment system 102 matches the task profile 104 to the participant profile that most ideally meets the task profile 104. In one aspect, a scoring methodology is utilized to score each participant profile. The dynamic task assignment system 102 ranks each participant profile according to the respective score and then assigns the task to the participant with the highest score.
In one aspect, the set of dynamic task assignment code 308 is loaded from a storage medium associated with the data storage device 310, e.g., a magnetic or optical drive, diskette, or non-volatile memory, and operated by the processor 302 in the memory 306 of the system 304. As such, the set of dynamic task assignment code 308 (including associated data structures) of the present disclosure may be stored on a computer readable medium, e.g., RAM memory, magnetic or optical drive or diskette or the like.
The processes described herein may be implemented in a general, multi-purpose or single purpose processor. Such a processor will execute instructions, either at the assembly, compiled or machine-level, to perform the processes. Those instructions can be written by one of ordinary skill in the art following the description of the figures corresponding to the processes and stored or transmitted on a computer readable medium. The instructions may also be created using source code or a computer-aided design tool. A computer readable medium may be any medium capable of carrying those instructions and include a CD-ROM, DVD, magnetic or other optical disc, tape, silicon memory (e.g., removable, non-removable, volatile or non-volatile), packetized or non-packetized data through wireline or wireless transmissions locally or remotely through a network. A computer is herein intended to include any device that has a general, multi-purpose or single purpose processor as described above. For example, a computer may be a personal computer (“PC”), laptop, smartphone, tablet device, set top box, or the like.
It is understood that the apparatuses, systems, computer program products, and processes described herein may also be applied in other types of apparatuses, systems, computer program products, and processes. Those skilled in the art will appreciate that the various adaptations and modifications of the aspects of the apparatuses, systems, computer program products, and processes described herein may be configured without departing from the scope and spirit of the present apparatuses, systems, computer program products, and processes. Therefore, it is to be understood that, within the scope of the appended claims, the present apparatuses, systems, computer program products, and processes may be practiced other than as specifically described herein.