Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Help & Learning Resources
Quick Start Guide
Accessing the Platform
Navigating the XO Platform
Building a Virtual Assistant
Using Workspaces
Release Notes
Current Version
Previous Versions
Request a Feature
Conversation Designer
Dialog Tasks
Mock Scenes
Dialog Tasks
Navigate Dialog Tasks
Build Dialog Tasks
Nodes & Connections
Node Types
Intent Node
Dialog Node
Entity Node
Entity Rules
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Process Node
Agent Transfer
Node Connections Setup
Context Object
Sub-Intent Scoping
User Prompts
Voice Call Properties
Dialog Task Management
Event Handlers
Supported Entity Types
Supported Company Names
Supported Colors
Knowledge Graph
Knowledge Extraction
Build Knowledge Graph
Create Node Structure
Build the Graph
Add FAQs
Add FAQs from an Existing Source
Run a Task
Traits, Synonyms, and Stop Words
Manage Variable Namespaces
Update Knowledge Graph
Move Question and Answers Between Nodes
Edit and Delete Terms
Edit Questions and Responses
Knowledge Graph Analysis
Knowledge Graph Import and Export
Prepare Data for Import
From a CSV File
From a JSON File
Importing Knowledge Graph
Exporting Knowledge Graph
Auto-Generate Knowledge Graph
Alert Tasks
Small Talk
Digital Skills
Digital Forms
Digital Views
NLP Optimization
ML Engine
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
Training Validations
NLP Configurations
NLP Guidelines
Default Standard Responses
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Conversation Driven Dialog Builder
Sentinment Management
Tone Analysis
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Conversation Testing
Health and Monitoring
Overview Dashboard
Conversations Dashboard
Users Dashboard
Performance Dashboard
Custom Dashboards
Custom Meta Tags
Create Custom Dashboard
NLP Insights
Conversations History
Conversation Flows
Analytics Dashboard Filters
Usage Metrics
Containment Metrics
Smart Bots
Universal Bots
Universal Bot Definition
Universal Bot Creation
Training a Universal Bot
Universal Bot Customizations
Enabling Languages
Manage Assistant
Plan & Usage
Usage Plans
Support Plans
Multilingual Virtual Assistants
Get Started
Supported Components & Features
Manage Languages
Manage Translation Services
Multiingual Virtual Assistant Behavior
Masking PII Details
IVR Settings
General Settings
Assistant Management
Manage Namespace
Data as Service
Data Table
Table Views
App Definitions
Sharing Data Tables or Views
Build a Travel Planning Assistant
Travel Assistant Overview
Create a Travel Virtual Assistant
Design Conversation Skills
Create an ‘Update Booking’ Task
Create a Change Flight Task
Build a Knowledge Graph
Schedule a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Train the Assistant
Use Traits
Use Patterns
Manage Context Switching
Deploy the Assistant
Configure Agent Transfer
Use Bot Functions
Use Content Variables
Use Global Variables
Use Web SDK
Build a Banking Assistant
Design Conversation Skills
Create a Sample Banking Assistant
Create a Transfer Funds Task
Create a Update Balance Task
Create a Knowledge Graph
Set Up a Smart Alert
Design Digital Skills
Configure Digital Forms
Configure Digital Views
Add Data to Data Tables
Update Data in Data Tables
Add Data from Digital Forms
Train the Assistant
Composite Entities
Use Traits
Use Patterns for Intents & Entities
Manage Context Switching
Deploy the Assistant
Configure an Agent Transfer
Use Assistant Functions
Use Content Variables
Use Global Variables
Intent Scoping using Group Node
Analyze the Assistant
Create a Custom Dashboard
Use Custom Meta Tags in Filters
API Reference
API Introduction
API List
API Collection
koreUtil Libraries
SDK Reference
SDK Introduction
SDK Security
SDK Registration
Web Socket Connect and RTM
Using the BotKit SDK
BotKit SDK Tutorial - Blue Prism
Widget SDK Tutorial
Web SDK Tutorial
Introduction to Admin Console
Administration Dashboard
User Management
Add Users
Manage Groups
Manage Roles
Assistant Management
Invite Users
Send Bulk Invites
Import User Data
Synchronize Users from AD
Security & Control
Using Single-Sign On
Security Settings
Cloud Connector
  1. Home
  2. Docs
  3. Virtual Assistants
  4. Overview
  5. Building a Virtual Assistant

Building a Virtual Assistant

his article contains topics that describe the process of implementing  Virtual Assistants using the XO Platform.

If you are new to the XO Platform and want to familiarize yourself with the terms and concepts we use, please refer to Concepts and Terminology

Steps for Building your Virtual Assistant

Once you get access to the XO Platform, you can build your first VA by following the steps below. . 

  1. Define / Design: This is the step during which you clarify the necessary details, before you begin to actually build your VA. 
  2. Build / Develop: At this stage, your VA takes shape within the XO Platform; you begin making the necessary configurations and developing it to continuously fit your organization’s needs.

Define / Design the VA

Every VA must be built to solve a well-defined use case. 

The first step to create a well-defined use case involves gathering market requirements and assessing internal needs. Typically, you want to include all relevant stakeholders, such as business sponsors, product owners, business analysts, and VA developers in this process.

Next, get a good idea of what the VA needs to do. A clear description of each step and a flow chart of the various conversation flows will go a long way in easing the process of building the VA.

Below, we present our recommendations when it comes to the design process and the questions you should ask when defining your VA.

Recommended Design Process

We recommend that you follow the steps below while designing your VA: 

  • Understand your Users’ Needs: To set the scope of the VA, the business sponsors, business analysts, and product owners play an important role in identifying  the users’ needs by gathering market requirements and assessing internal needs.
  • Set the Virtual Assistant Goals: This involves converting the above-identified scope to a use case. It is advisable to involve the VA developer in this phase.
  • Design a Virtual Assistant Conversation: This helps define chatbot behavior in every possible scenario in its interaction with the user. Simulating conversations go a long way in identifying such scenarios.

Once the VA capabilities and ideal use cases are well-defined, the developer can begin the process of configuring the tasks, define intents and entities, and build the conversational dialog.

Questions to Ask during the Design Process

Try to answer the following questions (some if not all):

    • Who is the target audience? Technical help VAs targeted for a tech-savvy customer need a different design when compared to VAs for a layperson, such as an airline’s customer. Hence assessing the target audience is always important.
    • What VA persona will resonate the most with this group? This will help define how the VA talks and acts in every situation.
  • What is the purpose of the VA? The goal i.e. the customer query that the VA needs to address defines the endpoint of any conversation.
  • What pain points will the VA solve? The purpose and scope of VAs are set to identify what the VA addresses and when the human agent needs to take over.
  • What benefits will the VA provide for us or our customers? The main benefit of using a VA is time-saving. Users need not waste their time waiting for a human agent to be available for answering their query. You, as the business owner, don’t worry about not being there to cater to all customer needs.
  • What tasks do I want my VA to perform? Simulation of user conversation helps identify the tasks that need to be catered to by the VA.
  • What channels will the VA communicate through? This will to some extent drive the way the VA is presented, the various options available for the VA are limited by the channel/medium it is used in.
  • What languages should the VA speak? When catering to a multilingual community the language support is imperative and building the dictionary simultaneously is useful.

Build / Develop the VA

Once the VA’s capabilities and ideal use case are well-defined, the developer begins the process of configuring tasks, defining intents, entities, and building the conversational dialog.

The general development process in the XO Platform involves the following steps: 

  • Choose the type of VA to build;
  • Add your first VA;
  • Define the VAs tasks;
  • Train the VA;
  • Enable communication channels;
  • Test your VA configuration;
  • Publish your VA;
  • Analyze and improve;

Select the Virtual Assistant Type

Based on the requirements, select the type of Virtual Assistant you want to create The XO Platform allows you to create the following types of VAs:

  • Standard VA – the most common type, with various tasks mapped to a conversation flow.
  • Universal VA – to link multiple standard VAs.
  • Smart VA – for common functionality that can be inherited by various verticals within your enterprise.

More on Virtual Assistant Types.

Within this article we will be using a Standard VA as a working example. 

Create a Standard Virtual Assistant

The XO Platform provides a web-based tool with a repeatable process to design, develop, test, and deploy smart chatbots on an enterprise scale. You can do all this without code, custom software, significant server space, or major changes to your infrastructure.

Below are the steps to follow in order to create your first VA, using Kore,ai:

  1.     On the landing page, click New VA on the top-right
  2.     From the drop-down, select the Start from Scratch option.
  3.     On the Create New Bot window, enter a name in the Bot Name field. You can also choose an icon to use with your VA,
  4.     Select English from the Default Bot Language drop-down list and Standard Bot from the Bot Type drop-down list.
  5.   Click Create

Learn more about Navigating the XO Platform

Define Virtual Assistant Tasks

After creating the Standard VA, you are ready to define how your VA works, by starting with tasks.

VA capabilities and dialogs should flow naturally from the specifications you defined in the previous step. It is always valuable to take time to review the list of tasks you want the VA to perform. Ensure that it delivers on the benefits you want the VA to provide and the pain points you want it to solve, before starting actual development. This will certainly save you time in the long run.

Define one or more tasks or flows for your VA using one of the following methods:

  •     On the Bot Summary page, click + New Task on the Tasks widget. This would allow you to add a Dialog or an Alert task.
  •     In addition to the above-mentioned tasks, from the Conversational Skills menu on the left navigation, you can select a task to be added by clicking the Create button on the corresponding task page. The example screenshot below shows you how to create a new Dialog Task.

Skills are VA capabilities that help achieve the end-user’s needs. These include dialog and alert tasks such as booking a flight, getting weather alerts, responding to user queries (Knowledge Graph) or even engaging the user in Small Talk.

The XO Platform allows you to define the following skills:

  • Storyboard Design engaging conversations and simplify the communication between business users, conversation designers, language experts, and developers.
  • Dialog Tasks – Consist in multiple intents, sub-intents, and component nodes to conduct a complex conversational flow between a user and the VA.
  • Alert Tasks Monitors a web service for events and sends a notification message to the user when the event occurs. You can use this task type for scheduled polling or near real-time notification using webhooks.
  • Knowledge Graph Turns static FAQ pages into an intelligent, personalized conversational experience. Build a hierarchy of crucial terms, add questions to the right nodes in the hierarchy, and leave the task of responding to users to the VA, thus enabling your support staff to engage with more complex tasks.
  • Small TalkEngage the end-users in casual conversations that help socialize your VA and improve the recall rates.
  • Digital Skills Leverage forms and views and enhance the user’s experience while interacting with your VA.

Train your VA for NLP

The best Virtual Assistants are well trained using an iterative process. After developing the tasks and conversation flow, you can train your VA. Doing so allows your VA to better understand user utterances and the engine to better prioritize one VA task or intent over another, based on the user input.

Both developers and business analysts work together to provide sample utterances and patterns that are used to complete the initial training. It can be further augmented by internal testing and field data once you deploy the VA.

We recommend that you train the VA using Machine Learning to improve utterance recognition.

  • You can fine-tune the FM Engine and the VAt’s configuration by adding additional utterances, synonyms, and patterns for a task or intent.
  • Additionally, you can enhance your VA Intelligence by defining interruption handling, multi-intent detection, and more.

For more information, refer to Optimizing Virtual Assistants for Natural Language Processing.

Enable Channels 

This step refers to adding channels to your VA that end users can use to access and interact with it after it is published. End users can only interact with your VA, and by extension VA tasks, after the VAs are published and deployed to enabled channels.

Channels refer to various communication platforms where a VA can live such as SMS, email, mobile apps, websites, messaging apps, and more. With the XO Platform, you can design VA tasks once and deploy across 20+ channels simply by selecting a checkbox.

For more information, refer to Adding Channels to your Virtual Assistants.

Test your Virtual Assistant

After you have built and trained your VA, the most important question that arises is how good is your VA’s NLP model? This is what testing is all about. You must consider testing your VA across all planned messaging channels for a better end-user experience.

Testing helps determine whether or not more training is needed before deploying your VA. After every round of training or retraining, you must review the model to determine whether the changes made are appropriate and whether they have enhanced or deteriorated the NLP model.

The Talk to Bot option, Utterance Testing, and Batch Testing helps test and improve  your VAs performance.

For more information, please refer to Test your Virtual Assistant.


Once your VA is built and sufficiently tested, it is time to deploy it in the environment of your choice; and to the communication channels where users engage.

It is recommended that you work with the key business stakeholders to review and approve all VAs and their functionality before moving forward with the deployment.

You can then publish your VA tasks to your account, a space, or your company account. When publishing tasks, a request is initiated to the VAsAdmin  who can review and approve/disapprove their deployment. Once your VA is approved by all relevant parties, you can deploy to end-users through previously enabled channels.

For more information, please see  Publishing Tasks.

Analyze and Improve

Once your VA is deployed, it is important that you continually monitor how users use it and take an active role in managing and refining it, using an iterative process. Your VA’s should be monitored from an engagement, performance, and functional standpoint and the results analyzed, including monitoring conversations and other variables like messages per session, retention, location, user demographics, sentiment, etc..

Furthermore, developers and analysts should work together to identify drop-off points, uncover task or language failures, determine why conversations are abandoned, and monitor service and script performance to improve the NLP and functional performance of your VAs.

The data collected must be used to improve the NLP and functional performance of your VAs. For example, take a look at all the utterances that your VA was not able to map to an intent or FAQ and retrain the VA to identify them in the future. For task failures, you can troubleshoot where the process went wrong and come up with solutions.

Building great virtual assistants is not easy, but the right platform, a little bit of structure, and a willingness to test and iterate some more goes a long way in achieving success.

For more information, please refer to Analyze your Virtual Assistant.