IP Library Granted Patent US 10,839,432
Granted Patent B1
US 10,839,432 · App. 16/392,455 · Granted Nov 17, 2020

Systems and methods for automating customer interactions with enterprises

Inventors: Yochai Konig (San Francisco, CA); Ron Harlev (San Francisco, CA); Javier Villalobos (San Pablo, CA); James Hvezda (Toronto, CA); Archana Sekar (Chennai, IN)
G06Q30/0281G06Q30/016
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 10,839,432
App. No.
16/392,455
Granted
Nov 17, 2020
Kind
B1
Abstract

A method for automating interactions with enterprises includes: receiving, through a user interface, a natural language request from a customer; determining a customer intent from the natural language request; conducting an automated interaction by: determining, by a personal bot controller circuit, an enterprise to service the customer intent; loading an enterprise library for interacting with an application programming interface (API) of the enterprise, the enterprise library including one or more library functions; identifying a library function for servicing the customer intent from among the one or more library functions; generating a request based on the identified library function and the customer intent; transmitting the generated request to the enterprise to initiate an interaction; receiving a response from the enterprise; and notifying the customer of a result of the interaction.

Claims (113)

1. A system for automating interactions with enterprises, the system comprising:

a user interface configured to receive a natural language request from a customer;

a customer profile storage module;

a natural language processing engine executed by a processor and configured to determine a customer intent from the natural language request;

a personal bot controller circuit configured to conduct an automated interaction by:

determining an enterprise to service the customer intent;

loading an enterprise library for interacting with an application programming interface (API) of the enterprise, the enterprise library comprising one or more library functions;

identifying a library function for servicing the customer intent from among the one or more library functions;

generating a request based on the identified library function and the customer intent;

transmitting the generated request to the enterprise to initiate an interaction;

receiving a response from the enterprise; and

notifying the customer of a result of the interaction;

wherein the personal bot controller circuit is configured to generate the request by:

identifying one or more arguments to the identified library function, each of the arguments being tagged with a description;

for a first argument of the one or more arguments, determining that data in the natural language request matches the description corresponding to the first arguments;

for a second argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the second argument;

in response to determining that the natural language request does not include data matching the description corresponding to the second argument, searching the customer profile storage module and finding therein data matching the description corresponding to the second argument;

generating the request by inserting into the request the data matching the description corresponding to the first argument and the data matching the description corresponding to the second argument.

2. The system of claim 1 , wherein the personal bot controller circuit is further configured to generate the request by:

for a third argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the third argument;

in response to determining that the natural language request does not include data matching the description corresponding to the third argument, prompting the customer, via the user interface, to input data matching the description corresponding to the third argument; and

generating the request by inserting into the request the data matching the description corresponding to the third argument.

3. The system of claim 1 , wherein the personal bot controller circuit is further configured to generate the request by:

for a fourth argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the fourth argument;

in response to determining that the natural language request does not include data matching the description corresponding to the fourth argument, searching for data matching the description corresponding to the fourth argument in an external service associated with the customer, the external service being accessed using a second enterprise library;

in response to determining that the external service comprises data matching the description corresponding to the fourth argument, retrieving the data matching the description corresponding to the fourth argument from the external service using the second enterprise library; and

generating the request by inserting into the request the data matching the description corresponding to the fourth argument.

4. The system of claim 1 , wherein the personal bot controller circuit is further configured to conduct an automated interaction by:

determining whether the response from the enterprise indicates that the interaction is complete;

in response to determining that the interaction is complete, determining the result of the interaction based on the response from the enterprise;

in response to determining that the interaction is not complete:

identifying a second library function from the enterprise library for responding to the enterprise;

generating a follow up request based on the response from the enterprise; and

transmitting the follow up request to the enterprise.

5. The system of claim 4 , wherein the response from the enterprise comprises a list of options, and

wherein the generating the follow up request comprises:

displaying the list of options on the user interface; and

receiving a user selection from the list of options.

6. The system of claim 1 , wherein the enterprise library is generated by:

loading published documentation associated with the API of the enterprise;

parsing the published documentation to identify a plurality of API functions, the published documentation including:

a description of each of the API functions, and

one or more parameters for each of the API functions, each of the one or more parameters being associated with a description;

generating the library functions from corresponding ones of the API functions and the associated descriptions of the API functions, each of the library functions being generated from a corresponding one of the API functions by:

storing an API endpoint for the corresponding API function;

storing the description of the corresponding API function;

identifying the one or more parameters of the corresponding API function; and

storing the one or more descriptions of the one or more parameters of the corresponding API function.

7. The system of claim 1 , wherein each of the one or more library functions of the enterprise library is associated with a description, and

wherein the identifying the library function for servicing the customer intent comprises identifying a library function having a corresponding description that is most semantically similar to the customer intent.

8. The system of claim 7 , wherein the enterprise library is generated by:

loading published documentation associated with the API of the enterprise;

parsing the published documentation to identify a plurality of API functions, the published documentation including a description of each of the API functions; and

generating each of the one or more library functions from corresponding ones of the API functions and the corresponding descriptions of the API functions.

9. A method for automating interactions with enterprises, the method comprising:

receiving, through a user interface, a natural language request from a customer;

determining a customer intent from the natural language request by supplying the natural language request to a natural language processing engine;

conducting an automated interaction by:

determining, by a personal bot controller circuit, an enterprise to service the customer intent;

loading, by the personal bot controller circuit, an enterprise library for interacting with an application programming interface (API) of the enterprise, the enterprise library comprising one or more library functions;

identifying, by the personal bot controller circuit, a library function for servicing the customer intent from among the one or more library functions;

generating, by the personal bot controller circuit, a request based on the identified library function and the customer intent;

transmitting, by the personal bot controller circuit, the generated request to the enterprise to initiate an interaction;

receiving, by the personal bot controller circuit, a response from the enterprise; and

notifying, by the personal bot controller circuit, the customer of a result of the interaction;

wherein the personal bot controller circuit is configured to generate the request by:

identifying one or more arguments to the identified library function, each of the arguments being tagged with a description;

for a first argument of the one or more arguments, determining that data in the natural language request matches the description corresponding to the first arguments;

for a second argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the second argument;

in response to determining that the natural language request does not include data matching the description corresponding to the second argument, searching a customer profile storage module and finding therein data matching the description corresponding to the second argument;

generating the request by inserting into the request the data matching the description corresponding to the first argument and the data matching the description corresponding to the second argument.

10. The method of claim 9 , wherein the generating the request comprises:

for a third argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the third argument;

in response to determining that the natural language request does not include data matching the description corresponding to the third argument, prompting the customer, via the user interface, to input data matching the description corresponding to the third argument; and

generating the request by inserting into the request the data matching the description corresponding to the third argument.

11. The method of claim 9 , wherein the generating the request comprises:

for a fourth argument of the one or more arguments:

determining that the natural language request does not include data matching the description corresponding to the fourth argument;

in response to determining that the natural language request does not include data matching the description corresponding to the fourth argument, searching for data matching the description corresponding to the fourth argument in an external service associated with the customer, the external service being accessed using a second enterprise library;

in response to determining that the external service comprises data matching the description corresponding to the fourth argument, retrieving the data matching the description corresponding to the fourth argument from the external service using the second enterprise library; and

generating the request by inserting into the request the data matching the description corresponding to the fourth argument.

12. The method of claim 9 , further comprising:

determining whether the response from the enterprise indicates that the interaction is complete;

in response to determining that the interaction is complete, determining the result of the interaction based on the response from the enterprise;

in response to determining that the interaction is not complete:

identifying a second library function from the enterprise library for responding to the enterprise;

generating a follow up request based on the response from the enterprise; and

transmitting the follow up request to the enterprise.

13. The method of claim 12 , wherein the response from the enterprise comprises a list of options, and

wherein the generating the follow up request comprises:

displaying the list of options on the user interface; and

receiving a user selection from the list of options.

14. The method of claim 9 , wherein the enterprise library is generated by:

loading published documentation associated with the API of the enterprise;

parsing the published documentation to identify a plurality of API functions, the published documentation including:

a description of each of the API functions, and

one or more parameters for each of the API functions, each of the one or more parameters being associated with a description;

generating the library functions from corresponding ones of the API functions and the associated descriptions of the API functions, each of the library functions being generated from a corresponding one of the API functions by:

storing an API endpoint for the corresponding API function;

storing the description of the corresponding API function;

identifying the one or more parameters of the corresponding API function; and

storing the one or more descriptions of the one or more parameters of the corresponding API function.

15. The method of claim 9 , wherein each of the one or more library functions of the enterprise library is associated with a description, and

wherein the identifying the library function for servicing the customer intent comprises identifying a library function having a corresponding description that is most semantically similar to the customer intent.

16. The method of claim 15 , wherein the enterprise library is generated by:

loading published documentation associated with the API of the enterprise;

parsing the published documentation to identify a plurality of API functions, the published documentation including a description of each of the API functions; and

generating each of the one or more library functions from corresponding ones of the API functions and the corresponding descriptions of the API functions.

Assignments (5)
NOTICE OF SUCCESSION OF SECURITY INTERESTS AT REEL/FRAME 050860/0227 Recorded Feb 3, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR AGENT
Reel/Frame 070096/0452 →
CHANGE OF NAME Recorded May 13, 2024
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: GENESYS CLOUD SERVICES, INC.
Reel/Frame 067391/0073 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO ADD PAGE 2 OF THE SECURITY AGREEMENT WHICH WAS INADVERTENTLY OMITTED PREVIOUSLY RECORDED ON REEL 049916 FRAME 0454. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT. Recorded Oct 29, 2019
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 050860/0227 →
SECURITY AGREEMENT Recorded Jul 31, 2019
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 049916/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2019
From: KONIG, YOCHAI; HARLEV, RON; VILLALOBOS, JAVIER; HVEZDA, JAMES; SEKAR, ARCHANA
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
Reel/Frame 049055/0678 →
Cited By (14)
US 12,192,406 US 12,230,263 US 12,271,848 US 12,288,194 US 12,288,552 US 12,323,414 US 12,381,983 US 12,395,588 US 12,406,207 US 12,412,568 US 12,416,909 US 12,430,556 US 12,547,480 US 12,608,429