# US 12,603,823 B2 · Hybrid request routing system

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

- Number: US 12,603,823 B2
- Document ID: US12603823B2
- Status: Granted
- Kind: B2
- Application number: 18/800,796
- Filed: 2024-08-12
- Published: 2024-12-05
- Granted: 2026-04-14
- Earliest claimed: 2022-08-12
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Vani Banaji; Philip Casini; Scott Rhodes; Adam Wesley Moguel; Balaji Cuttackam; Chinmayee Nagaraju; Gaurav Goyal; Nidhi Srinivas
- Web page: https://patentgrep.com/patent/US12603823B2

## CPC

- H04L 41/5074: Handling of user complaints or trouble tickets
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Persistent storage contains a state machine for a request routing process and a plurality of requests related to the request routing process. One or more processors are configured to apply the state machine through operations including: obtaining a request from the plurality of requests; providing, to a criticality detection application and to an intent detection application, a representation of the request, wherein the criticality detection application is configured to detect a criticality of the request, and wherein the intent detection application is configured to determine a semantic intent of the request; receiving, from the criticality detection application and the intent detection application, respective indications of a detected criticality of the request and a detected intent of the request; determining whether to route the request to a channel that is one of a live agent, a virtual agent, or a search-based application; and routing the request to the channel as determined.

## Claims

### Claim 1

A method comprising:
obtaining a request;
determining a criticality and an intent of the request;
while the request is not assigned to an agent, selecting a channel from among a live agent, a virtual agent, and a search-based application,
wherein the live agent is selected when the criticality of the request is greater than a threshold criticality, and
wherein the virtual agent or the search-based application is selected based on the intent when the criticality of the request is not greater than the threshold criticality; and
routing the request to the channel.

### Claim 2 (depends on 1)

The method of claim 1, wherein a criticality detection application is configured to detect the criticality of the request, and wherein an intent detection application is configured to determine a semantic intent of the request.

### Claim 3 (depends on 2)

The method of claim 2, wherein determining the criticality and the intent of the request comprises:
receiving, from the criticality detection application and the intent detection application, respective indications of a detected criticality of the request and a detected intent of the request.

### Claim 4 (depends on 2)

The method of claim 2, wherein the request includes textual content, and wherein the criticality detection application is configured to detect the criticality of the request based on presence or absence of a sensitive personal problem, an indication of a problem with a multi-user impact, or an indication of timeliness within the textual content.

### Claim 5 (depends on 2)

The method of claim 2, wherein determining the criticality and the intent of the request comprises:
receiving, from the criticality detection application and the intent detection application, respective initial indications of the criticality of the request and the intent of the request;
providing, to a post-processor, one or more of the respective initial indications of the criticality of the request and the intent of the request; and
obtaining, from the post-processor, modified versions of the one or more of the respective initial indications of the criticality of the request and the intent of the request, wherein the criticality and the intent of the request are specified by the modified versions, respectively.

### Claim 6 (depends on 1)

The method of claim 1, wherein selecting the channel from among the virtual agent or the search-based application comprises:
determining that the intent does not match any virtual agent topics supported by the virtual agent; and
in response to determining that the intent does not match the virtual agent topics supported by the virtual agent, selecting the search-based application.

### Claim 7 (depends on 6)

The method of claim 6, wherein selecting the search-based application comprises:
determining a preferred search channel of a user associated with the request, wherein the preferred search channel is either a web portal, email, or text message; and
providing, to the user, search-based results related to the request by way of the preferred search channel.

### Claim 8 (depends on 1)

The method of claim 1, wherein selecting the channel from among the virtual agent or the search-based application comprises:
determining that the intent matches a virtual agent topic supported by the virtual agent; and
in response to determining that the intent matches the virtual agent topic supported by the virtual agent, selecting the virtual agent.

### Claim 9 (depends on 1)

The method of claim 1, wherein determining the criticality and the intent of the request comprises:
providing, to a pre-processor, the request;
obtaining, from the pre-processor, a modified version of the request; and
determining the criticality and the intent of the modified version of the request.

### Claim 10 (depends on 1)

The method of claim 1, wherein selecting the channel from among the live agent, the virtual agent, and the search-based application comprises:
providing a representation of the request to a language detection application, wherein the language detection application is configured to detect a language in which the request is written;
receiving, from the language detection application, an indication of a detected language of the request; and
selecting the channel also based on the detected language.

### Claim 11 (depends on 1)

The method of claim 1, wherein the request is initially assigned to a virtual agent queue for processing, and wherein the request is removed from the virtual agent queue when it is routed to the live agent or the search-based application.

### Claim 12 (depends on 1)

The method of claim 1, wherein the request is initially routed to the virtual agent, the method further comprising:
determining that a user associated with the request has rejected a recommendation from the virtual agent, requested the live agent, or has not replied to a query from the virtual agent within a pre-determined period of time; and
re-routing the request to the live agent.

### Claim 13

A non-transitory computer-readable medium, storing program instructions that, when executed by one or more processors of a computing system, cause the computing system to perform operations comprising:
obtaining a request;
determining a criticality and an intent of the request;
while the request is not assigned to an agent, selecting a channel from among a live agent, a virtual agent, and a search-based application,
wherein the live agent is selected when the criticality of the request is greater than a threshold criticality, and
wherein the virtual agent or the search-based application is selected based on the intent when the criticality of the request is not greater than the threshold criticality; and
routing the request to the channel.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein selecting the channel from among the virtual agent or the search-based application comprises:
determining that the intent does not match any virtual agent topics supported by the virtual agent; and
in response to determining that the intent does not match the virtual agent topics supported by the virtual agent, selecting the search-based application.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14, wherein selecting the search-based application comprises:
determining a preferred search channel of a user associated with the request, wherein the preferred search channel is either a web portal, email, or text message; and
providing, to the user, search-based results related to the request by way of the preferred search channel.

### Claim 16 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein selecting the channel from among the virtual agent or the search-based application comprises:
determining that the intent matches a virtual agent topic supported by the virtual agent; and
in response to determining that the intent matches the virtual agent topic supported by the virtual agent, selecting the virtual agent.

### Claim 17 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein determining the criticality and the intent of the request comprises:
providing, to a pre-processor, the request;
obtaining, from the pre-processor, a modified version of the request; and
determining, the criticality and the intent of the modified version of the request.

### Claim 18 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein selecting the channel from among the live agent, the virtual agent, and the search-based application comprises:
providing a representation of the request to a language detection application, wherein the language detection application is configured to detect a language in which the request is written;
receiving from the language detection application, an indication of a detected language of the request; and
selecting the channel also based on the detected language.

### Claim 19 (depends on 13)

The non-transitory computer-readable medium of claim 13, wherein the request is initially assigned to a virtual agent queue for processing, and wherein the request is removed from the virtual agent queue when it is routed to the live agent or the search-based application.

### Claim 20

A method comprising:
obtaining a request;
determining a criticality and an intent of the request, wherein the intent is associated with an intent confidence value;
while the request is not assigned to an agent, selecting a channel from among a live agent, a virtual agent, and a search-based application,
wherein the live agent is selected when the criticality of the request is greater than a threshold criticality or when the intent confidence value of the request is less than an intent threshold, and
wherein the virtual agent or the search-based application is selected based on the intent when the criticality of the request is not greater than the threshold criticality and the intent confidence value of the request is not less than the intent threshold; and
routing the request to the channel.
