# US 10,313,526 B2 · Mechanism for work assignment in a graph-based contact center

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,526 B2
- Document ID: US10313526B2
- Status: Granted
- Kind: B2
- Application number: 15/928,487
- Filed: 2018-03-22
- Published: 2018-07-26
- Granted: 2019-06-04
- Earliest claimed: 2014-05-29
- Assignees: Avaya Inc.
- Applicants: Avaya Inc.
- Inventors: Robert C. Steiner; Wen-Hua Ju
- Web page: https://patentgrep.com/patent/US10313526B2

## CPC

- H04M 3/5232: {Call distribution algorithms}
- G06Q 30/016: After-sales
- H04M 3/493: Interactive information services, e.g. directory enquiries {; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals}
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A graph database is described for use in connection with a contact center. The graph database includes a plurality of nodes and relationships that describe the operations, entities, personnel, and attributes in the contact center. Also described is the operation of a work assignment engine that leverages the graph database to make intelligent and flexible work assignment decisions.

## Claims

### Claim 1

A method, comprising:
receiving, by a server of a contact center, a contact in a contact center;
updating, by the server of the contact center, a node in a graph database that is representative of the contact, the graph database representing a model of the contact center and comprising a plurality of nodes and at least one edge object between two or more nodes of the plurality of nodes, the at least one edge object defining at least one relationship between the two or more nodes, wherein the plurality of nodes represents work items of the contact center and resources of the contact center;
identifying, by the server of the contact center, one or more processing requirements associated with the contact;
searching, by the server of the contact center, the graph database for a resource node that possesses an attribute which satisfies or nearly satisfies the one or more processing requirements associated with the contact; and
in response to identifying the resource node, updating, by the server of the contact center, the graph database to signify that the resource node satisfies or nearly satisfies the one or more processing requirements.

### Claim 2 (depends on 1)

The method of claim 1, wherein updating the graph database comprises creating an edge object in the graph database that connects the node with the resource node and defines a relationship between the node and the resource node.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
connecting the node and the resource node with a conference node in the graph database, wherein the conference node represents interactions of the contact with the contact center and a work item to be processed by the contact center.

### Claim 4 (depends on 2)

The method of claim 2, wherein the graph database stores a plurality of data elements without a fixed schema and wherein the plurality of data elements include the node and the resource node.

### Claim 5 (depends on 4)

The method of claim 4, wherein the plurality of data elements further include one or more nodes which represent at least one of a work item of the contact center, a contact of the contact center, a resource of the contact center, a conference in the contact center, or an event of the contact center.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
using a work assignment engine to search the graph database by traversing nodes of an attribute tree maintained in the graph database and then make a proximity-based work assignment decision for the contact.

### Claim 7 (depends on 6)

The method of claim 6, wherein the resource does not possess every attribute required to satisfy the one or more processing requirements.

### Claim 8 (depends on 7)

The method of claim 7, wherein the node is connected to the resource node in the attribute tree.

### Claim 9 (depends on 8)

The method of claim 8, wherein the work assignment engine identifies costs associated with assigning the contact to the resource by traversing the nodes of the attribute tree and summing traversal values associated with traversing the nodes of the attribute tree.

### Claim 10 (depends on 1)

The method of claim 1, wherein the database is updated to store a relationship that connects the node to the resource node and wherein the relationship comprises a property identifying a time at which a contact center resource associated with the resource node is assigned to the contact.

### Claim 11 (depends on 10)

The method of claim 10, wherein the relationship that connects the node to the resource node further comprises a property identifying how long the contact center resource takes to process the contact.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
writing information to the database that reflects an assignment of a resource associated with the resource node to the contact.

### Claim 13

A contact center, comprising:
a processor; and
a memory coupled with and readable by the processor and storing therein a set of instructions which, when executed by the processor, cause the processor to update a database of the contact center by:
receiving a contact in the contact center;
updating a node in a graph database that is representative of the contact, the graph database representing a model of the contact center and comprising a plurality of nodes and at least one edge object between two or more nodes of the plurality of nodes, the at least one edge object defining at least one relationship between the two or more nodes, wherein the plurality of nodes represents work items of the contact center and resources of the contact center;
identifying one or more processing requirements associated with the contact;
searching the graph database for a resource node that possesses an attribute which satisfies or nearly satisfies the one or more processing requirements associated with the contact; and
in response to identifying the resource node, updating the graph database to signify that the resource node satisfies or nearly satisfies the one or more processing requirements.

### Claim 14 (depends on 13)

The contact center of claim 13, wherein the node is connected directly to the resource node by a first relationship.

### Claim 15 (depends on 14)

The contact center of claim 14, wherein the first relationship comprises one or more properties that describe when a work assignment engine assigned the contact or a work item associated with the contact to the resource.

### Claim 16 (depends on 15)

The contact center of claim 15, wherein the first relationship further comprises a property that describes an amount of time during which the resource was assigned to the contact or a work item associated with the contact.

### Claim 17 (depends on 13)

The contact center of claim 13, wherein the node is indirectly connected to the resource node via at least two relationships and at least a third node of the graph database.

### Claim 18 (depends on 17)

The contact center of claim 17, wherein the third node comprises a conference node to which both the node and the resource node are directly connected.

### Claim 19 (depends on 13)

The contact center of claim 13, wherein the database further comprises an attribute tree comprising a plurality of nodes, wherein each of the plurality of nodes describe different attributes in the contact center, and wherein the attribute tree enables a work assignment engine to make proximity-based work assignment decisions.

### Claim 20

A non-transitory computer-readable medium-comprising processor-executable instruction that, when executed by a processor, perform a method that comprises:
receiving a contact in a contact center;
updating a node in a graph database that is representative of the contact, the graph database representing a model of the contact center and comprising a plurality of nodes and at least one edge object between two or more nodes of the plurality of nodes, the at least one edge object defining at least one relationship between the two or more nodes, wherein the plurality of nodes represent work items of the contact center and resources of the contact center;
identifying one or more processing requirements associated with the contact;
searching the graph database for a resource node that possess an attribute which satisfies or nearly satisfies the one or more processing requirements associated with the contact;
identifying a first resource node among a plurality of resource nodes that nearly satisfies but does not completely satisfy the one or more processing requirements associated with the contact; and
in response to identifying the first resource node, updating the graph database to signify that the first resource node nearly satisfies the one or more processing requirements.
