Jacada's Intelligent Assistant (IA) provides complete, code-free fulfillment for today's Natural Language Processing (NLP) engines, enabling you to support real-time user chats and conversation-based transactions. With the IA, you can seamlessly integrate the latest Interact features together with the accumulated intelligence of your NLP engine to offer powerful client-side chatbot capabilities.
Note: The Intelligent Assistant currently supports the DialogFlow (formerly API.AI) NLP engine. Support for additional NLP engines is also in development.
Jacada's IA lets you create and maintain all NLP components in your NLP engine so you can continue to benefit from all of the latest NLP developments. The IA works as your fulfillment tool, synchronizing all NLP components and working transparently so that you can build Interact workflows and handle data as usual. You and your users benefit from the best of both worlds.
Runtime Process Flow for the Intelligent Assistant
Interact makes integration with your NLP Engine completely transparent and code-free using Intent Flows. When you create an Intent Flow, you can assign it to a specific NLP Intent. During runtime, if the NLP Engine recognizes this Intent from a request it will trigger its assigned Intent Flow in the IA.
For example, when using DialogFlow, the Agent triggers the specified Intent Flow and uses NLP Engine Intents and Entities to drive IA 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.
The following diagram shows the basic process flow between all components when Jacada's IA is active in a typical NLP configuration:
Note: The IA needs to be enabled for your Interact account. Contact your Interact System Admin or a Jacada sales representative to get started.
- The user accesses the chatbot via an application in the front-end of your configuration, where all Client-Side Logic is located.
- In the NLP Engine (in this case DialogFlow), each chatbot is associated with a specific Agent. Upon receipt of chatbot input, the NLP Engine recognizes and maps the data with Intents and Entities that have been pre-defined.
The NLP Engine is solely responsible for communicating and managing all of the NLP Logic with the client app and passing the Intent and required user parameters along to the IA via a webhook mechanism.
- The IA resides at the back-end of your configuration, where it receives the NLP's designated Intent along with the parameters it has parsed from the chatbot.
The IA is responsible for the Business Logic that is needed to provide the services requested, including:
- Mapping of Business Rules to the corresponding Intent Flow in Interact.
- Gathering all the data that is required for fulfilling the specified Intent. If the NLP has not provided all required parameters, the IA queries the NLP Engine, which is responsible for sending the appropriate requests to the client to supply the missing values. (The IA will continue to query the NLP Engine until the required parameters are received or the process is aborted.)
- When needed, accessing external databases and back-end systems to get non-NLP data that is required to fulfill the Intent (e.g., booking agent or product inventory data, etc.).
- Composing the response to the NLP Engine using the defined Intent Flow logic and data that has been gathered.
- The IA sends the response to the NLP Engine via the pre-defined webhook.
- The NLP Engine returns the IA response to the front-end client app for insertion into the user chatbot.
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, Languages, 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 NLP Intents and Entities outside of the NLP Engine.
When performing the sync, the IA transparently creates Custom Type variables to store the NLP components for each Intent. A Designer can then insert this Custom Type as a variable for use in an Interaction or Intent Flow.
You can view IA-generated Custom Types as read-only values in the Admin Console.
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.
Note: Only those IA Domains and Intents which have been webhook-enabled in the DialogFlow NLP will be visible and available for use in the IA.
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. In DialogFlow an Agent uses a webhook to communicate with an IA Domain. Example Domains might include "Travel" or "Billing Support". You can have multiple Domains in your Account.|
|Domain Languages||You assign a Default Language when you create the IA Domain. It should match the Default Language selected in the DialogFlow Agent.|
|Intents||(Read Only) Intents are maintained in the NLP Agent and viewable in their associated Domain in the Admin Console. Each Intent is associated with an approved Intent Flow which is triggered by DialogFlow when it recognizes the Intent from a chatbot request.
Note: Only those Intents which have been webhook-enabled in the DialogFlow NLP will be visible and available for use in the IA.
|Entities||(Read Only) Entities are maintained in the NLP Agent 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 DialogFlow is mapped by the IA to determine which Intent Flow will be triggered and which Entities are required in order to fulfill a chatbot request.|
IA Webhooks to the NLP Engine
Jacada's IA uses a webhook mechanism in order to perform fulfillment for the NLP Engine. For details, see Setting up a IA Webhook in DialogFlow.