Patent ID: 8023637

Claim:
A method for allocating resources in a contact center comprising: a) maintaining a network of nodes, wherein said network of nodes is a hierarchical network, said network of nodes comprising: a plurality of service nodes, wherein each service node from said plurality of service nodes has no more than one parent node and wherein each service node from said plurality of service nodes has one or more child nodes, wherein each of said child nodes is either a service node or a resource node; and a plurality of resource nodes; b) enqueuing a first contact at a first service node from the plurality of service nodes based on a routing recommendation for said first contact, wherein said routing recommendation is based at least in part on a set of real time resource availability data stored in a computer readable medium; c) dequeuing said first contact from said first service node to a first resource node from said plurality of resource nodes based at least in part on a path between said first service node and said first resource node; d) updating said set of real time resource availability data stored in said computer readable medium to reflect that said first contact has been dequeued to said first resource node; e) servicing said first contact using a resource corresponding to said first resource node; f) after the first contact has been serviced, updating said set of real time resource availability data stored in said computer readable medium to reflect that the resource corresponding to the first resource node is no longer servicing said first contact; g) enqueuing a second contact at the first service node from said plurality of service nodes; h) determining whether to dequeue said second contact from said first service node based on a first dequeuing strategy; i) if said second contact is dequeued from said first service node, determining whether to requeue said second contact at: i) the first resource node; or ii) a second service node; based on: i) a conflict resolution strategy; and ii) the set of real time resource availability data and j) requeuing said second contact at said second service node, wherein said second service node is a parent node of said first service node.