Technical Field
[0001] This invention relates to queuing arrangements, for example to telephone call-answering
centers and automatic call-distribution systems.
Background of the Invention
[0002] In automatic call-distribution (ACD) systems, calls incoming to a call center are
answered and handled by a plurality of agents. The ACD system automatically distributes
and connects incoming calls to whatever agents are suited to handle the calls and
available, that is, not handling other calls at the moment.
[0003] It often happens that the call center becomes overloaded by calls, so that no suitable
agents are available to handle calls at the moment that the calls come in. The calls
then back up. They are placed in different queues based upon some preestablished criteria,
and are placed in each queue in the order of their arrival and/or priority. There
they await suitable agents becoming available to service them. The waiting calls are
distributed to agents for handling on an oldest-call-waiting (OCW) basis. That is,
when an agent becomes available, the system considers the call at the head of each
queue from which that agent is eligible to handle a call, and selects the one of the
calls that has been waiting the longest. The system does not take into consideration
the unique service-time needs of different types of calls. For example, a video call
may need to be serviced within tens of seconds of its arrival, and a voice-only call
may need to be serviced within minutes, while e-mail may need a response within hours
of its arrival.
Summary of the Invention
[0004] This invention is directed to solving these and other deficiencies of the prior art.
Illustratively according to the invention, call center performance in meeting the
needs of clients is improved by assigning different service-time objectives to different
types of calls or to call queues for different types of calls, and then selecting
a waiting call that is farthest along in (e.g., closest to) exceeding its assigned
service-time objective for handling by an available agent. The objectives represent
limits on the amount of time that calls should spend waiting for agents before being
handled. Given this capability, call types can be prioritized by having different
assigned service-time objectives. As the service-time objective of a waiting call
is approached, the urgency, or priority, of the waiting call automatically increases
relative to newly-arriving calls.
[0005] Generally according to the invention, there is provided a method of and an apparatus
for selecting one of a plurality of items (e.g., communications) that are waiting
to be selected. Different ones of a plurality of waiting-time limits are assigned
to different ones of the plurality of items. A determination is then made of which
one of the plurality of waiting items is farthest along in exceeding its assigned
waiting-time limit, and the one item that is farthest along in exceeding its assigned
waiting time limit is selected. The second and third steps are preferably repeated
until only one item of the plurality remains waiting to be selected. The determination
is preferably made by determining a present waiting time for each one of the plurality
of waiting items and then determining a ratio --for example, a percentage-- of the
present waiting time and the assigned waiting-time limit for each one of the plurality
of waiting items. The ratio may be either straight or weighted. The waiting item having
the largest determined ratio is then selected.
[0006] While the method comprises the steps of the just-characterized procedure, the apparatus
effects the method steps. The apparatus preferably includes an effector --any entity
that effects the corresponding step, unlike means-- for each step. Further according
to the invention, there is provided a computer-readable medium containing software
which, when executed in a computer, causes the computer to perform the method steps.
[0007] If the plurality of waiting items are communications that are waiting to be processed
(e.g., handled by agents) the procedure involves assigning different ones of the plurality
of waiting communications to different ones of a plurality of waiting-time limits,
determining which one of the plurality of waiting communications is farthest along
in exceeding its assigned waiting-time limit, and first processing the determined
one of the plurality of waiting communications.
[0008] These and other advantages and features of the invention will become more apparent
from the following description of an illustrative embodiment of the invention taken
together with the drawing.
Brief Description of the Drawing
[0009]
FIG. 1 is a block diagram of a call center that includes an illustrative embodiment
of the invention; and
FIG. 2 is a flow diagram of operations of the SEL function of the call center of FIG.
1.
Detailed Description
[0010] FIG. 1 shows an illustrative call center that comprises an automatic call-distribution
(ACD) switch 10 serving a plurality of agent stations 11 at least some of which are
staffed by agents 25. ACD switch 10 is connected to a plurality of trunks 12 over
which it receives incoming calls. It then distributes and connects these calls to
stations 11 of available agents 25 based on a set of predetermined criteria. The agents
process calls sent to them by ACD switch 10. The call center of FIG. 1 is illustratively
the subscriber-premises equipment disclosed in U.S. Patent No. 5,206,903.
[0011] ACD switch 10 is also served by a pair of adjunct processors 13 and 14. Call management
system (CMS) 13 provides a call accounting, reporting, and management capability,
and a voice information system (VIS) 14 provides an announcements capability. Both
adjunct processors 13 and 14 are conventional. CMS 13 is illustratively the Lucent
Technologies CMS, and VIS 14 is illustratively the Lucent Technologies ConversantĀ®
VIS. As is conventional, ACD system 10 is a stored-program-controlled unit that includes
a memory 15 comprising one or more different memory units for storing programs and
data, and a processor 16 for executing the stored programs and using the stored data
in their execution. The memory includes a plurality of sets 20 of call queues 21.
Each set 20 of call queues 21 conventionally serves and holds calls for a different
split or skill group of agents. Within each set 20 of call queues 21, each queue 21
holds calls of a different priority. Alternatively, each set 20 comprises only one
call queue 21 in which calls of different priority are enqueued in their order of
priority. Calls are assigned different priorities in a known manner based upon some
predefined criteria such as, for example, whether the caller is an unknown person,
a regular account holder, or a preferred customer. Calls may likewise be assigned
different priorities based on the call's medium or media, e.g., video, voice-only,
e-mail, etc. Each queue 21 functions as a first-in, first-out (FIFO) buffer memory,
and includes a plurality of entries, or positions 23, each for identifying a corresponding
one enqueued call. The position 23 at the head of queue 21 is considered to be position
number 1, the next subsequent position 23 in queue 21 is considered to be position
number 2, etc.
[0012] Memory 15 further includes an estimated wait time (EWT) function 22. As its name
implies, this function determines an estimate of how long a call that is placed in
queue 21 will have to wait before being connected to a station 11 for servicing. The
estimate is derived separately by EWT function 22 for each queue 21 of each set 20.
It is based on the average rate of advance of calls through positions 23 of the calls'
corresponding queue 21. An illustrative implementation of EWT function 22 is disclosed
in U.S. Patent No. 5,506,898.
[0013] Memory 15 further includes a call-selection (SEL) function 24. Function 24 is conventional
in that, for each call at the head of a queue 21, it determines how long the call
has been in the queue (the call's present wait time, or PWT), and in that, for each
available agent 25 it selects a call from queues 21 for connection to and handling
by that agent 25. According to the invention, however, SEL function 24 does not select
calls on an oldest-call waiting (OCW) basis. Rather, when an agent 25 becomes available,
SEL function considers the call at the head of the highest-priority non-empty queue
21 of each set 20 from which that agent is eligible to handle a call, and selects
the call that is farthest along according to some predefined measure --either in actual
time or as a percentage of the service-time objective, or as a combination of the
two, for example-- in exceeding its service-time objective. If no call happens to
have already exceeded its service time objective, the call that comes closest to exceeding
its objective is selected. If any calls happen to have already exceeded their service-time
objectives, the call that has most exceeded its objective is selected. This functionality
of SEL function 24 is flowcharted in FIG. 2.
[0014] As shown in FIG. 2, SEL function 24 includes a table 220 of pre-administered (i.e.,
pre-programmed) values of service-time objectives 222, one assigned to each queue
21, i.e., to the calls in each queue 21. By placing a call in a particular queue 21,
ACD system 10 assigns that queue's service-time objective 222 to that call. Each objective
222 represents a limit on the amount of time from entering the corresponding queue
21 that a call should spend waiting in queue 21 before being connected to and/or answered
by an agent 25. Execution of SEL function 24 is invoked each time that an agent 25
becomes available to handle a call, at step 200. In response, SEL function 25 determines,
from the agent's stored profile, the skills or splits to which agent 25 is assigned,
at step 202. SEL function 24 then determines the highest-priority non-empty call queue
21 in each set 20 that corresponds to the agent's skills or splits, at step 204. That
is, for each of the agent's skills or splits, SEL function 24 selects the corresponding
set 20 of call queues 21, and determines the highest-priority call queue 21 in each
selected set 20 which contains at least one call.
[0015] For the call at the head of each of the determined call queues 21, SEL function 24
determines how long that call has been in queue (i.e., determines the call's present
wait time), in a conventional manner, at step 206. Alternatively, SEL function 24
may determine the call's anticipated wait time (a function of the present wait time
and the average rate of advance of calls through the queue). Also, for each of the
determined call queues 21, SEL function 24 determines the corresponding service-time
objective 222 from table 220, at step 208. For each of the calls at the heads of the
determined call queues 21, SEL function 24 then computes the expired service-time
objective ratio or percentage, by dividing the wait time obtained at step 206 by the
service-time objective and for percentage multiplying the result by 100, at step 210.
Preferably, prior to the next step, the computed ratios are normalized, to compensate
for differences in orders of magnitude of the objectives of the different queues.
For example, each ratio may be weighted by a dividend of the average rate of advance
of calls through the corresponding queue and the time remaining to expiration of the
queue's service-time objective. SEL function 24 then compares the computed/normalized
expired service-time objective ratios or percentages and selects the call that has
the highest expired service-time objective ratios or percentage, at step 212. If two
or more calls have the same expired service-time objective percentage, SEL function
24 selects from among them the call which has the highest priority. Alternatively,
SEL function 24 may compute at step 210 the difference between the service-time objective
and the actual or anticipated wait time for each of the subject calls, by subtracting
the wait time obtained at step 206 from the service time objective, and then selecting
at step 212 the call that has the lowest (including negative) resulting difference.
SEL function 24 then assigns the selected call to the agent 25 who became available
at step 200, at step 214, and ends execution, at step 216, until an agent 25 becomes
available again.
[0016] Of course, various changes and modifications to the illustrative embodiment described
above will be apparent to those skilled in the art. For example, each queue position
23 may include a separate service-time objective value for the individual call that
is presently in that queue position, and SEL function 24 then performs the determinations
of steps 206-210 for every call in each of the queues which correspond to the available
agent's skills or splits. Or, the SEL function may be performed by an adjunct processor
that is connected to and controls the ACD switch via computer telephony integration
(CTI). Such changes and modifications can be made without departing from the spirit
and the scope of the invention and without diminishing its attendant advantages. It
is therefore intended that such changes and modifications be covered by the following
claims.
1. A method of selecting one of a plurality of items that are waiting to be selected,
CHARACTERISED BY the steps of:
assigning (208) different ones of the plurality of items to different ones of a plurality
of waiting-time limits (222);
determining (206, 210) which one of the plurality of items is farthest along in exceeding
its assigned waiting-time limit; and
selecting (212) the determined one of the plurality of items.
2. The method of claim 1 wherein:
the step of determining comprises the steps of
determining (206) a present waiting time for each one of the plurality of items, and
determining (210) either a ratio of the present waiting time and the assigned waiting-time
limit or a percentage of the waiting-time limit represented by the present waiting
time for each one of the plurality of items; and
the step of selecting comprises the step of
selecting (212) the item having a largest determined said ratio or percentage.
3. The method of claim 1 wherein:
the step of determining comprises the steps of
anticipating (206) how long each one of the plurality of items will have waited to
be selected if said item is not selected first from among the plurality of items,
and
determining (210) which one of the plurality of items has an anticipated wait time
that is farthest along in exceeding its assigned waiting-time limit.
4. The method of claim 1 for selecting one of a plurality of items from a plurality of
queues (21) each having at least one enqueued item, wherein:
the step of assigning comprises the step of
assigning (208) different ones of the plurality of waiting-time limits (222) to different
ones of the plurality of queues; and
the step of determining comprises the steps of
determining (210) which one of items that are enqueued at heads of the queues is farthest
along in exceeding the waiting-time limit of its queue.
5. The method of claim 1 wherein:
the plurality of items are waiting to be selected for processing, and
the selected item is selected for being processed (214) first from among the waiting
items.
6. The method of claim 1 wherein:
the items are communications that are waiting to be processed;
the step of determining comprises the steps of
determining (206) a present waiting time indicative of how long a communication has
been waiting to be processed, for each one of the plurality of communications, and
determining (210) either a ratio of the present waiting time and the assigned waiting-time
limit or a percentage of the waiting-time limit represented by the present waiting
time for each one of the plurality of communications; and
the step of first processing comprises
first processing (212, 214) the communication having a largest determined said ratio
or percentage.
7. The method of claim 6 for selecting for processing one of a plurality of communications
from a plurality of queues (21) each having at least one enqueued communication, wherein:
the step of assigning comprises the step of
assigning (208) different ones of the plurality of waiting-time limits (222) to different
ones of the queues; and
the step of determining comprises the step of
determining (210) which one of communications waiting at heads of the queues is farthest
along in exceeding the waiting-time limit of its queue.
8. The method of claim 7 wherein:
the step of determining which one of the communications waiting at heads of the queues
is farthest along in exceeding the waiting-time limit of its queue comprises the steps
of
determining (206) a present waiting time indicative of how long a communication has
been waiting to be processed, for each of the communications waiting at heads of the
queues, and
determining (210) a ratio of the present waiting time and the waiting-time limit assigned
to the queue for each one of the communications waiting at heads of the queues; and
the step of first processing comprises the step of
first processing (212, 214) the one of the communications waiting at heads of the
queues which has a highest determined said ratio.
9. The method of claim 6 for selecting for processing one of a plurality of communications
from a plurality of queues (21) each having at least one enqueued communication, wherein:
each one of the queues corresponds to a different skill or split;
the step of assigning comprises the step of
assigning (208) different ones of the plurality of waiting-time limits (222) to different
ones of the queues;
the step of determining comprises the steps of
in response to an agent (25) becoming available to process a communication, determining
(202) skills or splits that correspond to the agent, and
in response to determining the skills or splits that correspond to the agent, determining
(204, 206, 210) which one of communications enqueued at heads of the queues that correspond
to the skills or splits that correspond to the agent is farthest along in exceeding
its assigned waiting-time limit.
10. An apparatus that effects the steps of claim 11 or 2 or 3 or 4 or 5 or 6 or 7 or 8
or 9.