You can use the precision queue API to list the precision queues currently defined in the database, define new precision queues, and view, edit, or delete records of existing precision queues.
Precision queues are a combination of steps that include Attributes, defined terms for the selected Attributes,
and wait times. A precision queue step is a time-based routing point within the precision queue.
You must have at least one step and can have up to ten steps. Within each step you can have:
Up to five unique Attributes
A different pool of Agents
A wait time
A precision queue term compares an Attribute against a value. For example, if you have an Attribute for
English (English_skill) and assign it a value of > 7, the term is English_skill > 7. You can create a maximum
of 2000 system-wide precision queues. You can associate a maximum of ten precision queue terms to a
precision queue step. You can associate a maximum of five Attributes to a precision queue term.
The following limits are enforced through the API:
You can add a maximum of 2000 precision queues to the entire system.
You can associate a maximum of ten precision queue terms to a precision queue step.
You can associate up to five unique Attributes to a precision queue.
An Agent can be a member of a combination of up to 50 precision queues and Skill Groups.
The following table shows the precision queue parameters:
Parameter Name
Description
bucketInterval
A reference to a bucketInterval. See the bucketInterval parameters below.
agentCount
An optional parameter that returns Agent Count for
the precision queue and each step.
agentOrdering
Determines the order of Agents in a precision queue sub-queue
using the following values:
1 = LAA (Agent availability time).
2 = Most skilled Agent.
3 = Least skilled Agent.
callOrdering
Determines the order of calls in this precision queue using the following value:
1 = Priority, then time in queue.
changeStamp
This parameter represents the current state of the database. The value
is populated when the system retrieves data using the GET command.
name
A unique enterprise name for the precision queue.
description
Description for the precision queue.
serviceLevelThreshold
The service level threshold in seconds for this precision queue.
serviceLevelType
Determines how to calculate the service level for the precision
queue using the following values:
1 = Ignore abandoned calls.
2 = Abandoned call has negative impact.
3 = Abandoned call has positive impact.
steps
A list of steps for this precision queue. See the Step Parameters.
The following table shows the bucketInterval parameters:
Parameter Name
Description
name
The unique enterprise name of the Bucket Interval.
refURL
The URL of the referenced Bucket Interval.
You can create up to ten steps for each precision queue. The following table shows the step parameters:
Parameter Name
Description
stepOrder
The order of rows for a precision queue step.
waitTime
A wait time to apply before proceeding to the next step (in seconds).
considerIf
Consider If expression which must be met to execute a particular
step.
description
Description for this step.
terms
A list of terms for this step. See the term parameters.
You can configure up to ten terms for each step. The following table shows the term parameters:
Parameter Name
Description
termOrder
The order of rows for a precision queue term.
attribute
A reference to the Attribute to be tested.
parenCount
The number of parenthesis around this term. A positive number indicates
open parens before the term; a negative number indicates closed parens after the term.
termRelation
Indicates the relationship of this term to the preceding term, using the
following values:
0 = None (only legal on first item for queue, since there is no
preceding term).
1 = AND.
2 = OR.
attributeRelation
Indicates what kind of comparison is done on the Attribute, using the
following values:
1 = Equal.
2 = Not equal.
3 = Less than.
4 = Less than or equal.
5 = Greater than.
6 = Greater than or equal.
value1
The value that the Attribute is tested against. It must be convertible to
the data type specified in the Attribute table.
create
Creates a precision queue, precision queue steps, and precision queue
terms.
This value must
start at 1 (0 is invalid) and increment by one for each subsequent step.
waitTime
Required field.
Integer.
The value must be 0
or greater for all steps, excluding the last step. The value for the last step
defaults to -1. With a value of -1, the system waits until an Agent is
available to take the call.
considerIf
Required field.
Max length 255
bytes.
Objects used in the
expression are case sensitive.
You cannot add an
expression to the last step.
Examples:
PQ.PQ1.LoggedOn
> 1—This expression evaluates whether there is more than one Agent logged
into this queue.
CallType.CallType1.CallsRoutedToday
> 100—Evaluates whether more than 100 calls of this Call Type were routed
today.
description
Optional field.
terms
Required field.
For term Parameters:
termOrder
Required field.
Integer.
Value must start at
1 (zero is invalid) for each new step and increment by one for each subsequent
term.
attribute
Required field.
All elements inside
the Attribute reference node, except the refURL element, are read-only.
parenCount
Required field.
Integer.
The total of
ParenCount for all Attribute entries for a precision queue must be zero.
termRelation
Required field.
Integer.
Valid values are 0,
1, and 2.
attributeRelation
Required field.
Integer.
Valid values are
1-6.
value1
Required field.
Must be convertible
to the data type specified in the Attribute table.
delete
Deletes a precision queue and the corresponding precision queue steps
and terms.
Note: If you reference a precision queue statically in any
version of a saved script, you cannot delete it from the precision queue.
Specifically, to delete a precision queue that is referenced statically in a
script, you must delete it from every version of the saved script.
If you reference a precision queue dynamically in a script and there
are calls queued against the precision queue, you can delete the precision
queue. However, the router keeps the precision queue operational until all
calls are no longer in the queue. Once the precision queue is deleted, no new
calls are queued against it.
Updates a precision queue and corresponding steps and terms.
When you update an existing precision queue, you must provide all of
the parameters. There are no incremental updates of any parameters, including
steps and terms. For example, assume you have a precision queue with a single
step and a single term. To add a term to the existing step, you must provide
all precision queue parameters, in addition to the step and both terms.
When you update an existing precision queue, Agents associated with
the queue can change dynamically. Specifically, if you modify the terms
associated with precision queue steps, Agents that were previously in the
precision queue may be removed from the queue and Agents that were previously
not included in the precision queue may be added to the queue. For example, you
have a precision queue with one step and one term and the term criterion is:
Spanish > 6. If Agent A has the attribute Spanish with value 5, the Agent is
not included in this precision queue. If you update the precision queue and
change the term to Spanish >= 5, Agent A is dynamically moved into this
precision queue and is available to take calls.
All of the restrictions from the
create operation apply, in addition to the following:
changeStamp
Integer.
The same value must
be returned in an update operation, to ensure the client is working with the
latest data set. This value is not required when you create a precision queue.