Kore.ai Dialog tasks represent a full conversational flow between a user and a Bot with a network of nodes that are connected using conditions. Dialog tasks are used to handle multiple user intents within a single conversation. For example, “What is your destination?” is a typical question in Book Flight bot that is sometimes followed up with “What’s the weather forecast? ” You can create a dialog task to encompass a full conversation with multiple outcomes as a single task.
A dialog task begins with a root intent, Book Flight, can branch out into subtasks, Weather Info, and then return to the primary task. The branch flow is determined at runtime by user input or selection.
Dialog Task Uses
As a developer, you can define Kore.ai Dialog Tasks to:
- Create a conversational flow between the user and the bot
- Build dialogs with branching paths based on user inputs and system responses
- Invoke a child flow within the context of the current flow
- Define and reuse dialog nodes connected by defined conditions
- Add event handlers and get or update the conversation context via Webhook
You can also design your Dialog flow using:
- Agent Transfer Node – Use it to define a point in a dialog flow to switch to a Live Agent.
- Fallback Dialog – If the user intent is ambiguous, invoke the Fallback Dialog, for example, a Live Agent transfer, as an alternative.
- Hidden Dialog – Use to invoke tasks that should be hidden from a user dialog flow unless specifically invoked. For example, a user utterance to invoke a Dialog Task external to the current Dialog Flow.
The following is a Dialog Task for booking flight tickets.
Dialog Task Builder
The Dialog Task Builder is the user interface to build Dialog Tasks. Dialog Tasks consists of a set of connected nodes and the branch paths the bot can take based on a user conversation. It provides easy-to-use tools to add and edit nodes and conditions to define your task flow. It shows you a high-level view of the components by default, and you can adjust the Zoom settings to focus on specific areas. Using the Tracing feature, you can see individual branch paths taken to reach a node from the root intent as shown below.
Dialog Tasks support the following types of nodes:
User Intent Node
The user intent to be identified by the platform based on the user utterance. Every dialog will have one root intent with any number of sub-intents. For more information, see Working with the User Intent Node.
The user entity in the utterance. The platform supports 15+ entity types. Developers can define the prompt message to be shown, and this message can be channel-specific. For example, an amount, account number, time, or zip code. Entity nodes prompt the user for an input. For more information, see Working with the Entity Node.
Agent Transfer Node
Used to transfer communication from the bot to a live agent. For more information, see Working with the Agent Transfer Node.
Used to write custom JS code in the Dialog task. For more information, see Working with the Script Node.
Allows you to call an API. You can also use cURL to build the API request. For more information, see Working with the Service Node.
Message (or Bot Response) Node
Displays a message from the Bot to a user, such as, “Is there anything else I can help you with?” For more information, see Working with the Bot Response Node.
Displays a query message from the Bot to the user, and then waits for a user response. Conditions are defined to continue processing the dialog task flow based on the user input. For more information, see Working with the Confirmation Node.
Used for server-side validation, executing business logic, or making backend server API calls. To use this node, you must have installed the SDK Tool Kit. For more information, see Working with the WebHook Node.
A Dialog Task builds a task flow with different nodes connected by transitions. Dialog Task transitions depend on conditions that use business-defined evaluation criteria to take the next steps within the Dialog Task flow. In Kore.ai, you define If-then-else conditions using a set of predefined operators. For each component, you must specify a fallback condition. How you represent a transition depends on the component type you are defining, and component type-specific transitions are described in the topic for each component type. You can use the following operators to write conditions:
- Equals to
- Greater than equals to
- Less than equals to
- Not equals to
- Greater than
- Less than
Context object for Bot Builder is the container object that holds the data for the dialog execution. The Kore.ai natural language processing (NLP) engine populates the intent identified, entities extracted, and history into this object. You can use the keys from the
Context object for component transition conditions. For more information, see the Context Object.
Creating a Dialog Task
To create a dialog task, you must already have configured a Bot to add a dialog task to.
To add a dialog task
- Open the bot in which you want to create the Dialog Task.
- Hover over the side navigation panel and click Bot Tasks.
- Click Dialog Tasks, and then click the plus icon.
- Enter a name and description for the dialog task, and then click Create & Proceed.
- The Dialog Builder opens with the root intent component and Component Properties panel.
If you are new to the Dialog Builder, you should learn more about the Dialog Builder user interface before preceding. For more information, see Using the Dialog Builder Tool.
Otherwise, your next step is to decide what component type to add and how to transition to the next component. For more information, see the following component types:
- User Intent Node – For more information, see Working with the User Intent Node.
- Entity Node – For more information, see Working with the Entity Node.
- Script Node – For more information, see Working with the Script Node.
- Agent Transfer Node – For more information, see Working with the Agent Transfer Node.
- Service Node – For more information, see Working with the Service Node.
- Bot Response Node – For more information, see Working with the Bot Response Node.
- Confirmation Node – For more information, see Working with the Confirmation Node.
- WebHook Node – For more information, see Working with the WebHook Node.
- Dialog Node – For more information, see Working with the Dialog Node.