A method and system is provided for the preemptive goals based distribution of contact records. This method and system includes devices receiving contact records and providing customer contacts to one or more agents. Interfaced with the device is a distribution module including pools and queues. The distribution module places the contact records into the pools and transfers less than all of the contact records to the queues to allow for processing by the devices at peak efficiency. The distribution module transfers the queues to the devices so that the device can place customer contact attempts. A goal module, associated with the distribution module, monitors the performance of the pools. The goal module modifies which queues the pools transfer contact records to based on the performance of the pools thereby allowing the contact records to be distributed in accordance with performance goals for the pools.

Patent
   RE46478
Priority
Jul 11 2000
Filed
Mar 03 2015
Issued
Jul 11 2017
Expiry
Jul 09 2021
Assg.orig
Entity
Small
1
217
all paid
33. A method for preemptive goals based routing of contact records from a server to at least one contact device comprising a predictive dialer, the method comprising:
organizing a plurality of contact records by the server into a plurality of pools, wherein the plurality of pools are stored in the server;
transferring less than all of the contact records from each of the plurality of pools to a plurality of queues;
transferring the plurality of queues to the at least one contact device having a plurality of agents;
monitoring the performance of the plurality of pools; and
modifying the which queues to which of the plurality of queues the plurality of pools transfer a remaining subset of the plurality of contact records to based on the performance of the plurality of pools.
16. A system for distributing contact records utilizing preemptive goals based routing, the system comprising:
at least one a contact device operable comprising a predictive dialer in a call center configured to receive a plurality of contact records, to establish contacts with the plurality of contact records, and to provide the contacts to plural agents; and
a distribution module server interfaced with the plurality of devices contact device and including a plurality of pools and a plurality of queues,
the distribution module operable server configured to place the plurality of contact records into the plurality of pools, transfer less than all of the plurality of contact records from each of the plurality of pools to the plurality of queues, and transfer the plurality of queues to the at least one contact device; and,
a goal module interfaced with the distribution module, the goal module operable wherein the server is further configured to define receive one or more levels of effort for each queue of the plurality of queues, determine receive a goal for each pool, and determine a goal state for each pool of the plurality of pools, and modify which of the plurality of queues the plurality of pools transfer a remaining subset of the plurality of contact records to.
1. A system for distributing contact records utilizing preemptive goals based routing, the system comprising:
at least one contact device operable to comprising a predictive dialer in a call center, the at least one contact device configured to receive a plurality of contact records, to establish contacts with using the plurality of contact records and to provide the contacts to plural agents a plurality of agents in the call center; and
a distribution module server interfaced with the at least one contact device and including a plurality of pools and a plurality of queues, the distribution module operable server configured to place the plurality of contact records into the plurality of pools, transfer less than all of the plurality of contact records from each of the plurality of pools to the plurality of queues, and transfer the plurality of queues to the at least one contact device; and,
a goal module interfaced with the distribution module, the goal module operable wherein the server is further configured to monitor the performance of the plurality of pools and modify which of the plurality of queues the plurality of pools transfer a remaining subset of the plurality of contact records to based on the performance of the plurality of pools.
2. The system of claim 1 wherein the goal module server organizes the plurality of agents into one or more teams.
3. The system of claim 1 further comprising one or more performance metrics associated with the plurality of pools, the one or more performance metric metrics operable to determine how to measure the performance of each pool of the plurality of pools.
4. The system of claim 3 wherein the goal module server selects the one or more performance metric metrics for the each pool of the plurality of pools.
5. The system of claim 3 wherein a user selects the one or more performance metric metrics for the each pool of the plurality of pools.
6. The system of claim 1 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to by transferring one of the plurality of queues away from one or more of the plurality of pools having unsatisfactory performance.
7. The system of claim 1 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to by transferring one of the plurality of queues to one or more of the plurality of pools having unsatisfactory performance.
8. The system of claim 1 further comprising one or more goal strategies associated with the goal module server, the one or more goal strategies operable to control controlling how the goal module server modifies which one of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to based on the performance of the plurality of pools.
9. The system of claim 1 wherein the goal module server identifies a corresponding final goal for each pool. pool of the plurality of pools.
10. The system of claim 9 wherein when a pool one of the plurality of pools satisfies the a first corresponding final goal for that pool, the goal module the one of the plurality of pools, the server transfers the queues a corresponding queue from the pool one of the plurality of pools satisfying the corresponding final goal to another one or more pools of the plurality of pools not satisfying the the final goals. corresponding final goal.
11. The system of claim 1 wherein the goal module server prioritizes the plurality of pools relative to each other.
12. The system of claim 1 wherein the goal module server determines one or more goals and one or more goal states for each pool, the goal state operable to indicate of the plurality of pools, wherein the one or more goal states indicates the performance of the pools relative to the goals. a corresponding pool relative to the corresponding one or more goals.
13. The system of claim 12 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to based on the one or more goal states for each pool of the plurality of pools.
14. The system of claim 1 wherein the goal module server defines one or more levels of effort for each queue, of the plurality of queues, wherein each of the one or more levels of effort operable to determine the determines a number of agents that access contact records from a particular pool.
15. The system of claim 14 wherein the goal module server modifies which of the plurality of queues the pools the plurality of pools transfer the remaining subset of the plurality of contact records to by transferring the one or more levels of effort between the plurality of pools.
17. The system of claim 16 wherein the goal state for a particular pool indicates whether the particular pool satisfies the goal.
18. The system of claim 16 further comprising, wherein one or more performance metrics are associated with the plurality of pools, the performance metric and operable to determine how to measure the a performance of each of the plurality of pools.
19. The system of claim 18 wherein the goal module server selects the one or more performance metric metrics for each pool of the plurality of pools.
20. The system of claim 16 wherein the goal module server calculates a goal status for each pool of the plurality of pools.
21. The system of claim 16 wherein the goal module server identifies a final goal for each pool of the plurality of pools.
22. The system of claim 21 wherein when a particular pool satisfies the final goal for that the particular pool, the goal module server transfers the level one or more levels of effort from the particular pool satisfying the final goal to one or more other pools not satisfying the corresponding final goals goal for the one or more other pools.
23. The system of claim 16 wherein the goal module prioritizes server is configured to prioritize the plurality of pools relative to each other.
24. The system of claim 16 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to based on the goal states state for each pool.
25. The system of claim 16 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to by transferring the one or more levels of effort between the pools.
26. The system of claim 25 wherein the goal module server transfers the one or more levels of effort to one or more pools not satisfying the goals goal.
27. The system of claim 25 wherein the goal module server transfers the one or more levels of effort away from one or more pools not satisfying the goals goal.
28. The system of claim 16 further comprising one or more goal strategies associated with the goal module server, the goal strategies operable configured to control which of the one or more levels of effort are transferred between the plurality of pools.
29. The system of claim 28 wherein the goal module server modifies which of the plurality of queues the plurality of pools transfer the remaining subset of the plurality of contact records to based on the goal states state for each pool and a selected goal strategy.
30. The system of claim 16 wherein the goal module server sets a limit on the level one or more levels of effort that may be transferred away from each pool to the other pools.
31. The system of claim 16 further comprising an effort map associated with the goal module server, wherein the effort map operable is used to identify the plurality of pools from which the plurality of queues and plural agents receive the remaining subset of the plurality of contact records and to identify the one or more levels of effort for each pool.
32. The system of claim 31 further comprising one or more routing tables associated with the plurality of pools and the effort map, wherein the one or more routing tables operable are used by the server to determine how the goal module transfers to transfer the one or more levels of effort between the plurality of pools based on the goal states state for each pool.
34. The method of claim 33 further comprising organizing the plurality of agents into one or more teams.
35. The method of claim 33 wherein monitoring the performance of the plurality of pools comprises determining how to measure the performance of each pool of the plurality of pools.
36. The method of claim 35 wherein determining how to measure the performance of the plurality of pools comprises selecting a performance metric for each pool of the plurality of pools.
37. The method of claim 33 wherein monitoring the performance of the plurality of pools comprises establishing a final goal for each pool of the plurality of pools.
38. The method of claim 37 wherein modifying which of the plurality of queues to which the plurality of pools transfer the remaining subset of the plurality of contact records to comprises transferring one or more of the queues from a pool satisfying the final goal of the pool to one or more of pools other pool not satisfying the final goal the final goal of the other pool.
39. The method of claim 33 wherein modifying which of the plurality of queues to which the plurality of pools transfers transfer the remaining subset of the plurality of contact records to comprises transferring additional contact records from one or more pools having satisfactory performance to the queues.
40. The method of claim 33 wherein modifying which of the plurality of queues to which the plurality of pools transfers transfer the remaining subset of the plurality of contact records to comprises transferring additional contact records from one or more pools having unsatisfactory performance to the queues.
0. 41. The method of claim 33 wherein monitoring the performance of the pools comprises cycling through the pools to locate a pool having unsatisfactory performance.
0. 42. The method of claim 41 wherein cycling through the pools to locate a pool having unsatisfactory performance comprises selecting the pool having the unsatisfactory performance.
43. The method of claim 41 33 wherein modifying which of the plurality of queues to which the plurality of pools transfers transfer the remaining subset of the plurality of contact records to comprises transferring the queues away from the a pool having unsatisfactory performance.
44. The method of claim 41 33 wherein modifying which of the plurality of queues to which the plurality of pools transfers transfer the remaining subset of the plurality of contact records to comprises transferring the queues to the a pool having unsatisfactory performance.
45. The method of claim 33 wherein organizing the plurality of contact records into a the plurality of pools comprises prioritizing the plurality of pools relative to each other.
46. The method of claim 33 wherein modifying which of the plurality of queues to which the plurality of pools transfer the remaining subset of the plurality of contact records to comprises controlling which queues are transferred between the plurality of pools.
0. 47. A method for preemptive goals based routing of contact records, the method comprising:
organizing a plurality of contact records into a plurality of pools;
determining a goal for each pool;
transferring less than all of the contact records from the pools to a plurality of queues, each queue including one or more levels of effort;
transferring the queues to at least one contact device having a plurality of agents;
determining a goal state for each pool; and
modifying the queues to which the pools transfer contact records to based on the goal states for each pool.
0. 48. The method of claim 47 wherein determining a goal for each pool comprises determining how to measure the performance of each pool.
0. 49. The method of claim 48 wherein determining how to measure the performance of the pools comprises selecting a performance metric for each pool.
0. 50. The method of claim 47 further comprising calculating a goal status for each pool.
0. 51. The method of claim 47 wherein determining a goal for each pool comprises establishing a final goal for each pool.
0. 52. The method of claim 51 wherein modifying the queues to which the pools transfer contact records to comprises transferring the level of effort from a pool satisfying the final goal to one or more of pools not satisfying the final goal.
0. 53. The method of claim 47 wherein organizing the contact records into a plurality of pools comprises prioritizing the pools relative to each other.
0. 54. The method of claim 47 wherein modifying the queues to which the pools transfer contact records to comprises transferring the levels of effort between the pools.
0. 55. The method of claim 54 wherein transferring the levels of effort between the pools comprises determining the pools that receive the levels of effort from the other pools and the pools that transfer levels of effort to the other pools.
0. 56. The method of claim 54 wherein transferring the levels of effort between the pools comprises transferring the levels of effort to one or more pools not satisfying the goals.
0. 57. The method of claim 54 wherein transferring the levels of effort between the pools comprises transferring the levels of effort away from one or more pools not satisfying the goals.
0. 58. The method of claim 54 wherein transferring the levels of effort between the pools comprises limiting the levels of effort that may be transferred from a particular pool to a different pool based upon the goal state of the particular pool.
0. 59. The method of claim 47 wherein determining a goal state for each pool comprises determining if the pools are satisfying the goals.
0. 60. the method of claim 47 wherein determining a goal state for each pool comprises cycling through the pools to locate a pool having a desired goal state.
0. 61. The method of claim 60 wherein cycling through the pools to locate a pool having a desired goal state comprising selecting the pool having the desired goal state.
0. 62. The method of claim 61 wherein modifying the queues to which the pools transfer contact records to comprises transferring levels of effort away from the pool having the desired goal state.
0. 63. The method of claim 61 wherein modifying the queues to which the pools transfer contact records to comprises transferring levels of effort to the pool having the desired goal state.

For simplicity, reference is made hereafter to “call center 104” in a generic sense to refer to any instance of a call center, 104a-104n. System 100 allows call centers 104a and 104n to operate as a single group of resources rather than two decentralized units, with distribution module 102 controlling the strategy, workload, and calling efforts for call centers 104 from a single, central location. In alternative embodiments, distribution module 102 interfaces with multiple dialing devices at one or more call centers, or one dialing device located in one call center.

Call centers 104 are geographically distributed, each having one or more dialing devices that place telephone calls using information in the call records. Distribution module 102 operates on a SOLARIS, Linux, or an any other appropriate operating system server and communicates with call centers 104 via standardized communications links such as Ethernet, the Internet with protocols such as FTP, CORBA, API, and sockets over TCP/IP, asynchronous transfer mode (“ATM”), or any other appropriate communication link.

Call centers 104 each have one or more dialing devices 108 108a-108n. For simplicity, reference is made hereafter to “dialing devices 108” in a generic sense to refer to any instance of a dialing device 108a-108n. Dialing devices 108 are predictive dialers such as the MOSAIX PDS manufactured by Avaya Incorporated or other appropriate predictive dialers. In the embodiment shown in FIG. 1, interfaced to dialing device 108a in call center 104a are three agents 110a, 110b, and 110c with dialing device 108n of call center 104n also having three agents 110d, 110e, and 110f interfaced to it. For simplicity, reference is made hereafter to “agents 110” in a generic sense to refer to any instance 110a-110f of an agent. Agents 110 are workstations where operators or agents speak to the individuals, chat with individuals online, complete emails to, or otherwise contact individuals who are contacted by dialing devices 108.

Dialing device 108 dials telephone numbers extracted from the call records. If an individual answers the telephone, dialing device 108 transfers the telephone call to one of agents 110 so that the agent can speak with the individual. Dialing devices 108 therefore improve telephone calling efficiency by dialing the telephone number and transferring the call to an agent only if an individual answers the telephone.

System 100 functions by first having distribution module 102 acquire the call records that dialing devices 108 will call. There are several different ways that distribution module 102 acquires the call records.

For instance, host 112, which is associated with dialing devices 108, stores raw call records. The raw call records contain information including telephone number, account number, individual name and address, and any other appropriate personal information. For example, a raw call record for Joe Smith includes Joe Smith's telephone number, mailing address, account status, account number, account passwords, gender, marital status, number of children, employment status, and yearly income.

Host 112 transfers the raw call records for that day along path 114a to call center 104a and dialing device 108a and along path 114b to call center 104n and dialing device 108n. Distribution module 102 contacts dialing device 108a within call center 104a via path 116a and dialing device 108n within call center 104n via path 116b. Distribution module 102 downloads from dialing devices 108 to call record database 118 the call records. The call records may contain some but not all of the information from the raw call records. Downloading less than all of the information from the raw call records saves bandwidth and allows for efficient operation of distribution module 102 because it handles smaller amounts of data. For instance, distribution module 102 downloads as the call record an individual's name, telephone number, and account number. So the call record for Joe Smith contains Joe Smith's name, his telephone number, and account number.

In an alternative embodiment, host 112 stores the raw call records. Instead of transferring the raw call records to dialing devices 108, distribution module 102 downloads the call records from host 112 to call record database 118 via path 120.

Alternatively, dialing devices 108 store the raw call records. Therefore, distribution module 102 contacts call center 104a and dialing device 108a via path 116a and call center 104n and dialing device 108n via path 116b to download the call records to call record database 118.

Scheduling module 122 operates to develop and provide optimal calling strategies for the call records including resource optimization, automated statistical modeling and flexible strategy management. For instance, one such scheduling module 122 is described in U.S. Pat. No. 5,802,161, entitled “Method and System for Optimized Scheduling” issued Sep. 1, 1998, and is hereby incorporated by reference.

The integration of scheduling module 122 is not required for the operation of distribution module 102 but it affects how distribution module 102 downloads the call records and what information is contained in the call records. For instance, host 112 transfers the raw call records to call center 104a and dialing device 108a via path 114a and call center 104n and dialing device 108n via path 114b. Scheduling module 122 downloads from dialing device 108a in call center 104a via path 124a and from dialing device 108n in call center 104n via path 124b the raw call records. Scheduling module 122 develops call schedules for the raw call records. Distribution module 102 downloads the call records including the call schedule from scheduling module 122 via path 124c and stores the call records in call record database 118.

Alternative embodiments also employ scheduling module 122 in the delivery of call records to distribution module 102. Scheduling module 122 downloads the raw call records from host 112 via path 126. As before, scheduling module 122 adds call schedules to the raw call records before distribution module 102 downloads the call records from scheduling module 122 via path 124c to call record database 118.

Once distribution module 102 stores the call records in call record database 118, distribution module 102 organizes and transfers the call records from call record database 118 to pools 128 128a, 128b, and/or 128c, which are interfaced with distribution module 102. For simplicity, reference is made hereafter to “pool 128” in a generic sense to refer to any instance of a pool 128a-128c. The pools are sets of callable call records specified by distribution module 102. Each pool 128 represents a specific and ordered group of call records. In the embodiment shown in FIG. 1, there are three pools 128a, 128b, and 128c. In alternative embodiments there can be more than three or less than three pools.

Distribution module 102 then transfers less than all of the call records from pools 128 to queues 130 130a, 130b, 130c, and 130d. For simplicity, reference is made hereafter to “queue 130” in a generic sense to refer to any instance of a queue 130a-130d. Interfaced with pools 128 are queues 130a, 130b, 130c, and 130d. A queue is a set of rules for selecting call records from pools having the necessary and sufficient information describing the exact method of transferring call records to dialing devices 108 and any call records assigned to but not yet transferred to dialing devices 108 for dialing devices 108 to call. Distribution module 102 attaches each queue 130 to a particular dialing device 108 and monitors each dialing device. As necessary, distribution module 102 transfers call records from pools 128 in accordance with the configuration of queues 130 which includes selection rules, time of day, time of week, number of calls completed, and number of call records sent. Queues 130 then transfer the call records to their assigned dialing devices 108. For instance, distribution module 102 transfers call records according to the configuration of queues 130a and 130b to dialing device 108a of call center 104a and according to the configuration of queues 130c and 130d to dialing device 108n of call center 104n.

In addition, each queue 130 is associated with a single campaign for the dialing device to which it is assigned. A campaign is an outbound job calling on dialing device 108 that can receive additional call records for calling while the outbound calling job is active. Normally, a campaign on dialing device 108 continues to run until manually stopped or when it runs out of call records to dial.

Pools 128 can satisfy transfer requests for call records for one or more than one queue 130. For example, pool 128a transfers call records to queue 130a, pool 128b transfers call records to queues 130b and 130c, and pool 128c transfers call records to queue 130d. In addition, distribution module 102 can change the queues which request call records from pools 128 throughout the day and in the middle of outbound calling campaigns. For instance, if dialing device 108n located in call center 104n calls all the call records in pool 128c, then distribution module 102 can request that pools 128a and 128b transfer call records to queue 130d.

Distribution module 102 transfers the call records to pools 128, transfers less than all of the call records from pools 128 to queues 130, and transfers queues 130 to dialing devices 108 before dialing devices 108 begin their daily calling routines. At the beginning of the day, distribution module 102 transfers enough call records from pools 128 to queues 130 to allow for dialing devices 108 to place calls for fifteen, thirty, sixty minutes, or an appropriate amount of time to place calls. Distribution module 102 monitors the calls placed by dialing devices 108 as well as the number of call records remaining to be called to determine how busy dialing devices 108 are and when and how many additional call records to transfer from pools 128 to queues 130. The monitoring of queues 130 and the transferring of additional call records from pools 128 to queues 130 allows for real-time movement of call records from distribution module 102 to dialing devices 108 throughout the day. For instance, as soon as dialing device 108a is about to finish calling the call records in the campaign assigned to queue 130a, distribution module 102 transfers additional call records from pool 128a to queue 130a so that dialing device 108a maintains a steady and level flow of work.

Dialing devices 108 also track the call attempt results of every call placed by dialing devices 108. The call attempt results include whether or not a call resulted in a right party contact, a wrong party contact, no answer, or an answering machine. For example, the objective of a call record for Joe Smith is to talk with Joe Smith. If agent 110 speaks with Joe Smith, that is a right party contact and a successful call attempt result. If Joe's babysitter answers the phone and Joe is not home, that is a wrong party contact and an unsuccessful call attempt result. If no one answers the phone or an answering machine answers the phone, that is an unsuccessful call attempt result since the desired party was not contacted. Therefore throughout the day, distribution module 102 queries dialing devices 108 for call attempt results and uploads the call attempts results. If a call attempt result is unsuccessful, then distribution module 102 updates the call record in pools 128 so that a dialing device 108 may call the call record again at a later time in the day.

An advantage to system 100 is that distribution module 102 controls the transfer of the call records which results in a level work flow for dialing devices 108. To enable better work flow control, queues 130 include selection rules that determine how distribution module 102 transfers call records from pools 128 to queues 130. The selection rules allow for the optimization of the transfer of call records from pools 128 to queues 130 and include priority rules, percentage rules, quotas, queuing theory rules, or any other appropriate rules for optimizing the transfer of call records from pools 128 to queues 130. The selection rules can be modified on an as needed basis.

Priority rules result in distribution module 102 transferring call records from pools 128 to queues 130 based upon an assigned priority for each pool 128. For example, queue 130a receives call records from pools 128a and 128b with pool 128a having priority over pool 128b. Queue 130b receives call records from pools 128a and 128b with pool 128b having priority over pool 128a. Assume that pool 128a arrives at 8:00 AM while pool 128b arrives at 9:00 AM. Initially, both queues 130a and 130b receive call records from pool 128a. At 9:00 AM when pool 128b arrives, queue 130a continues to receive call records from pool 128a while queue 130b receives call records from pool 128b.

Percentage rules result in distribution module 102 simultaneously transferring call records from pools 128 to queues 130. For example, queue 130c has a percentage configuration with pools 128b and 128c and queue 130d has a percentage configuration with pools 128b and 128c. In this configuration, queue 130c and 130d receive call records simultaneously from pools 128b and 128c. With pool 128b arriving at 8:00 AM and pool 128c arriving at 9:00 AM, at 8:00 AM both queues 130c and 130d receive call records from pool 128b. At 9:00 AM, queues 130c and 130d alternatively receive call records from pools 128b and 128c. The percentages are variable for instance so that queue 130c receives 80% of its call records from pool 128b and 20% of its call records from pool 128c while queue 130d receives 60% of its call records from pool 128b and 40% of its call records from pool 128c.

The selection rules can also incorporate the execution of an optimization module which will determine the optimal mix of call records from each of the available pools 128 based on the optimization constraints and the number of call records needed at the current time.

The selection rules can also incorporate pool quotas which are limits set on each pool controlling a maximum activity level such as number of records transferred, number of successful call attempts, and other appropriate indicators of call record activity. When distribution module 102 transfers call records to pools 128, distribution module 102 can also set quotas on how many call records dialing devices 108 will call from pools 128. In the percentage rule example above, distribution module 102 can place a quota on pool 128b. When dialing devices 108 satisfy the quota for pool 128b, queues 130c and 130d no longer receive call records from pool 128b and only receive call records from pool 128c.

The selection rules can also be a combination of the percentage rules and the priority rules. For example, queue 130b receives call records from all three pools 128a, 128b, and 128c. Queue 130b receives call records from pool 128b until dialing device 108a calls all the call records in pool 128b. At that time, queue 130b then alternately receives call records from pools 128a and 128c. As with the percentage rules above, queue 130b can receive call records from pools 128a and 128c in any percentage breakdown. Therefore, pool 128b has priority over pools 128a and 128c while pools 128a and 128c transfer call records using percentage rules.

In addition, these selection rules allow for skills-based routing between pools 128. For example, distribution module 102 allows pool 128a to initially transfer call records to queue 130a and pool 128c to initially transfer call records to queue 130d. If pool 128c becomes depleted and has no more call records to transfer to queue 130d, then pool 128a can begin transferring call records to both queues 130a and 130d. This allows distribution module 102 to transfer call records for easy to moderate difficulty customers to the best agents while the less skilled agents work the more difficult customers. And once the easy to moderate difficulty customers call records are depleted, the best agents can begin working the more difficult customer call records.

In addition, distribution module 102 may also route call records to dialing devices 108 and agents 110 based on the performance of pools 128. Routing the call records based on the performance of pools 128 allows distribution module 102 to make modifications so that pools 128 having a higher priority are not under-performing. Goal module 103, associated with distribution module 102 and pools 128, monitors the performance of pools 128. To monitor the performance of pools 128, either a user of system 100 or goal module 103 defines a performance metric for each pool 128. Once the performance metric is defined, goal module 103 applies the performance metric to pools 128. The performance metric is what goal module 103 uses to measure the performance of pools 128. For example, the performance metric for pool 128a may be the number of right party contacts while the performance metric for pool 128b is the number of accounts attempts and the performance metric for pool 128c is the number of call records attempted. Each pool 128 may have a different performance metric or pools 128 may have the same performance metric. In addition, each of the pools 128 may have more than one performance metric. For instance, pool 128a may have both a performance metric for the number of right party contacts and for the number of total accounts attempted.

Once goal module 103 has determined a performance metric for each pool 128, goal module 103 defines a goal for each pool 128. The goal can be either an absolute goal or a goal set relative to all the other pools 128. An absolute goal is a goal tied solely to the performance of the particular pool 128 while a relative goal is tied to the performance of all pools 128. In addition, the goal is related to the selected performance metric. For instance, pool 128a having a performance metric of number of right party contacts may have a goal of fifty right party contacts while pool 128c having a performance metric of number of call records attempted has a goal of one hundred call records attempted.

If a pool 128 has more than one performance metric, then the pool 128 will have a goal for each performance metric. For example, if pool 128a has a performance metric for number of right party contacts and for total number of accounts attempted, pool 128a may have a goal of 80 right party contacts and 200 accounts attempted. In addition, a pool 128 may also have a combination of goals where there pool 128 only needs to satisfy one of the goals. For instance, pool 128b may have a goal of 75 right party contacts or 200 accounts attempted and as long as pool 128b has at least 75 right party contacts or 200 accounts attempted, pool 128b is considered to be satisfying its goal and experiencing satisfactory performance.

The goals may also be end of day goals, mid-day goals, and rate based goals. End of day goals are goals calculated based on the performance of a pool 128 at the end of the day and include such goals as total number of call records attempted and number of right party contacts. Mid-day goals are similar to end of day goals but are calculated based on the time of day. For example, pool 128a may have a mid-day goal of twenty-five right party contacts by noon. Rate based goals are calculated as a rate of the total calls. For instance, if pool 128a has a performance metric of right party contact rate, a rate based goal may be 15% of all the call records from pool 128a should result in a right party contact.

Similar to the selection rules, goal module 103 defines or constrains levels of effort for each queue 130. The levels of effort detail the percentage of call records that transfer from a particular pool 128 to a particular queue 130. The levels of effort are stored in an effort map associated with goal module 103. Table 1 shows an example effort map for system 100. An examination of the effort map shown in Table 1 reveals that queue 1 (queue 130a) has a level of effort of 100% to pool 1 (pool 128a) meaning queue 130a receives all of its call records from pool 128a. Queue 2 (queue 130b) has a level of effort of 100% to pool 2 (pool 128b) meaning queue 130b receives 100% of its call records from pool 128b. Queue 3 (queue 130c) has a level of effort of 100% to pool 2 (pool 128b) meaning queue 130c receives 100% of its call records from pool 128b. Queue 4 (queue 130d) has a level of effort of 100% to pool 3 (pool 128c) meaning that queue 130d receives 100% of its call records from pool 128c. Therefore, 100% of the call records in pool 128a transfer to queue 130a, the call records in pool 128b transfer equally to queues 130b and 130c, and 100% of the call records in pool 128c transfer to queue 130d.

TABLE 1
Example Effort Map
Pool 1 Pool 2 Pool 3
Queue 1 100%  0%  0%
Queue 2  0% 100%  0%
Queue 3  0% 100%  0%
Queue 4  0%  0% 100%

As pools 128 begin to transfer call records to queues 130 and agents 110 access the call records, goal module 103 calculates a goal status for each pool 128. The goal status can be defined as either the absolute difference between the actual metric and the goal or the percentage that a pool 128 is either ahead or behind its goal. For instance, if each pool 128 has a goal of fifty right party contacts and pool 128a has forty-five right party contacts, pool 128b has forty-eight right party contracts, and pool 128c has sixty right party contacts, then pool 128a has a goal status of −10%, pool 128b has a goal status of −4%, and pool 128c has a goal status of +20% for percentage based goals. Pool 128a has a goal status of −5, pool 128b has a goal status of −2 and pool 128c has a goal status of +10 for absolute difference based goals.

Goal module 103 uses the goal status for each pool 128 to determine a goal state for each pool 128. Pools 128 will have a goal state for each goal. An example definition of goals states would include the designation of ahead of goal, at goal, or behind goal. Goal module 103 or a user of system of 100 determines what thresholds define each of the available goal states. For example, if the goal states have been defined as ahead of goal, at goal, or behind goal, then a goal status of +10% and above may be ahead of goal, a goal status between +10% and −5% may be at goal, and a goal status of −5% and below may be behind goal. Given these threshold percentages and the goal status for pools 128, pool 128a has a goal state of behind goal (−10%), pool 128b has a goal state of at goal (−4%), and pool 128c has a goal state of ahead of goal (+20%). Any pool 128 that has a goal state of behind goal is said to be an under-performing pool and therefore experience unsatisfactory performance.

Similar to the pool quotas described above, goal module 103 also identifies and defines a final goal for each pool 128. A user of system 100 may also define the final goals for each of the pools 128. When a pool 128 satisfies its final goal, that pool 128 is no longer active and all the queues 130 that were receiving call records from that pool 128 now receive call records from the other pools 128 that have not satisfied their final goals. For instance, pool 128a-128c each have a final goal of eighty right party contacts. At 3:00 PM, pool 128a achieves eighty right party contacts. Because pool 128a has achieved its final goal, it becomes inactive and the call records from pool 128a are no longer transferred to queue 130a. To prevent queue 130a and agents 110 who access call records from queue 130a from becoming inactive, goal module 103 modifies which queues 130 pools 128b and 128c transfer call records to by allowing pools 128b and 128c to transfer call records to queue 130a. Since pools 128b and 128c have not reached their final goals, they are still active and queues 130 and agents 110 who were receiving call records from pool 128a now receive call records from pools 128b and 128c.

Before distribution module 102 begins to transfer queues 130 containing the call records to dialing devices 108, goal module 103 prioritizes pools 128 relative to each other. Certain pools 128 may contain call records that are of a higher priority than other pools 128. For example, pool 128a may contain call records for customers who have previously purchased products, pool 128b may contain call records for customers who have never purchased products, and pool 128c may contain call records for customers who are delinquent in paying for products previously purchased. Since a company's highest priority may be to collect the money it is owed, goal module 103 rates pool 128c with the highest priority while pool 128a has the second highest priority since it contains call records for customers with whom there is a previous relationship. Pool 128b has the lowest priority since it contains call records for potential customers. The prioritization of pools 128 enables goal module 103 to adjust the workload of agents 110 so that pools 128 having the highest priority achieve and maintain their goals throughout the day.

Goal module 103 modifies the distribution of call records using the goals of pools 128 by modifying which queues 130 pools 128 transfer call records to based on the performance and prioritization of pools 128. Goal module 103 modifies which queues 130 pools 128 transfer call records to by adjusting or transferring the levels of effort between pools 128 and queues 130. For example, pool 128a is of a higher priority than pool 128c and pool 128a is behind goal. Using the effort map shown in Table 1, queue 130a receives 100% of its call records from pool 128a and queue 130d receives 100% of its call records from pool 128c. Since pool 128a is of a higher priority, goal module 103 transfers level of effort from pool 128c to pool 128a so that queue 130d receives 50% of its call records from pool 128c and 50% of its call records from pool 128a while queue 130a still receives 100% of its call records from pool 128a. The example effort map shown in Table 2 illustrates which queues 130 pools 128 supply call records to after goal module 103 modifies the distribution of call records. Transferring some of the level of effort from pool 128c to pool 128a allows agents 110 who work queue 130d to work call records from pool 128a and thereby increase the number of agents 110 accessing call records from pool 128a so that pool 128a may satisfy its goal.

TABLE 2
Example Effort Map
Pool 1 Pool 2 Pool 3
Queue 1 100%  0%  0%
Queue 2  0% 100%  0%
Queue 3  0% 100%  0%
Queue 4  50%  0% 50%

To aid in the distribution of call records based on the performance of pools 128, goal module 103 employs one or more goal strategies. The goal strategies allow for the optimization of the transfer of call records from pools 128 to queues 130 and help to determine how goal module 103 transfers the levels of effort between pools 128 and queues 130. There are different goal strategies that goal module 103 may implement when distributing the call records based on the performance of pools 128. Goal module 103 may automatically select the goal strategy based upon the call records or a user of system of 100 may select an appropriate goal strategy.

One goal strategy is a meet-goals strategy. With the meet-goals strategy, goal module 103 transfers levels of effort to pools 128 that are not meeting their goals (a goal state of behind goal) and therefore are experiencing unsatisfactory performance. For example, if pool 128a is behind goal and pool 128b is ahead of goal, goal module 103 transfers levels of effort from pool 128b to pool 128a so that queues 130b and 130c also receive call records from pool 128a. A number of right party contacts performance metric is a performance metric that might be managed with the meet-goals goal strategy.

Another goal strategy is an exceed-goals strategy. With the exceed-goals strategy, goal module 103 transfers levels of effort away from pools 128 that are not meeting their goals (a goal state of behind goal) and therefore have unsatisfactory performance. For instance, if pool 128b is behind goal and pool 128c is at goal, goal module 103 transfers levels of effort from pool 128b to pool 128c so that queues 130b and 130c begin to receive call records from pool 128c. A right party contact rate performance metric is a performance metric that might be managed using the exceed-goals goal strategy.

To insure that lower priority pools 128 do not become neglected when goal module 103 routes call records based on the performance of pools 128, goal module 103 sets preemptive limits on how much level of effort may be transferred away from pools 128. These preemptive limits are stored in routing tables of which each pool 128 has its own routing table stored in goal module 103. An exemplary is routing table for pool 128a is shown in Table 3. In the example routing table of Table 3, if pool 128a is ahead of goal, then pool 128a is willing to forego 75% of its total level of effort to pools 128 that are at a higher priority that need additional levels of effort. Pool 128a is willing to forego 50% of its total level of effort to pools 128 that are at the same priority that need effort if pool 128a is ahead of goal. Pool 128a is willing to give up 25% of its total level of effort to pools 128 that are of lower priority if needed if pool 128a is ahead of goal. The percentages are then set at 40%, 25% and 15% if pool 128a is currently at goal. If pool 128a is behind goal, pool 128a will only give up 25% of its level of effort and only to a pool 128 of higher priority. Each pool 128 has its own routing table and the percentages may vary depending on the number of pools, the number of call records, or any other appropriate factors.

TABLE 3
Example Routing Table
Ahead At Behind
Higher Priority 75% 40% 25%
Same Priority 50% 25%  0%
Lower Priority 25% 15%  0%

In an alternate embodiment, the goal states and one or more goal strategies are inputs to and determine the objective functions and the constraints for an optimized solution to the routing determination problem. The goal strategies control how constraints on the levels of effort between pools 128 and queues 130 are relaxed or tightened when a pool 128 is not satisfying the goal. A goal strategy may allow for the transfer of higher levels of effort to pools 128 not satisfying their goals or allow for the transfer of higher levels of effort away from pools 128 not satisfying the goal. The goal module adjusts the level of effort constraints in accordance with the goal strategies so that pools 128 having the highest priority maintain or achieve the goals throughout the day.

In case of a communication, dialing device, or call center outage, system 100 employs contingency modules 132 for each dialing device 108. Contingency modules 132 are associated with dialing devices 108. Contingency modules 132 secure the call records within their respective dialing devices 108 in case of an outage. Before distribution module 102 transfers the call records to pools 128, distribution module 102 creates call record accounts for dialing devices 108, locks the call record accounts to dialing devices 108, creates a contingency download file, and stores the contingency download file in contingency modules 132. Distribution module 102 updates the contingency download file with call attempt results which prevents dialing devices 108 from calling call records already successfully called.

Users of system 100 control the functionality of distribution module 102 and goal module 103 through a user interface. The user interface is shown as online interface 134 in FIG. 1 but can be any appropriate type of user interface. Online interface 134 is a graphical user, platform-independent, password-protected World Wide Web (“WWW”) browser-based interface. Users use online interface 134 to control the settings for distribution module 102 including goal module 103 including application of the selection rules, number of pools, and number of call records to initially transfer to the queues, generate reports, select goal strategies, select performance metrics, select the goals for the pools, define the goal states, modify the effort map and routing tables, and create and modify enterprise parameters. Users access online interface 134 by using browser 136 to access Internet 138 to reach a specific web address. Once at the specific web address, the users enter the appropriate passwords to gain access to online interface 134.

Although the embodiment shown in FIG. 1 contains more than one dialing device, in alternative embodiments distribution module 102 interfaces with a single dialing device. A single dialing device interfacing with distribution module 102 allows for variable control over similar lists of call records. For instance, call records may be divided into geographies such as states or time zones. Calling can be stopped automatically by distribution module 102 when a quota is reached for a particular geography. Distribution module 102 presents the similar lists of call records for different geographies as different pools but the similar lists of call records for different geographies would represent one calling job within the single dialing device.

FIG. 2 illustrates a block diagram of system 150 employing two distribution modules in an alternative embodiment of the present invention. System 100 as shown in FIG. 2 is shown with less detail than in FIG. 1.

System 150 employs two distribution modules 102 and 152. Distribution module 152 is associated with two call centers 154 and 156. Call centers 154 and 156 each have one dialing device 158. Distribution module 152 provides the same functionality to call centers 154 and 156 that distribution module 102 provides to call centers 104 as described above in the discussion regarding FIG. 1.

Distribution module 152 provides redundancy and prevents distribution module 102 from being overburdened by too many dialing devices. Distribution module 102 functions effectively with more than one dialing device interfaced with it but performance and efficiency suffers when too many dialing devices are attached. Therefore, additional distribution module 152 allows for both it and distribution module 102 to achieve optimal performance and efficiency when adding additional call centers 154 and 156 with additional dialing devices 158.

In system 150, distribution modules 102 and 152 are in communication with each other including communicating which call records are in the pools and the call attempt results. Distribution modules 102 and 152 transfer call records and call attempt results between themselves just as distribution module 102 transfers call records and call attempt results between dialing devices 108. Therefore, if dialing devices 158 are idle while dialing devices 108 are overburdened, distribution module 102 transfers call records to distribution module 152 for dialing devices 158 to call. In addition, if distribution module 152 experiences an outage, distribution module 102 transfers the high priority calls from distribution module 152 to dialing devices 108 without worry of calling the same call record a second time in the same day when the first call resulted in a right party contact.

The two distribution modules 102 and 152 of system 150 also each include a goal module 103 and 153. Goal module 153 provides the same functionality to call centers 154 and 156 that goal module 103 provides to call centers 104 as described above in the discussion regarding FIG. 1. Goal modules 103 and 153 are in communication with each other including communicating the performance of their respective pools and queues. Through the use of distribution modules 102 and 152, goal modules 103 and 153 can transfer levels of effort between their respective pools just as goal module 103 transfers levels of effort between pools 128. Therefore if high priority pools 128 are not meeting their goals, then goal module 153 can transfer levels of effort from distribution module 152 so that the high priority pools 128 will achieve their goals.

Referring now to FIG. 3, a flow diagram depicts a process for distributing outbound call records. The process begins at step 170 with the transfer of call records from host 112, dialing devices 108, or scheduling module 122 to distribution module 102. In step 172, distribution module 102 organizes and arranges the call records into pools 128. Based upon user inputs distribution module 102 assigns queues 130 to specific dialing devices in step 174.

In step 176, distribution module 102 checks to see if the selection rules are to be applied to pools 128 and queues 130. If the selection rules are not to be applied, then the process continues in step 178. If selection rules are to be applied, then in step 180 distribution module 102 determines if priority, percentage, or quota rules are applied to pools 128. If priority rules are applied, then in step 182 distribution module 102 applies the priority rules to pools 128 and queues 130 and the process continues on to step 178. If percentage rules are applied, then in step 184 distribution module 102 applies the percentage rules to pools 128 and queues 130 and the process continues in step 178. If the quota rules are applied, then in step 186 distribution module 102 applies the quotas to pools 128 and queues 130 and the process continues to step 178.

Distribution module 102 then delivers enough call records to queues 130 for dialing devices 108 to place telephone calls for fifteen, thirty, sixty minutes, or an appropriate amount of time to place calls in step 178. In step 190, distribution module 102 locks the call records assigned to dialing devices 108 and creates a contingency file specific for each dialing device 108 in step 192.

In step 194, distribution module 102 transfers queues 130 containing the set number of call records to dialing devices 108. Periodically, distribution module 102 uploads call record statistics from each queue 130 in step 196. Distribution module 102 may upload the call record statistics from queues 130 every few seconds, every few minutes, every hour, or any other appropriate interval of time. Call record statistics include such information as how many call records remain to he called and the rate at which dialing devices 108 are depleting the call records in queues 130. In addition to uploading call record statistics, in step 198 distribution module 102 also uploads call attempt results. Call attempt results include whether a right party contact or wrong party contact was made or whether an answering machine was reached when dialing devices 108 place a telephone call.

In step 202 distribution module 102 updates the contingency file with the call attempt results specific for dialing devices 108. In step 204, distribution module 102 uses the call record statistics gathered in step 196 to analyze the number of call records remaining to be called and the depletion rate of the call records within queues 130. Based upon the call attempt results, distribution module 102 represents to pools 128 call records where the first attempt to make a right party contact was unsuccessful so that the call record can be called later in the day in step 206. In addition, the call record can be made unavailable for the remainder of the day if a right party contact was made.

Based upon the call record statistics, distribution module 102 determines in step 208 if more call records need to be to sent from pools 128 to queues 130. If more call records are needed, then in step 210 distribution module 102 sends additional call records from pools 128 to queues 130 and the process repeats beginning with step 176 until manually stopped. But if distribution module 102 determines that no additional call records need to be sent from pools 128 to queues 130 in step 208, then the process repeats beginning with step 196 until manually stopped or until there are no call records remaining to be called.

FIGS. 4a and 4b illustrate a flow diagram for the population of pools 128 and queues 130 with call records. The call records in FIGS. 4a and 4b include scheduling information provided by scheduling module 122.

Referring to FIG. 4a, in step 222 the call records pass through scheduling module 122 from either dialing devices 108 or host 112. Scheduling module 122 adds call scheduling information to each call record as it passes through it. In step 224, scheduling module 122 transfers the call records containing call scheduling information to call record database 118 within distribution module 102. Distribution module 102 then arranges the call records into pools 128 in step 226. When distribution module 102 places the call records into pools 128, distribution module 102 examines each call record to determine how to extract the scheduling information, account number and telephone number from the call record. In addition, distribution module 102 flags any call records where the scheduling information or telephone number is stripped from the end of the call record before placing it in the pools 128.

In step 228, distribution module 102 splits the call records into a plurality of pools 128. Each pool 128 holds the call record as a data string and the call records are in the same format within pools 128. In addition, distribution module 102 arranges the call records within pools 128 so that each call record is selectable by its account number.

The call scheduling information provided by scheduling module 122 allows for an optimum order to call the call records. Using the call scheduling information, distribution module 102 creates hourly indices for pools 128 in step 230. The hourly indices allow for pools 128 to take advantage of the fact that the call order and call priority of each call record changes based upon the time of day. For example, a call record might be scheduled to be the first call at 8:00 AM and if not successfully called at 8:00 AM then rescheduled to be the tenth call made at 6:00 PM. There is a hourly index created for each hour of the calling day and the hourly indices are shown in step 232. Distribution module 102 creates an index for each hour for each pool 128.

In addition to the hourly indices, distribution module 102 also creates an immediate index and an overflow index. The immediate index contains call records that are always the first to be called at the beginning of every hourly index. The call records within the immediate index allow real time call record insertion based upon previous call attempts and are often call records that resulted in no contact when called the first time. Call records contained in the overflow index are call records which were not scheduled to be called or call records that do not have call scheduling information.

Once the call records are arranged into pools 128 and the hourly indices are created, the process of transferring the call records from pools 128 to queues 130 begins. In step 234, distribution module 102 selects the call records contained in the immediate index. Distribution module 102 also removes any call records that are unavailable to be called and marks the call records as unavailable in step 236. In step 238, distribution module 102 determines if it is ready to transfer the call records from pools 128 to queues 130 for this hour and if there are a sufficient number of call records to be transferred from the immediate index to allow for fifteen, thirty, sixty minutes, or an appropriate amount of time for calling. If there are sufficient call records, then in step 239, distribution module 102 transfers the call records from the pool immediate index to queues 130.

If there are not enough call records in the immediate index, then in step 240 distribution module 102 selects call records from the appropriate hourly index. These additional call records in combination with call records from the immediate index will allow for fifteen, thirty, sixty minutes, or an appropriate amount of time for calling. In step 242, distribution module 102 removes any call records unavailable to be called and marks the call records as unavailable. Distribution module 102 then transfers the call records from the immediate index and the appropriate hourly index to queues 130 in step 239.

In step 244, distribution module 102 transfers queues 130 containing the call records to dialing devices 108. After queues 130 are transferred to dialing devices 108, in step 246 dialing devices 108 begin calling the call records.

Referring to FIG. 4b, as dialing devices 108 call the call records, distribution module 102 monitors dialing devices 108 and queues 130 for when it is time to send the next hourly index of call records from pools 128 to queues 130 in step 248. In determining when to send the next hourly index, distribution module 102 cannot start morning hour queues before the actual hour of the hourly index and must stop evening hour queues before the hourly index hour expires. For instance, the pool morning hourly index for 10:00 AM cannot be sent from pools 128 to queues 130 before 10:00 AM and the evening hourly index for 7:00 PM must stop calling at 8:00 PM. This is in part to due to telemarketing regulations that regulate the times of day that telemarketing calls may be placed.

If in step 248 it is time for the next hourly index, then in step 250 distribution module 102 selects the next hourly index to be called and begins the process of transferring the call records from the appropriate hourly index to queues 130. The process of selecting the next hourly index repeats steps 234 through 244 by first taking call records from the immediate index and adding call records from the appropriate hourly index as explained above.

If in step 248 it is not time for the next hour, then distribution module 102 determines queue depth and the time to go in step 252. Queue depth is the amount of call records remaining to be called in the queue while time to go is the amount of time remaining in the hour for the hourly index. In step 254 if the depth is not too low and the time to go is not too short so that there are a sufficient amount of call records to call for the remaining time left in the hour, then additional call records are not needed in queue 130. So in step 256, the call attempt results regarding a right or wrong party contact are uploaded from dialing devices 108 and sent back to distribution module 102 in step 258. The process then returns to step 234 of FIG. 4a to begin the next record search.

If in step 254 distribution module 102 determines that the depth is too low or the time to go is too short, then in step 260 distribution module 102 calculates the number of call records needed to finish out the hour for the hourly index. In step 262, distribution module 102 selects additional call records to call by repeating steps 234 through 239 above and transferring the call records from the pools 128 to queues 130 in step 264 so that dialing devices 108 do not sit idle but finish out the hour placing telephone calls. The process then returns to step 234 of FIG. 4a to begin the next record search.

FIG. 5 depicts a flow diagram of a method for goals based routing of contact records employing a meet-goals goal strategy. The method begins at step 300 when goal module 103 selects a performance metric for each pool 128, determines a goal for each pool 128 and prioritizes pools 128 relative to each other. At step 302 goals module 103 calculates a goal status for each pool 128 using the goal and performance metric for each pool 128. After goal module 103 has calculated a goal status, goal module 103 cycles through pools 128 in descending priority order at step 304.

At step 306, goal module 103 selects a target pool based on its priority. Goal module 103 selects a target pool by first selecting the pool 128 having the highest priority. Goal module 103 then determines the goal state from the goal status for the target pool to determine if the target pool is behind goal at step 308. If the target pool is not behind goal, then at step 310 goal module 103 checks to see if there are additional pools 128 to cycle through. If there are not additional pools 128 to cycle through, then the process ends. But if there are additional pools 128 to cycle through at step 310, then the process returns to step 306 where goal module 103 selects the pool 128 having the next highest priority to determine if that target pool is behind goal. If that target pool is not behind goal, then the process repeats until either goal module 103 locates a target pool that is behind goal at step 308 or the process ends because no target pools are behind goal.

If at step 308, the target pool is behind goal, then goal module 103 cycles through donor pools from lowest to highest priority at step 312. The donor pools include all the other pools 128 except the target pool that was selected at step 308. At step 314, goal module 103 selects a donor pool 128 having the lowest priority out of all the donor pools. The goal module 103 then determines if the selected donor pool is active and able 10 donate levels of effort to the target pool at step 316. A pool 128 is active when it is still transferring contact records to queues 130 and hasn't satisfied its final goal or quota. Goal module 103 examines the routing table for the selected donor pool to determine if the donor pool is able to donate levels of effort to the target pool. Since each pool 128 has its own routing table, goal module 103 must examine the routing table to determine if the donor pool is able to donate any levels of effort. Generally, if the selected donor pool is ahead of goal or at goal, it is able to donate a percentage of level of effort to the target pool regardless of the respective pool priorities. If the donor pool is behind goal but the target pool is of a higher priority, then generally the donor pool is available to donate some percentage of level of effort. If the donor pool is behind goal and the target pool is of the same priority or lower priority, then typically the donor pool is not able to donate any level of effort to the target pool.

If at step 316 the donor pool is both active and able to donate a percentage of level of effort to the target pool, then at step 318 goal module 103 transfers a percentage of the level of effort from the donor pool to the target pool. Goal module 103 transfers the level of effort from the donor pool to the target pool by modifying the effort map in accordance with the limits specified in the routing table for the donor pool. To donate the level of effort from the donor pool to the target pool, goal module 103 examines the routing table for the donor pool to determine how much level of effort may be donated from the donor pool to the target pool. For instance using the example routing table in Table 3, if the target pool is of a higher priority than the donor pool and the donor pool is above its goal, then goal module 103 transfers 75% of the level of effort for the donor pool to the target pool, Therefore, if pool 128a is the donor pool and pool 128c is the target pool, goal module 103 transfers 75% of the level of effort for pool 128a to pool 128c thereby allowing queue 130a to receive 25% of its contact records from pool 128a and 75% of its contact records from pool 128c instead of queue 130a receiving 100% of its contact records from pool 128a. Pool 128c now supplies contact records to queues 130a and 130d instead of just queue 130d which allows additional agents 110 to access contact records from pool 128c and thereby meet the goal for pool 128c. Goal module 103 then modifies the effort map to reflect this change in the levels of effort between pools 128.

After goal module 103 transfers the level of effort, at step 320 goal module 103 determines if there are additional donor pools to cycle through. If there are additional donor pools to cycle through, then the process returns to step 314 where goal module 103 selects the donor pool having the second lowest priority and the process repeats until there are no more donor pools to cycle through at step 320. If at step 316 the donor pool is either not active or not able to donate a percentage of level of effort to the target pool, the process proceeds to step 320 where goal module 103 determines if there are additional donor pools to cycle through as described above.

When at step 320 goal module 103 determines that there are no more donor pools to cycle through, the process proceeds to step 310 where goal module 103 determines if there are any additional pools 128 to cycle through. If there are no more pools 128, then the process ends. If there are additional pools, then the process returns to step 306 where goal module 103 selects the next pool 128 based on its priority to determine if it is behind its goal.

The method of FIG. 5 repeats until goal module 103 has checked every pool 128 from highest to lowest priority to see if pools 128 are behind goal. Therefore, the pools 128 having the highest priority are addressed first by goal module 103 ensuring that pools 128 having the highest priority shall achieve and/or maintain their goals by transferring levels of effort away from pools 128 having a lower priority to pools 128 having a higher priority.

FIG. 6 illustrates a flow diagram of a method for goals based routing of contact records employing an exceed-goals goal strategy. The method begins at step 330 when goal module 103 selects a performance metric for each pool 128, determines a goal for each pool 128 and prioritizes pools 128 relative to each other. At step 332, goal module 103 calculates a goal status for each pool 128 using the goal and performance metric for each pool 128. After goal module 103 has calculated a goal status, goal module 103 cycles through pools 128 in an ascending priority order at step 334.

At step 336, goal module 103 selects a target pool based on its priority. Goal module 103 selects a target pool by first selecting the pool 128 having the lowest priority. Goal module 103 then determines the goal state using the goal status for target pool to determine if target pool is behind goal at step 338. If target pool is not behind goal, then at step 340 goal module 103 checks to see if there are additional pools 128 to cycle through. If there are no additional pools 128 to cycle through, the process ends. But if there are additional pools 128 to cycle through at step 340, then the process returns to step 336 where goal module 103 selects the pool 128 having the next lowest priority to determine if that target pool is behind goal. If that target pool is not behind goal, then the process repeats until either goal module 103 locates a target pool that is behind goal at step 338 or the process ends because no target pools are behind goal.

If at step 338, the target pool is behind goal, then goal module 103 cycles through recipient pools from highest to lowest priority at step 342. The recipient pools include all the other pools 128 except the target pool that was selected at step 336. At step 344, goal module 103 selects a recipient pool having the highest priority out of all the recipient pools. Goal module 103 then determines if the selected recipient pool is active and ahead of its goal at step 346. A pool 128 is active when it is still transferring contact records to queues 130 and has not satisfied its final goal or quota.

If at step 346 the recipient pool is both active and ahead of its goal, then at step 348 goal module 103 transfers a percentage of the level of effort from the target pool to the recipient pool. After goal module 103 transfers the level of effort, at step 340 goal module 103 determines if there are additional pools 128 to cycle through. If there are no additional pools 128 to cycle through at step 340, then the process ends. But if at step 340 there are additional pools 128 to cycle through, then the process returns to step 336 where goal module 103 selects the target pool having the next lowest priority.

If at step 346 the recipient pool is either not active or not ahead of goal, the process proceeds to step 350 where goal module 103 determines if there are additional recipient pools to cycle through. If there are additional recipient pools to cycle through at step 350, then the process returns to step 344 where goal module 103 selects a recipient pool having the next highest priority and the process repeats as described above.

If at step 350 there are no more recipient pools to cycle through, the process continues to step 352. The method only proceeds to step 352 after goal module 103 has examined all of the recipient pools to determine if the recipient pools are active and ahead of goal. At step 352, goal module 103 cycles through recipient pools from highest to lowest priority and at step 354 goal module 103 selects the recipient pool having the highest priority. At step 356, goal module 103 determines if the selected recipient pool is active and at goal. If the selected recipient pool is active and at goal, then at step 358 goal module 103 transfers a percentage of the level of effort from the target pool to the selected recipient pool. The process then continues on to step 340 where goal module 103 determines if there are additional pools 128 to cycle through and the process either ends or returns to step 336.

If at step 356 goal module 103 determines that the selected recipient pool is either not active or not at goal, then at step 360 goal module 103 determines if there are additional recipient pools to cycle through. If there are not additional recipient pools to cycle through, then the process continues to step 340 where goal module 103 determines if there are additional pools 128 to cycle through as described above. If there are additional recipient pools to cycle through at step 360, then the process returns to step 354 where goal module 103 selects the next recipient pool having the next highest priority and the process repeats as described above.

The method of FIG. 6 repeats until goal module 103 has checked every pool 128 from lowest to highest priority to see if pools 128 are behind goal. Therefore, the pools 128 having the lowest priority are examined first to determine if they are able to donate a percentage of level of effort to pools 128 having higher priority so that the pools 128 having the highest priority exceed their goals.

In an alternate embodiment, the present invention applies to the different types of contacts records and devices listed above and manages other types of customer contact requests such as inbound calls, email, Internet chat, online requests for live chat in addition to outbound call records.

Although the present invention has been described in detail, it should be understood that various changes, substitution, and alterations can be made hereto without parting from the spirit and scope of the invention as defined by the appended claims.

Rodenbusch, Jr., Richard, Duncan, Daniel N.

Patent Priority Assignee Title
ER31,
Patent Priority Assignee Title
2982873,
4599493, Aug 28 1984 Concerto Software, Inc Multi-line telephone control system
4797911, Jun 16 1987 ASPECT SOFTWARE, INC Customer account online servicing system
4829563, Apr 07 1988 e-talk Corporation Method for predictive dialing
4881261, Jun 29 1988 FIRSTPOINT CONTACT TECHNOLOGIES, LLC Method for predictive pacing of calls in a calling system
4894857, Jun 16 1987 ASPECT SOFTWARE, INC Method and apparatus for customer account servicing
4933964, Jul 25 1989 SER SOLUTIONS, INC A VIRGINIA CORPORATION Pacing of telephone calls for call origination management systems
5040208, Nov 03 1989 International Business Machines Corporation Coordinated voice and data display having temporary storage of transaction data
5179589, Nov 27 1991 SIEMENS ENTERPRISE COMMUNICATIONS, INC Call progress pacing
5185782, Feb 08 1991 AVAYA Inc ACD arrangement for automatically returning a call at a time specified by the original caller
5214688, Jun 05 1990 ASPECT SOFTWARE, INC Method and apparatus for dynamic and interdependent processing of inbound calls and outbound calls
5335269, Mar 12 1992 Wilmington Trust, National Association, as Administrative Agent Two dimensional routing apparatus in an automatic call director-type system
5343518, Jan 14 1993 Wilmington Trust, National Association, as Administrative Agent System and method for controlling the dialing order of call record lists in an automated dialing system
5436965, Nov 16 1993 Wilmington Trust, National Association, as Administrative Agent Method and system for optimization of telephone contact campaigns
5440585, Jun 14 1993 AT&T IPM Corp Applications of simultaneous analog and digital communication
5444774, Jun 26 1992 AT&T IPM Corp Interactive queuing sytem for call centers
5448555, Jun 14 1993 Summit Technology Systems, LP Simultaneous analog and digital communication
5479487, Feb 11 1993 INTERVOICE LIMITED PARTNERSHIP A NEVADA LIMITED PARTNERSHIP, COMPOSED OF, AS ITS SOLE GENERAL PARTNER, INTERVOICE GP, INC Calling center employing unified control system
5499289, Dec 06 1994 AT&T Corp. Systems, methods and articles of manufacture for performing distributed telecommunications
5499291, Jan 14 1993 AVAYA Inc Arrangement for automating call-center agent-schedule-notification and schedule-adherence functions
5509055, Jun 30 1993 AT&T Corp. Inbound telecommunications services resources management system
5533108, Mar 18 1994 American Telephone and Telegraph Company Method and system for routing phone calls based on voice and data transport capability
5537436, Jun 14 1993 Rembrandt Communications, LP Simultaneous analog and digital communication applications
5553133, Jun 30 1994 UNIFY GMBH & CO KG System and method for predictive outdialing
5570419, Oct 13 1995 InterVoice Limited Partnership System and method for an improved predictive dialer
5574781, Dec 08 1994 AT&T IPM Corp Translation indicator for database-queried communications services
5592543, Jun 01 1994 Wilmington Trust, National Association, as Administrative Agent Method and system for allocating agent resources to a telephone call campaign
5594790, Jan 14 1993 Wilmington Trust, National Association, as Administrative Agent Method for selecting and controlling the automatic dialing of a call record campaign
5594791, Oct 05 1994 Wilmington Trust, National Association, as Administrative Agent Method and apparatus for providing result-oriented customer service
5627884, Jun 26 1995 CYBER Q ACQUISITIONS, LLC; CYBER Q ACQUISITIONS, LLC NOW KNOWN AS VIRTUAL HOLD TECHNOLOGY, LLC Method for returning inbound calls
5661718, Jun 14 1993 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Simultaneous analog and digital communication
5717747, May 31 1996 AVAYA Inc Arrangement for facilitating plug-and-play call features
5721770, Jul 02 1996 AVAYA Inc Agent vectoring programmably conditionally assigning agents to various tasks including tasks other than handling of waiting calls
5732218, Jan 02 1997 AVAYA Inc Management-data-gathering system for gathering on clients and servers data regarding interactions between the servers, the clients, and users of the clients during real use of a network of clients and servers
5740238, Nov 03 1995 AVAYA Inc Method and apparatus for queuing a call to the best backup split
5742674, Dec 22 1995 AT&T Corp Automatic call-back system and method using data indicating best time to call
5751795, Aug 11 1995 AVAYA Inc Broadcasting of information through telephone switching system display messages
5754639, Nov 03 1995 AVAYA Inc Method and apparatus for queuing a call to the best split
5757644, Jul 25 1996 UNIFY, INC Voice interactive call center training method using actual screens and screen logic
5757904, Feb 05 1996 AVAYA Inc Context-sensitive presentation of information to call-center agents
5802161, Mar 22 1996 Noble Systems Corporation Method and system for optimized scheduling
5822400, Aug 19 1996 Wilmington Trust, National Association, as Administrative Agent Call record scheduling system and method
5825870, Apr 05 1996 Genesys Telecommunications Laboratories, Inc Methods and apparatus for implementing a network call center
5828747, Jan 28 1997 AVAYA Inc Call distribution based on agent occupancy
5838682, Nov 28 1995 Verizon Patent and Licensing Inc Method and apparatus for establishing communications with a remote node on a switched network based on hypertext dialing information received from a packet network
5848143, Mar 02 1995 Cisco Systems, Inc Communications system using a central controller to control at least one network and agent system
5867559, Feb 20 1996 UNIFY, INC Real-time, on-line, call verification system
5878130, Sep 30 1996 Cisco Systems, Inc Communications system and method for operating same
5898772, May 29 1997 AVAYA Inc Logical PC agent
5903641, Jan 28 1997 AVAYA Inc Automatic dynamic changing of agents' call-handling assignments
5903877, Sep 30 1996 AVAYA Inc Transaction center for processing customer transaction requests from alternative media sources
5905793, Mar 07 1997 AVAYA Inc Waiting-call selection based on anticipated wait times
5915003, Jun 14 1993 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Sketching unit for transmission of sketches and notes over normal telephone lines
5926539, Sep 12 1997 GENESYS TELECOMMUNICATIONS LABORATORIES, INC , A CORPORATION OF CALIFORNIA Method and apparatus for determining agent availability based on level of uncompleted tasks
5930337, Feb 04 1997 AVAYA Inc Dynamic message-mailbox size variation
5933476, May 30 1997 Nortel Networks Limited TTY telephone display and related processes systems and apparatus
5940475, May 30 1997 RPX CLEARINGHOUSE LLC Telephone system integrated text based communication apparatus and system to enhance access for TDD and/or TTY devices
5943395, May 30 1997 RPX CLEARINGHOUSE LLC Telephone apparatus, systems, and processes to enhance access for TDD and/or TTY devices
5946386, Mar 11 1996 Wilmington Trust, National Association, as Administrative Agent Call management system with call control from user workstation computers
5960382, Jul 07 1997 AVAYA Inc Translation of an initially-unknown message
5963635, Oct 05 1994 Wilmington Trust, National Association, as Administrative Agent Method and apparatus for providing result-oriented customer service
5982873, Mar 07 1997 AVAYA Inc Waiting-call selection based on objectives
5987115, Dec 03 1996 AVAYA Inc Systems and methods for servicing calls by service agents connected via standard telephone lines
5991293, May 23 1997 Nortel Networks Limited Circuit arrangement for providing internet connectivity to a computer in a key telephone system
6002749, May 30 1997 RPX CLEARINGHOUSE LLC Telephone system integrated text based communication apparatus and systems to establish communication links to TDD and/or TTY devices and other telephone and text server systems
6002760, Feb 17 1998 Genesys Telecommunications Laboratories, Inc Intelligent virtual queue
6009162, Oct 31 1996 AVAYA Inc Telecommunication feature for exchange of translation information between a computer and a telecommunication switching system
6014439, Apr 08 1997 Inventor Holdings, LLC Method and apparatus for entertaining callers in a queue
6038302, Apr 02 1998 AVAYA Inc Methods and apparatus for processing phantom calls placed via computer-telephony integration (CTI)
6052460, Dec 17 1997 AVAYA Inc Arrangement for equalizing levels of service among skills
6061442, Mar 07 1997 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Method and apparatus for improved call control scheduling in a distributed system with dissimilar call processors
6064730, Jun 18 1996 THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT Customer-self routing call center
6064731, Oct 29 1998 AVAYA Inc Arrangement for improving retention of call center's customers
6070012, May 22 1998 Nortel Networks Limited Method and apparatus for upgrading software subsystems without interrupting service
6078650, May 30 1997 RPX CLEARINGHOUSE LLC Telephone system integrated text based communication processes to enhance access for TDD and/or TTY devices
6088441, Dec 17 1997 AVAYA Inc Arrangement for equalizing levels of service among skills
6088442, Mar 16 1998 AVAYA Inc Automatic wireless alerting on an automatic call distribution center
6088444, Apr 11 1997 Inventor Holdings, LLC Method and apparatus for value-based queuing of telephone calls
6091808, Oct 17 1996 RPX CLEARINGHOUSE LLC Methods of and apparatus for providing telephone call control and information
6118861, Aug 14 1997 RPX CLEARINGHOUSE LLC Calling party invoked held call monitoring
6122364, Dec 02 1997 RPX CLEARINGHOUSE LLC Internet network call center
6141412, Jun 01 1994 Wilmington Trust, National Association, as Administrative Agent Unscheduled event task processing system
6154530, Apr 22 1997 U S PHILIPS CORPORATION Telecommunication equipment, system and method comprising management means for managing subscriber call-back lists
6163606, Sep 16 1998 WSOU Investments, LLC System for providing virtual called party identification in a voice mail system
6163607, Apr 09 1998 AVAYA Inc Optimizing call-center performance by using predictive data to distribute agents among calls
6170011, Sep 11 1998 Genesys Telecommunications Laboratories, Inc Method and apparatus for determining and initiating interaction directionality within a multimedia communication center
6173053, Apr 09 1998 AVAYA Inc Optimizing call-center performance by using predictive data to distribute calls among agents
6181776, Dec 24 1997 AVAYA Inc Network management of automatic call distributor resources
6188673, Sep 02 1997 AVAYA Inc Using web page hit statistics to anticipate call center traffic
6188762, Dec 01 1997 Web call center/PSTN to TCPIP internet network
6192050, Aug 29 1997 AVAYA Inc Method and apparatus for inquiry response via internet
6192122, Feb 12 1998 AVAYA Inc Call center agent selection that optimizes call wait times
6205412, Sep 09 1997 GENESYS TELECOMUNNICATIONS LABORATORIES, INC , A CORPORATION IF CALIFORNIA Methods in computer simulation of telephony systems
6208721, Jan 22 1999 WSOU Investments, LLC Method and apparatus for identifying telephone callers who have been unsuccessful in reaching a called destination
6215784, Dec 24 1997 RPX CLEARINGHOUSE LLC Method and system for voice call completion using information retrieved from an open application on a computing machine
6226377, Mar 06 1998 AVAYA Inc Prioritized transaction server allocation
6233332, Jun 03 1998 AVAYA Inc System for context based media independent communications processing
6240391, May 25 1999 Sound View Innovations, LLC Method and apparatus for assembling and presenting structured voicemail messages
6256299, Apr 30 1998 AVAYA Inc Automatic service provider notification of unauthorized terminal activity
6256381, Oct 30 1998 AVAYA Inc System and method for identifying a data record associated with a transferred telephone call
6263065, Mar 18 1997 MITEL NETWORKS, INC ; Shoretel, INC Method and apparatus for simulating central queue for distributing call in distributed arrangement of automatic call distributors
6272216, Jun 01 1998 AVAYA Inc Customer self routing call center
6272544, Sep 08 1998 AVAYA Inc Dynamically assigning priorities for the allocation of server resources to completing classes of work based upon achievement of server level goals
6278777, Mar 12 1998 UNIFY, INC System for managing agent assignments background of the invention
6292550, Jun 01 1998 AVAYA Inc Dynamic call vectoring
6295353, Oct 07 1998 AVAYA Inc Arrangement for efficiently updating status information of a network call-routing system
6298127, Jul 13 1998 AVAYA Inc Call transfer and conference with separate billing records per leg
6301354, Apr 08 1997 Inventor Holdings, LLC Method and apparatus for entertaining callers in a queue
6310951, Sep 25 1998 UNIFY, INC Reassignment of agents
6314177, Dec 22 1998 AVAYA Inc Communications handling center and communications forwarding method using agent attributes
6327362, Nov 23 1998 WSOU Investments, LLC System and method including dynamic differential treatment in workflows and contact flow
6337858, Oct 10 1997 Genband US LLC; SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT Method and apparatus for originating voice calls from a data network
6349205, Apr 15 1999 Lucent Technologies Inc Method for converting an existing subscriber to a wireless communications system
6353667, Aug 27 1998 AVAYA Inc Minimum interruption cycle time threshold for reserve call center agents
6353851, Dec 28 1998 WSOU Investments, LLC Method and apparatus for sharing asymmetric information and services in simultaneously viewed documents on a communication system
6356632, Dec 31 1998 AVAYA Inc Call selection and agent selection in a call center based on agent staffing schedule
6359982, Jan 12 1999 AVAYA Inc Methods and apparatus for determining measures of agent-related occupancy in a call center
6366666, Dec 16 1998 AVAYA Inc Adjustment of call selection to achieve target values for interval-based performance metrics in a call center
6366668, Mar 11 1999 AVAYA Inc Method of routing calls in an automatic call distribution network
6377944, Dec 11 1998 AVAYA Inc Web response unit including computer network based communication
6385191, Nov 14 1996 AVAYA Inc Extending internet calls to a telephony call center
6385302, Feb 08 2000 RPX Corporation System and method for handling special number calls using on-demand answering stations
6385646, Aug 23 1996 AT&T Corp Method and system for establishing voice communications in an internet environment
6389132, Oct 13 1999 AVAYA Inc Multi-tasking, web-based call center
6392666, Jul 21 1999 AVAYA Inc Telephone call center monitoring system allowing real-time display of summary views and interactively defined detailed views
6404747, Jun 02 1998 AVAYA Inc Integrated audio and video agent system in an automatic call distribution environment
6408066, Dec 15 1999 WSOU Investments, LLC ACD skill-based routing
6430174, Dec 26 1997 Microsoft Technology Licensing, LLC Communication system supporting simultaneous voice and multimedia communications and method of operation therefore
6434230, Feb 02 1999 AVAYA Inc Rules-based queuing of calls to call-handling resources
6445788, Jun 17 1999 Genesys Telecommunications Laboratories, Inc Method and apparatus for providing fair access to agents in a communication center
6449341, Aug 25 1998 Verizon Patent and Licensing Inc Apparatus and method for managing a software system via analysis of call center trouble tickets
6449618, Mar 25 1999 WSOU Investments, LLC Real-time event processing system with subscription model
6459774, May 25 1999 Alcatel Lucent Structured voicemail messages
6459788, Apr 27 1999 Sprint Communications Company L.P. Call center resource processor
6463346, Oct 08 1999 AVAYA Inc Workflow-scheduling optimization driven by target completion time
6470077, Mar 13 2000 AVAYA Inc Apparatus and method for storage and accelerated playback of voice samples in a call center
6473404, Nov 24 1998 PATENTMARKS COMMUNICATIONS, LLC Multi-protocol telecommunications routing optimization
6473505, Apr 27 1999 Sprint Communications Company L.P. Call processing system for handling calls to a call center
6477559, Aug 21 1998 Wilmington Trust, National Association, as Administrative Agent Method and apparatus for remotely accessing an automatic transaction processing system
6480484, Jun 09 1998 AVAYA Inc Internet-intranet greeting service
6480601, Nov 12 1999 Wilmington Trust, National Association, as Administrative Agent Voice and data transfer from outbound dialing to inbound ACD queue
6480698, Dec 02 1996 HANGER SOLUTIONS, LLC Learning method and system based on questioning
6493447, Nov 21 1997 Verizon Patent and Licensing Inc Contact server for call center for syncronizing simultaneous telephone calls and TCP/IP communications
6496831, Mar 25 1999 WSOU Investments, LLC Real-time event processing system for telecommunications and other applications
6498921, Sep 01 1999 HANGER SOLUTIONS, LLC Method and system to answer a natural-language question
6499023, Feb 19 1999 WSOU Investments, LLC Data item evaluation based on the combination of multiple factors
6501937, Dec 02 1996 HANGER SOLUTIONS, LLC Learning method and system based on questioning
6502133, Mar 25 1999 Alcatel Lucent Real-time event processing system with analysis engine using recovery information
6505183, Feb 04 1999 PEOPLEFLUENT, INC Human resource knowledge modeling and delivery system
6512415, Jul 10 1985 Ronald A. Katz Technology Licensing LP. Telephonic-interface game control system
6526397, Jun 19 1998 AVAYA Inc Resource management facilitation
6535601, Aug 27 1998 AVAYA Inc Skill-value queuing in a call center
6539090, Oct 06 1998 Lucent Technologies, Inc.; Lucent Technologies Inc Generalized arrangement for routing telecommunications calls
6539538, Nov 13 1995 Wilmington Trust, National Association, as Administrative Agent Intelligent information routing system and method
6542156, Jul 21 1999 AVAYA Inc Telephone call center monitoring system with integrated three-dimensional display of multiple split activity data
6549769, Oct 29 1999 Wilmington Trust, National Association, as Administrative Agent System and method for integrating text messaging to an outbound call system
6560330, Feb 02 1999 AVAYA Inc Rules-based queuing of calls to call-handling resources
6560649, Feb 10 1999 AVAYA Inc Hierarchical service level remediation for competing classes based upon achievement of service level goals
6563788, Feb 17 1998 Genesys Telecommunications Laboratories, Inc Method and apparatus for call distribution and override with priority recognition and fairness timing routines
6563916, Jul 08 1998 Alcatel-Lucent USA Inc System for transmitting a change in call queued/hold state across a communications network
6563920, Dec 15 1999 AVAYA Inc Methods and apparatus for processing of communications in a call center based on variable rest period determinations
6567787, Aug 17 1998 PayPal, Inc Method and apparatus for determining whether a verbal message was spoken during a transaction at a point-of-sale terminal
6570975, Feb 22 1993 NEUSTAR INFORMATION SERVICES, INC Automated telecommunications call processing method
6570976, Jan 08 1998 Kabushiki Kaisha Toshiba Multimedia private branch exchanger and private branch exchange system
6571240, Feb 02 2000 S AQUA SEMICONDUCTOR, LLC Information processing for searching categorizing information in a document based on a categorization hierarchy and extracted phrases
6574605, Nov 17 1998 CITIBANK, N A Method and system for strategic services enterprise workload management
6577720, Dec 29 1999 RPX CLEARINGHOUSE LLC System and method for providing high-speed communications using a public terminal
6581105, Sep 15 1997 Genesys Telecommunications Laboratories, Inc. Apparatus and method for improving e-mail routing in an internet protocol network telephony call-in center
6581205, Dec 17 1998 International Business Machines Corporation Intelligent compilation of materialized view maintenance for query processing systems
6584439, May 21 1999 Winbond Electronics Corporation Method and apparatus for controlling voice controlled devices
6587545, Mar 04 2000 RPX Corporation System for providing expanded emergency service communication in a telecommunication network
6587557, Sep 07 1999 Wilmington Trust, National Association, as Administrative Agent System and method of distributing outbound telephony services over a computer network
6594470, Oct 28 1999 RPX CLEARINGHOUSE LLC System and method for remote management of call center operations
6621901, Dec 13 1999 AVAYA Inc Optimal dynamic agent state assignment
6674852, Aug 31 2000 Cisco Technology, Inc. Call management implemented using call routing engine
6707906, Mar 13 2000 Wilmington Trust, National Association, as Administrative Agent Outbound calling system in a contact center
6751310, Apr 05 2000 Wilmington Trust, National Association, as Administrative Agent System and method for prioritizing telephone call campaigns based on campaign productivity
7035927, Mar 12 2002 AVAYA LLC Intelligent inbound/outbound communications blending
7054434, Jul 09 2001 Noble Systems Corporation System and method for common account based routing of contact records
7103173, Jul 09 2001 Noble Systems Corporation System and method for preemptive goals based routing of contact records
7142662, Jul 11 2000 Noble Systems Corporation Method and system for distributing outbound telephone calls
7158629, Jul 09 2001 Noble Systems Corporation System and method for preemptive goals based routing of contact records
7239692, Jul 11 2000 Noble Systems Corporation Method and system for distributing outbound telephone calls
7302051, Sep 28 1998 Wilmington Trust, National Association, as Administrative Agent System and method for providing an automatic telephone call back from information provided at a data terminal
8175258, Mar 12 2001 ALVARIA CAYMAN CX System and method for common account based routing of contact records
20010000458,
20010021646,
20010038624,
20010040887,
20020006193,
20020010645,
20020073155,
20020101854,
20020101866,
20020131399,
20020141561,
20020169834,
20020183072,
20020194047,
20020194272,
20020196277,
20030001625,
20030002654,
20030007612,
20030007625,
20030013438,
20030021259,
20030026409,
20030033382,
20030088660,
20030099342,
20030115353,
20030115545,
20030120395,
20030198336,
20060008073,
RE44979, Jul 09 2001 ALVARIA CAYMAN CX System and method for common account based routing of contact records
/////////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Mar 03 2015Noble Systems Corporation(assignment on the face of the patent)
May 28 2015Noble Systems CorporationWells Fargo Capital Finance, LLCAMENDMENT0358120507 pdf
May 06 2021Noble Systems CorporationJEFFERIES FINANCE LLCFIRST LIEN PATENT SECURITY AGREEMENT0572610093 pdf
May 06 2021ASPECT SOFTWARE, INC JEFFERIES FINANCE LLCFIRST LIEN PATENT SECURITY AGREEMENT0572610093 pdf
May 06 2021Noble Systems CorporationJEFFERIES FINANCE LLCSECOND LIEN PATENT SECURITY AGREEMENT0576740664 pdf
May 06 2021ASPECT SOFTWARE, INC JEFFERIES FINANCE LLCSECOND LIEN PATENT SECURITY AGREEMENT0576740664 pdf
May 06 2021Wells Fargo Capital Finance, LLCNoble Systems CorporationRELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0561930363 pdf
Apr 08 2024JEFFRIES FINANCE LLCALVARIA, INC RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL0670410102 pdf
Apr 08 2024JEFFRIES FINANCE LLCNOBLE SYSTEMS, LLCRELEASE OF SECURITY INTEREST IN PATENT COLLATERAL0670410102 pdf
Date Maintenance Fee Events
Jun 25 2018M2553: Payment of Maintenance Fee, 12th Yr, Small Entity.


Date Maintenance Schedule
Jul 11 20204 years fee payment window open
Jan 11 20216 months grace period start (w surcharge)
Jul 11 2021patent expiry (for year 4)
Jul 11 20232 years to revive unintentionally abandoned end. (for year 4)
Jul 11 20248 years fee payment window open
Jan 11 20256 months grace period start (w surcharge)
Jul 11 2025patent expiry (for year 8)
Jul 11 20272 years to revive unintentionally abandoned end. (for year 8)
Jul 11 202812 years fee payment window open
Jan 11 20296 months grace period start (w surcharge)
Jul 11 2029patent expiry (for year 12)
Jul 11 20312 years to revive unintentionally abandoned end. (for year 12)