IP Library Granted Patent US 11,928,139
Granted Patent B2
US 11,928,139 · App. 17/877,886 · Granted Mar 12, 2024

System for routing of requests

Inventors: Pratyus Patnaik (Los Altos, CA); Marissa Mary Montgomery (San Francisco, CA); Jay Srinivasan (San Francisco, CA); Suchit Agarwal (Jersey City, NJ); Rajhans Samdani (Belmont, CA); David Colby Kaneda (San Francisco, CA); Nathaniel Ackerman Rook (San Francisco, CA)
Assignee: Townsend Street Labs, INC.
G06F16/3325G06F16/3326G06F16/334G06F21/604G06F21/6227
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,928,139
App. No.
17/877,886
Granted
Mar 12, 2024
Kind
B2
Abstract

Systems for processing queries may first determine correspondence between the parameters of the query and a set of existing data entries, a set of previous queries that have been received, or both the existing data entries and the previous queries. If the query parameters do not correspond to the data entries or pervious queries, correspondence is determined between the query parameters and group data that associates at least a subset the query parameters with a particular group that may generate a response to the query. The same group or the generated response may be used when similar queries are received. If the group transmits the query to a different group or if negative user feedback is received, the group data may be modified to indicate the different group or to remove the association with the initial group that received the query.

Claims (77)

1. A method comprising:

receiving, by a first computing device and from a user device, a first query including one or more first query parameters;

comparing a first efficiency value associated with computationally analyzing a plurality of data entries to a second efficiency value associated with computationally analyzing a plurality of previous queries to determine whether analyzing the one or more first query parameters based on the plurality of data entries results in greater computational efficiency than analyzing the one or more first query parameters based on the plurality of previous queries;

determining, by the first computing device and based on the computational efficiency determination, one of:

first correspondence values based on the first efficiency value being greater than or equal to the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of data entries; or

second correspondence values based on the first efficiency value being less than the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of previous queries;

determining, by the first computing device and based on the determined one of the first correspondence values or the second correspondence values being less than a first threshold correspondence value, a correspondence level between the one or more first query parameters and first group data, wherein the first group data associates at least a subset of the one or more first query parameters with a first group of a plurality of groups of a first organization;

transmitting, by the first computing device, to one or more computing devices associated with the first group, and based on the correspondence level between the one or more first query parameters and the first group data, data indicative of the first query;

receiving, by the first computing device and from at least one of the one or more computing devices associated with the first group, information responsive to the first query; and

transmitting, by the first computing device, to the user device, and based on the information responsive to the first query, a response to the first query.

2. The method of claim 1 , wherein the first efficiency value is based on elapsed processing time, computational resources, or electrical power resources associated with the plurality of data entries, and

wherein the second efficiency value is based on elapsed processing time, computational resources, or electrical power resources associated with the plurality of previous queries.

3. The method of claim 1 , further comprising:

determining that the data indicative of the first query has been transmitted from the one or more computing devices associated with the first group to one or more second computing devices associated with a second group of the plurality of groups; and

modifying second group data associated with the second group to reflect a higher correspondence level between the one or more first query parameters and the second group data than the correspondence level between the one or more first query parameters and the first group data.

4. The method of claim 3 , further comprising:

receiving a second query including one or more second query parameters that correspond to the one or more first query parameters; and

based on the higher correspondence level between the one or more first query parameters and the second group data, providing data indicative of the second query to the one or more second computing devices associated with the second group.

5. The method of claim 1 , further comprising:

determining that a response from the one or more computing devices includes a data entry; and

based on receiving a second query including one or more second query parameters that correspond to the one or more first query parameters, providing data indicative of the data entry in response to the second query.

6. The method of claim 1 , further comprising:

based on determining that a first quantity of computing resources associated with processing the plurality of data entries is less than a second quantity of computing resources associated with processing the plurality of previous queries, determining the first correspondence values prior to or without determining the second correspondence values.

7. The method of claim 1 , further comprising:

based on determining that a first quantity of computing resources associated with processing the plurality of data entries is greater than a second quantity of computing resources associated with processing the plurality of previous queries, determining the second correspondence values prior to or without determining the first correspondence values.

8. The method of claim 1 , further comprising:

determining, based on information identifying a user, device, or organization associated with the first query, a source associated with the first query; and

determining, based on correspondence between the source associated with the first query and security data associating sources of queries with sources of data entries, a set of data entries that correspond to the source associated with the first query, wherein the set of data entries comprises the plurality of data entries.

9. A first computing device comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the first computing device to:

receive, from a user device, a first query including one or more first query parameters;

compare, a first efficiency value associated with a computational analysis of a plurality of data entries to a second efficiency value associated with a computational analysis of a plurality of previous queries to determine whether an analysis of the one or more first query parameters based on the plurality of data entries results in greater computational efficiency than an analysis of the one or more first query parameters based on the plurality of previous queries;

determine, based on the computational efficiency determination, one of:

first correspondence values based on the first efficiency value being greater than or equal to the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of data entries; or

second correspondence values based on the first efficiency value being less than the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of previous queries;

based on the determined one of the first correspondence values or the second correspondence values being less than a first threshold correspondence value, determine a correspondence level between the one or more first query parameters and first group data, wherein the first group data associates at least a subset of the one or more first query parameters with a first group of a plurality of groups of a first organization;

transmit, to one or more computing devices associated with the first group and based on the correspondence level between the one or more first query parameters and the first group data, data indicative of the first query;

receive, from at least one of the one or more computing devices associated with the first group, information responsive to the first query; and

transmit, to the user device and based on the information responsive to the first query, a response to the first query.

10. The first computing device of claim 9 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

determine that the data indicative of the first query has been transmitted from the one or more computing devices associated with the first group to one or more second computing devices associated with a second group of the plurality of groups; and

modify second group data associated with the second group to reflect a higher correspondence level between the one or more first query parameters and the second group data than the correspondence level between the one or more first query parameters and the first group data.

11. The first computing device of claim 10 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

receive a second query including one or more second query parameters that correspond to the one or more first query parameters; and

based on the higher correspondence level between the one or more first query parameters and the second group data, provide data indicative of the second query to the one or more second computing devices associated with the second group.

12. The first computing device of claim 9 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

determine that a response from the one or more first-computing devices includes a data entry; and

based on receipt of a second query including one or more second query parameters that correspond to the one or more first query parameters, provide data indicative of the data entry in response to the second query.

13. The first computing device of claim 9 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

based on a determination that a first quantity of computing resources associated with processing the plurality of data entries is less than a second quantity of computing resources associated with processing the plurality of previous queries, determine the first correspondence values prior to or without a determination of the second correspondence values.

14. The first computing device of claim 9 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

based on a determination that a first quantity of computing resources associated with processing the plurality of data entries is greater than a second quantity of computing resources associated with processing the plurality of previous queries, determine the second correspondence values prior to or without a determination of the first correspondence values.

15. The first computing device of claim 9 , wherein the instructions, when executed by the one or more processors, further cause the first computing device to:

determine, based on information identifying a user, device, or organization associated with the first query, a source associated with the first query; and

determine, based on correspondence between the source associated with the first query and security data associating sources of queries with sources of data entries, a set of data entries that correspond to the source associated with the first query, wherein the set of data entries comprises the plurality of data entries.

16. A non-transitory, computer-readable medium storing instructions that, when executed by one or more processors of a first computing device, cause:

receiving, by the first computing device and from a user device, a first query including one or more first query parameters;

comparing a first efficiency value associated with computationally analyzing a plurality of data entries to a second efficiency value associated with computationally analyzing a plurality of previous queries to determine whether analyzing the one or more first query parameters based on the plurality of data entries results in greater computational efficiency than analyzing the one or more first query parameters based on the plurality of previous queries;

determining, by the first computing device and based on the computational efficiency determination, one of:

first correspondence values based on the first efficiency value being greater than or equal to the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of data entries; or

second correspondence values based on the first efficiency value being less than the second efficiency value and based on correspondence between the one or more first query parameters and the plurality of previous queries;

determining, by the first computing device and based on the determined one of the first correspondence values or the second correspondence values being less than a first threshold correspondence value, a correspondence level between the one or more first query parameters and first group data, wherein the first group data associates at least a subset of the one or more first query parameters with a first group of a plurality of groups of a first organization;

transmitting, by the first computing device, to one or more computing devices associated with the first group, and based on the correspondence level between the one or more first query parameters and the first group data, data indicative of the first query;

receiving, by the first computing device and from at least one of the one or more computing devices associated with the first group, information responsive to the first query; and

transmitting, by the first computing device, to the user device, and based on the information responsive to the first query, a response to the first query.

17. The non-transitory, computer-readable medium of claim 16 , wherein the first efficiency value is based on elapsed processing time, computational resources, or electrical power resources associated with the plurality of data entries, and

wherein the second efficiency value is based on elapsed processing time, computational resources, or electrical power resources associated with the plurality of previous queries.

18. The non-transitory, computer-readable medium of claim 16 , wherein the instructions, when executed by the one or more processors, further cause:

determining that the data indicative of the first query has been transmitted from the one or more computing devices associated with the first group to one or more second computing devices associated with a second group of the plurality of groups; and

modifying second group data associated with the second group to reflect a higher correspondence level between the one or more first query parameters and the second group data than the correspondence level between the one or more first query parameters and the first group data.

19. The non-transitory, computer-readable medium of claim 18 , wherein the instructions, when executed by the one or more processors, further cause:

receiving a second query including one or more second query parameters that correspond to the one or more first query parameters; and

based on the higher correspondence level between the one or more first query parameters and the second group data, providing data indicative of the second query to the one or more second computing devices associated with the second group.

20. The non-transitory, computer-readable medium of claim 16 , wherein the instructions, when executed by the one or more processors, further cause:

determining that a response from the one or more computing devices includes a data entry; and

based on receiving a second query including one or more second query parameters that correspond to the one or more first query parameters, providing data indicative of the data entry in response to the second query.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2025
From: TOWNSEND STREET LABS, INC.
To: OKTA, INC.
Reel/Frame 070900/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2023
From: PATNAIK, PRATYUS; MONTGOMERY, MARISSA MARY; SRINIVASAN, JAY; AGARWAL, SUCHIT; SAMDANI, RAJHANS; KANEDA, DAVID COLBY; ROOK, NATHANIEL ACKERMAN
To: TOWNSEND STREET LABS, INC.
Reel/Frame 062835/0410 →
Continuity (3)
Continuation 16814149 · Mar 10, 2020
Continuation 15373312 · Dec 8, 2016
Related Publication 20220365954A1 · Nov 17, 2022
Cited By (1)
US 12,386,870