A system, apparatus, and method for routing work items to agents, wherein
the work items can be of one of two or more different communication media
types from one of two or more different communication channels. A queuing
engine includes a list of routes and each route is associated with one or
more properties. The list of routes can further include information
related to one or more escalation rules for each route; the type of
communication media available along the route for handling one or more of
the work items; whether the route is active; the priority of the route;
whether work items can be handled real-time; the service level for work
items handled on the route; and the number of work items that can be
assigned to the route. The queuing engine determines various properties
required to handle each work item, such as the communication media type,
agent language and skill level, and the category and recipient of the
work item, and to assign each work item to one of the one or more agents
based on one or more of the properties. When the queuing engine
determines that a work item has been waiting a predetermined amount of
time to be assigned to an agent, and the queuing engine can escalate the
search for an agent to handle the work item based on the escalation
rules. The queuing engine can also substitute values for variables in the
routing and escalation rules, thereby reducing the number of rules that
must be entered to achieve the same routing capability.