Interact makes integration with your NLP engine completely transparent and code-free using Intent Flows.
For example, when using DialogFlow, you create a detailed Intent Flow and assign it to a specific NLP Intent. During runtime, the DialogFlow engine recognizes an Intent from a request and notifies Interact, which then triggers its mapped Intent Flow and uses the NLP engine Intents and Entities to drive workflow and fulfill the user's request.
Because the IA can communicate with any external data sources that you specify, it's also possible to fulfill a user request when it requires information that is maintained outside of Interact, for example, an airline or car booking agent, a product delivery service, or a weather data server.
IA Runtime Process Flow
The IA uses the following basic process flow to fulfill requests during runtime:
- The User accesses the chatbot via a client-side application.
- The IA functions as the fulfillment tool for your configuration, where it queries the NLP engine to determine which Intent and Entity parameters have been passed by the chatbot.
The IA performs the business logic that is needed in order to provide the services requested, including:
- Mapping of business rules to the corresponding Intent Flow in Interact.
- Filling-in all of the required parameters to fulfill the Intent. If the NLP engine does not identify and query for the required parameters, then the IA queries the User directly to supply the missing values.
- Gathering all other parameters and data to fulfill the specified Intent. When needed, the IA can access external databases and back-end systems to get non-NLP data that is needed.
- Composing one or more responses to the User via Intent Flow logic and data.
- Performing on or more actions for the User via Intent Flow logic and data.
To perform fulfillment, the IA collects and stores all runtime data that is generated by a specific chatbot in dedicated System Variables. The IA can access these variables to support needs of the current Flow or other Interact needs. These runtime variables are detailed below in the section IA Components.
- In the NLP engine, each chatbot is associated with a specific Agent (DialogFlow), Workspace (Watson) or App (Wit.Ai). When chatbot input is received, it is the NLP engine that recognizes it and maps the data to pre-defined Intents and Entities.
The NLP engine is solely responsible for communicating and managing the NLP logic for the IA.
IA Synchronization with the NLP Engine
When the Jacada IA is initially set up and then at appropriate intervals, data used by IA Domains (Intents, Entities, Dialog Nodes, etc.) is manually synchronized with the data that is maintained in the NLP engine.
The sync process ensures that all IA data is current. It also eliminates the need to maintain and manage source NLP components outside of the NLP engine.
In the event that a manual sync results in a conflict with the name or structure of data that already exists in an IA Domain, the IA will provide an error message with the names of those elements which are affected, and suggest a remedy when possible. A conflict may be caused by a change to variables used in an Intent Flow, for example.
The following describes the basic elements of Jacada's IA capability and relates each with its function in the NLP engine.
|IA Domains||A Domain is associated with one or more chatbots. Example Domains might include "Travel" or "Billing Support". A Domain is always associated with a single Agent (DialogFlow), Workspace (Watson) or App (Wit.Ai). You can have multiple Domains in your Account.|
|(Read Only) Intents, Dialog Nodes and Traits are maintained in their respective NLP engines and viewable in their associated Domain in the Admin Console. Each is associated with an approved Intent Flow which will be triggered by the NLP engine when input is recognized from a chatbot request.|
|Entities||(Read Only) Entities are maintained in the NLP engine and viewable in their associated Domain in the Admin Console. An Entity is used to extract parameter values from chatbot input. All important data that you need to get from a user request will have a corresponding Entity.|
|Intent Flows||An Intent Flow is a conversation-driven workflow used by the IA to supply the essential data and logic that it needs in order to respond to chatbot-based interactions and transactions. In the IA, each Intent can be associated with one approved Intent Flow. Intent data sent by the NLP engine is mapped by the IA to determine which Intent Flow will be triggered and which Entities are used in order to fulfill a chatbot request.|
|IA Runtime Variables||Upon sync with an NLP engine, the IA creates various read-only variables that it uses to support fulfillment activities during runtime. A Designer can access these variables in their Flows like any other variables, using the Variable Editor and Variable Lists:
You can view all IA-generated variables in the Admin Console.
Note: With DialogFlow and Watson, when an IA runtime variable is currently being used in an Approved Flow, it may not be possible to synchronize that variable with the NLP engine, resulting in a Partial Sync error.
|Chatbot Simulator||The IA provides a built-in simulator for testing conversations between an Intent Flow and the NLP. The simulator displays all requests and responses, as well as a Context panel that shows all the data that is gathered by Interact and the NLP Engine for each conversation step.|
|Chatbot Analytics||The IA provides complete chatbot analytics to enable review of key chatbot performance indicators for any NLP conversation over a selected time period. Regular analysis helps to improve chatbot results and increase IA productivity.|