IP Library Granted Patent US 12,386,870
Granted Patent B2
US 12,386,870 · App. 18/429,125 · Granted Aug 12, 2025

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)
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 12,386,870
App. No.
18/429,125
Granted
Aug 12, 2025
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 (86)

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;

determining, based on the comparison, 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, 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 a first group of a plurality of groups of a first organization;

transmitting to one or more computing devices associated with the first group, data indicative of the first query;

receiving, from a computing device associated with a group of the plurality of groups, information responsive to the first query;

transmitting, to the user device, and based on the information responsive to the first query, a response to the first query;

obtaining feedback data associated with the response to the first query; and

storing, based on the feedback data satisfying a feedback threshold, the first query as one of the plurality of previous queries.

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 first group data associated with the first group.

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 , wherein obtaining the feedback data comprises receiving the feedback data from the user device, wherein the feedback data indicates that the response to the first query was useful, the method further comprising:

determining, based on the feedback data indicating that the response to the first query was useful, that the feedback data satisfies the feedback threshold.

6. The method of claim 1 , wherein the computing device associated with the group of the plurality of groups is a computing device associated with the first group.

7. The method of claim 6 , wherein obtaining the feedback data comprises:

generating, based on receiving the information responsive to the first query from the computing device associated with the first group, the feedback data, wherein the feedback data indicates resolution by a user of the first group; and

determining, based on the feedback data indicating resolution by the user of the first group, that the feedback data satisfies the feedback threshold.

8. The method of claim 1 , wherein the computing device associated with the group of the plurality of groups is a computing device associated with a second group of the plurality of groups.

9. The method of claim 8 , wherein obtaining the feedback data comprises:

generating, based on receiving the information responsive to the first query from the computing device associated with the second group, the feedback data, wherein the feedback data indicates resolution by a user of the second group; and

determining, based on the feedback data indicating resolution by a user of the second group, that the feedback data satisfies the feedback threshold.

10. The method of claim 1 , further comprising:

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

determining, based on the feedback data associated with the first query, a response to the second query.

11. The method of claim 1 , further comprising:

obtaining, after transmission of the response to the user device, configuration data associated with the user device or communication data transmitted from the user device to a computing device associated with one of the plurality of groups; and

determining, based on the configuration data or the communication data, the feedback data.

12. An apparatus, comprising:

one or more memories storing processor-executable code; and

one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:

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

compare a first efficiency value associated with computational analysis of a plurality of data entries to a second efficiency value associated with computational analysis of a plurality of previous queries;

determine, based on the comparison, one of:

first correspondence values base 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 base 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;

determine, 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 a first group of a plurality of groups of a first organization;

transmit to one or more computing devices associated with the first group, data indicative of the first query;

receive, from a computing device associated with a group of the plurality of groups, information responsive to the first query;

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

obtain feedback data associated with the response to the first query; and

store, based on the feedback data satisfying a feedback threshold, the first query as one of the plurality of previous queries.

13. The apparatus of claim 12 , 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.

14. The apparatus of claim 12 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus 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;

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 first group data associated with the first group;

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.

15. The apparatus of claim 12 , wherein, to obtain the feedback data, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to receive the feedback data from the user device, wherein the feedback data indicates that the response to the first query was useful, and

wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:

determine, based on the feedback data indicating that the response to the first query was useful, that the feedback data satisfies the feedback threshold.

16. The apparatus of claim 12 , wherein the computing device associated with the group of the plurality of groups is a computing device associated with the first group, and

wherein, to obtain the feedback data, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:

generate, based on receipt of the information responsive to the first query from the computing device associated with the first group, the feedback data, wherein the feedback data indicates resolution by a user of the first group; and

determine, based on the feedback data indicating resolution by the user of the first group, that the feedback data satisfies the feedback threshold.

17. The apparatus of claim 12 , wherein the computing device associated with the group of the plurality of groups is a computing device associated with a second group of the plurality of groups, and

wherein, to obtain the feedback data, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:

generate, based on receipt of the information responsive to the first query from the computing device associated with the second group, the feedback data, wherein the feedback data indicates resolution by a user of the second group; and

determine, based on the feedback data indicating resolution by a user of the second group, that the feedback data satisfies the feedback threshold.

18. The apparatus of claim 12 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:

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

determine, based on the feedback data associated with the first query, a response to the second query.

19. The apparatus of claim 12 , wherein the one or more processors are individually or collectively further operable to execute the code to cause the apparatus to:

obtain, after transmission of the response to the user device, configuration data associated with the user device or communication data transmitted from the user device to a computing device associated with one of the plurality of groups; and

determine, based on the configuration data or the communication data, the feedback data.

20. A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:

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

compare a first efficiency value associated with computational analysis of a plurality of data entries to a second efficiency value associated with computational analysis of a plurality of previous queries;

determine, based on the comparison, one of:

first correspondence values base 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 base 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;

determine, 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 a first group of a plurality of groups of a first organization;

transmit to one or more computing devices associated with the first group, data indicative of the first query;

receive, from a computing device associated with a group of the plurality of groups, information responsive to the first query;

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

obtain feedback data associated with the response to the first query; and

store, based on the feedback data satisfying a feedback threshold, the first query as one of the plurality of previous queries.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2025
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 070960/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2025
From: TOWNSEND STREET LABS, INC.
To: OKTA, INC.
Reel/Frame 070900/0001 →
Continuity (4)
Continuation 17877886 · Jul 30, 2022
Continuation 16814149 · Mar 10, 2020
Continuation 15373312 · Dec 8, 2016
Related Publication 20240168982A1 · May 23, 2024
References Cited (123)
US 4992653A · Kawahara et al. · 1991 [cited by applicant]
US 5634051A · Thomson · 1997 [cited by applicant]
US 5659732A · Kirsch · 1997 [cited by applicant]
US 5937027A · Thevenin et al. · 1999 [cited by applicant]
US 5966126A · Szabo · 1999 [cited by applicant]
US 6026388A · Liddy · 2000 [cited by examiner]
US 6385329B1 · Sharma et al. · 2002 [cited by applicant]
US 6829008B1 · Kondo et al. · 2004 [cited by applicant]
US 6865571B2 · Inaba et al. · 2005 [cited by applicant]
US 7038820B1 · Kindt et al. · 2006 [cited by applicant]
US 7078701B2 · Ishii et al. · 2006 [cited by applicant]
US 7088395B2 · Takayama et al. · 2006 [cited by applicant]
US 7099056B1 · Kindt · 2006 [cited by applicant]
US 7154547B2 · Oda · 2006 [cited by applicant]
US 7181438B1 · Szabo · 2007 [cited by applicant]
US 7277130B2 · Korthout et al. · 2007 [cited by applicant]
US 7554071B2 · Moholt · 2009 [cited by applicant]
US 7801896B2 · Szabo · 2010 [cited by applicant]
US 7827125B1 · Rennison · 2010 [cited by applicant]
US 8477225B2 · Moholt · 2013 [cited by applicant]
US 8886587B1 · Hainsworth et al. · 2014 [cited by applicant]
US 9147712B2 · Moholt · 2015 [cited by applicant]
US 9245271B1 · Ahmed et al. · 2016 [cited by applicant]
US 9654640B1 · Brydon · 2017 [cited by examiner]
US 9930264B2 · Moholt · 2018 [cited by applicant]
US 10388274B1 · Hoffmeister · 2019 [cited by applicant]
US 10497039B1 · Singh et al. · 2019 [cited by applicant]
US 10565181B1 · Hjermstad et al. · 2020 [cited by applicant]
US 10567235B1 · Shah et al. · 2020 [cited by applicant]
US 10681284B2 · Moholt · 2020 [cited by applicant]
US 10685047B1 · Patnaik et al. · 2020 [cited by applicant]
US 10795886B1 · Samdani et al. · 2020 [cited by applicant]
US 10817483B1 · Samdani et al. · 2020 [cited by applicant]
US 11328019B2 · Bonin et al. · 2022 [cited by applicant]
US 11468105B1 · Patnaik et al. · 2022 [cited by applicant]
US 11531707B1 · Samdani et al. · 2022 [cited by applicant]
US 11544334B2 · Gottumukkala et al. · 2023 [cited by applicant]
US 11803556B1 · Samdani et al. · 2023 [cited by applicant]
US 11928139B2 · Patnaik et al. · 2024 [cited by applicant]
US 20020101532A1 · Takayama et al. · 2002 [cited by applicant]
US 20020107842A1 · Biebesheimer et al. · 2002 [cited by applicant]
US 20040051802A1 · Krymski · 2004 [cited by applicant]
US 20040072143A1 · Timmis et al. · 2004 [cited by applicant]
US 20040243568A1 · Wang · 2004 [cited by examiner]
US 20050001143A1 · Rhodes · 2005 [cited by applicant]
US 20050086046A1 · Bennett · 2005 [cited by examiner]
US 20050088552A1 · Erhardt et al. · 2005 [cited by applicant]
US 20050094848A1 · Carr et al. · 2005 [cited by applicant]
US 20050151866A1 · Ando et al. · 2005 [cited by applicant]
US 20050205761A1 · Shah · 2005 [cited by applicant]
US 20060007498A1 · Mcdermott · 2006 [cited by applicant]
US 20060113459A1 · Yang et al. · 2006 [cited by applicant]
US 20060139470A1 · Mcgowan · 2006 [cited by applicant]
US 20060160065A1 · Timmis et al. · 2006 [cited by applicant]
US 20070046799A1 · Moholt · 2007 [cited by applicant]
US 20080052056A1 · Timmis et al. · 2008 [cited by applicant]
US 20080071769A1 · Jagannathan · 2008 [cited by applicant]
US 20080077570A1 · Tang et al. · 2008 [cited by applicant]
US 20080218608A1 · Rossi et al. · 2008 [cited by applicant]
US 20080235283A1 · Turnball et al. · 2008 [cited by applicant]
US 20090006360A1 · Liao et al. · 2009 [cited by applicant]
US 20090182609A1 · Kelleher · 2009 [cited by examiner]
US 20090244348A1 · Moholt · 2009 [cited by applicant]
US 20100005081A1 · Bennett · 2010 [cited by examiner]
US 20100070554A1 · Richardson · 2010 [cited by examiner]
US 20100076998A1 · Podgorny · 2010 [cited by examiner]
US 20100094878A1 · Soroca et al. · 2010 [cited by applicant]
US 20100115040A1 · Sargent et al. · 2010 [cited by applicant]
US 20100332583A1 · Szabo · 2010 [cited by applicant]
US 20110004588A1 · Leitersdorf et al. · 2011 [cited by applicant]
US 20110047163A1 · Chechik et al. · 2011 [cited by applicant]
US 20110258049A1 · Ramer et al. · 2011 [cited by applicant]
US 20120041937A1 · Dhillon et al. · 2012 [cited by applicant]
US 20120078890A1 · Fan · 2012 [cited by examiner]
US 20130007037A1 · Azzam · 2013 [cited by examiner]
US 20130212096A1 · Ben Shahar · 2013 [cited by examiner]
US 20130282594A1 · Gaedcke · 2013 [cited by examiner]
US 20130284890A1 · Moholt · 2013 [cited by applicant]
US 20140040181A1 · Kuznetsov · 2014 [cited by examiner]
US 20140040246A1 · Rubinstein et al. · 2014 [cited by applicant]
US 20140120513A1 · Jenkins et al. · 2014 [cited by applicant]
US 20140149411A1 · Anand · 2014 [cited by examiner]
US 20140172882A1 · Clark · 2014 [cited by examiner]
US 20150120718A1 · Luo · 2015 [cited by examiner]
US 20150172294A1 · Bittner · 2015 [cited by examiner]
US 20150294246A1 · Guven Kaya · 2015 [cited by examiner]
US 20150365579A1 · Moholt · 2015 [cited by applicant]
US 20160019280A1 · Unger · 2016 [cited by examiner]
US 20160034457A1 · Bradley et al. · 2016 [cited by applicant]
US 20160063118A1 · Campbell et al. · 2016 [cited by applicant]
US 20160171373A1 · Allen · 2016 [cited by examiner]
US 20160180726A1 · Ahuja · 2016 [cited by examiner]
US 20160188575A1 · Sawaf · 2016 [cited by applicant]
US 20160203215A1 · Allen · 2016 [cited by examiner]
US 20160335554A1 · Koll · 2016 [cited by examiner]
US 20170004204A1 · Bastide et al. · 2017 [cited by applicant]
US 20170017694A1 · Roytman et al. · 2017 [cited by applicant]
US 20170228372A1 · Moreno · 2017 [cited by examiner]
US 20170235792A1 · Mawji et al. · 2017 [cited by applicant]
US 20170242899A1 · Jolley · 2017 [cited by examiner]
US 20170243107A1 · Jolley · 2017 [cited by examiner]
US 20170249566A1 · Mandel · 2017 [cited by examiner]
US 20170337264A1 · Barbosa et al. · 2017 [cited by applicant]
US 20180144064A1 · Krasadakis · 2018 [cited by examiner]
US 20180173698A1 · Dubey et al. · 2018 [cited by applicant]
US 20180176443A1 · Moholt · 2018 [cited by applicant]
US 20180196822A1 · Lewin-Eytan et al. · 2018 [cited by applicant]
US 20180212904A1 · Smullen · 2018 [cited by examiner]
US 20180227190A1 · Healing · 2018 [cited by examiner]
US 20180285423A1 · Ciano et al. · 2018 [cited by applicant]
US 20190108486A1 · Jain et al. · 2019 [cited by applicant]
US 20190130049A1 · Jussila et al. · 2019 [cited by applicant]
US 20190155916A1 · Huang et al. · 2019 [cited by applicant]
US 20200259986A1 · Moholt · 2020 [cited by applicant]
US 20210157860A1 · Li et al. · 2021 [cited by applicant]
US 20210256066A1 · Srinivasan et al. · 2021 [cited by applicant]
US 20220365954A1 · Patnaik et al. · 2022 [cited by applicant]
US 20230095077A1 · Samdani et al. · 2023 [cited by applicant]
AU 2014286166B2 · 2017 [cited by examiner]
EP 0393945A2 · 1990 [cited by applicant]
EP 1227662A2 · 2002 [cited by applicant]
WO 0256581A1 · 2002 [cited by applicant]
Faed, A. “Handling e-complaints in customer complaint management system using FMEA as a qualitative system,” 6th International Conference on Advanced Information Management and Service, Nov. 30- Dec. 2, 2010, pp. 205-20… [cited by applicant]