Configurable conversation engine for executing customizable chatbots

US11580977B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11580977-B2
Application numberUS-202017037556-A
CountryUS
Kind codeB2
Filing dateSep 29, 2020
Priority dateSep 29, 2020
Publication dateFeb 14, 2023
Grant dateFeb 14, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A conversation engine performs conversations with users using chatbots customized for performing a set of tasks that can be performed using an online system. The conversation engine loads a chatbot configuration that specifies the behavior of a chatbot including the tasks that can be performed by the chatbot, the types of entities relevant to each task, and so on. The conversation may be voice based and use natural language. The conversation engine may load different chatbot configurations to implement different chatbots. The conversation engine receives a conversation engine configuration that specifies the behavior of the conversation engine across chatbots. The system may be a multi-tenant system that allows customization of the chatbots for each tenant.

First claim

Opening claim text (preview).

We claim: 1. A computer implemented method performed by a conversation engine configured to execute chatbots, the method comprising: receiving, from a first client device, by a conversation engine configured to execute a chatbot, a conversation engine configuration specifying a set of states in which the chatbot can exist and actions performed by the conversation engine in each state for executing the chatbot; receiving, from the first client device, by the conversation engine, a chatbot configuration specifying a plurality of tasks supported by the chatbot, each task performed in response to a user request received via the chatbot; initializing, by the conversation engine, a state of the chatbot; executing, by the conversation engine, the chatbot according to the chatbot configuration to perform one or more tasks by repeating steps comprising: receiving, from a second client device, a user utterance; performing actions based on the state of the chatbot and one or more attributes of the user utterance, the actions comprising one or more of: (1) identifying a task requested by the user, (2) collecting values of one or more entities for performing the task, and (3) performing the task based on the values of the entities; updating the state of the chatbot; and generating a response and sending to the user at the second client device. 2. The method of claim 1 , wherein the state of the chatbot is represented using a set of state variables stored in a lookup table mapping for each state variable, an identifier of the state variable to a value of the state variable. 3. The method of claim 2 , wherein a state variable represents whether the response generated by the conversation engine for the user is for confirming certain information with the user. 4. The method of claim 2 , wherein the state variable represents whether the response generated by the conversation engine for the user is for confirming one of the following: (1) the task requested by the user, (2) a value of entity for performing the task, or (3) whether the user wants to continue the conversation with the conversation engine. 5. The method of claim 1 , wherein the conversation engine configuration specifies whether the conversation engine confirms with the user after identifying the task corresponding to the user utterance. 6. The method of claim 1 , wherein the conversation engine configuration specifies whether the conversation engine confirms with the user after determining a value of an entity for performing the task. 7. The method of claim 1 , wherein the conversation engine configuration specifies a number of times the conversation engine repeats a response if the user utterance fails to provide an answer to the response. 8. The method of claim 1 , wherein an attribute of the user utterance represents a polarity of the user utterance, wherein the polarity is one of: positive, negative, or neutral. 9. The method of claim 1 , wherein an attribute of the user utterance represents whether the user utterance includes information expected by the conversation engine based on a previous response provided by the conversation engine to the user. 10. The method of claim 1 , wherein the user utterance represents a request for performing a new task while one or more previous tasks have not completed execution by the conversation engine. 11. The method of claim 1 , wherein the conversation engine stores data structure for representing a plurality of tasks that are currently executed by the conversation engine for the user based on conversation with the user. 12. The method of claim 11 , wherein the conversation engine configuration determines an action performed by the conversation engine when a task is completed for the user and there are unfinished tasks stored in the data structure. 13. The method of claim 12 , wherein the data structure is a last-in-first-out stack data structure. 14. The method of claim 1 , wherein the user utterance is received as an audio signal of a natural language sentence spoken by the user, the method further comprising: converting the audio signal of the user utterance to a text signal for processing by the conversation engine. 15. The method of claim 1 , further comprising: responsive to receiving the conversation engine configuration, generating a set of instructions for processing user requests based on chatbot conversations with users. 16. The method of claim 1 , wherein the chatbot configuration specifies a set of example sentences for each task wherein identifying the task by the conversation engine comprises: matching the user utterance with example sentences specified in the chatbot configuration using a machine learning based model. 17. The method of claim 16 , wherein the machine learning based model is a neural network. 18. The method of claim 1 , wherein the conversation engine is a multi-tenant system hosting data and services for a plurality of tenants, wherein the chatbot configuration is specific to a tenant that performs a set of tasks using the multi-tenant system. 19. A computer system comprising: a processor; and a non-transitory computer readable storage medium storing instructions that when executed by the processor cause the processor to perform steps comprising: receiving, from a first client device, by a conversation engine configured to execute a chatbot, a conversation engine configuration specifying a set of states in which the chatbot can exist and actions performed by the conversation engine in each state for executing the chatbot; receiving, from a first client device, by the conversation engine, a chatbot configuration specifying a plurality of tasks supported by the chatbot, each task performed in response to a user request received via the chatbot; initializing, by the conversation engine, a state of the chatbot; executing, by the conversation engine, the chatbot according to the chatbot configuration to perform one or more tasks by repeating steps comprising: receiving, from a second client device, a user utterance; performing actions based on the state of the chatbot and one or more attributes of the user utterance, the actions comprising one or more of: (1) identifying a task requested by the user, (2) collecting values of one or more entities for performing the task, and (3) performing the task based on the values of the entities; updating the state of the chatbot; and generating a response and sending to the user at the second client device. 20. A non-transitory computer readable storage medium storing instructions that when executed by a processor cause the processor to perform steps comprising: receiving, by a conversation engine configured to execute a chatbot, a conversation engine configuration specifying a set of states in which the chatbot can exist and actions performed by the conversation engine in each state for executing the chatbot; receiving, from a first client device, by the conversation engine, a chatbot configuration specifying a plurality of tasks supported by the chatbot, each task performed in response to a user request received via the chatbot; initializing, from a first client device, by the conversation engine, a state of the chatbot; executing, by the conversation engine, the chatbot according to the chatbot configuration to perform one or more tasks by repeating steps comprising: receiving, from a second client device, a user utterance; performing actions based on the state of the chatbot and one or more attributes of the user ut

Assignees

Inventors

Classifications

  • G06F40/30Primary

    Semantic analysis · CPC title

  • Distributed recognition, e.g. in client-server systems, for mobile phones or network applications · CPC title

  • G10L15/22Primary

    Procedures used during a speech recognition process, e.g. man-machine dialogue · CPC title

  • Execution procedure of a spoken command · CPC title

  • Speech to text systems (G10L15/08 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11580977B2 cover?
A conversation engine performs conversations with users using chatbots customized for performing a set of tasks that can be performed using an online system. The conversation engine loads a chatbot configuration that specifies the behavior of a chatbot including the tasks that can be performed by the chatbot, the types of entities relevant to each task, and so on. The conversation may be voice …
Who is the assignee on this patent?
Salesforce Com Inc, Salesforce Inc
What technology area does this patent fall under?
Primary CPC classification G06F40/30. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 14 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).