Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Quick Start Guide
Accessing the Platform
Working with the Builder
Building a Virtual Assistant
Using Workspaces
Release Notes
Current Version
Previous Versions

Dialog Tasks
Dialog Builder
Node Types
Intent Node
Dialog Node
Entity Node
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Group Node
Agent Transfer
User Prompts
Voice Call Properties
Dialog Task Management
Connections & Transitions
Component Transition
Context Object
Event Handlers
Knowledge Graph
Knowledge Extraction
Build Knowledge Graph
Add Knowledge Graph to Bot
Create the Graph
Build Knowledge Graph
Add FAQs
Run a Task
Build FAQs from an Existing Source
Traits, Synonyms, and Stop Words
Manage Variable Namespaces
Move Question and Answers Between Nodes
Edit and Delete Terms
Edit Questions and Responses
Knowledge Graph Training
Knowledge Graph Analysis
Knowledge Graph Import and Export
Importing Knowledge Graph
Exporting Knowledge Graph
Creating a Knowledge Graph
From a CSV File
From a JSON file
Auto-Generate Knowledge Graph
Alert Tasks
Small Talk
Digital Skills
Digital Forms
ML Engine
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
NLP Configurations
NLP Guidelines
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Sentinment Management
Tone Analysis
Test & Debug
Talk to Bot
Utterence Testing
Batch Testing
Conversation Testing
Conversations Dashboard
Performance Dashboard
Custom Dashboards
Meta Tags
Dashboards and Widgets
Conversation Flows
NLP Metrics
Containment Metrics
Usage 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
Masking PII Details
IVR Settings
General Settings
Assistant Management
Data Table
Table Views
App Definitions
Sharing Data Tables or Views

Build a Flight Status 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
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
Web SDK Tutorial
Widget SDK Tutorial
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

Assistant 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 & Compliance
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

This section contains topics that describe the process of creating and publishing bots using the Bot Builder tool.

If you are new to Bot Builder and want to familiarize with the terms and concepts we use, refer to VA Concepts.

Build your Virtual Assistant

Once you get access to’s XO Platform, you can build your first VA within no time by following the below-mentioned steps. Each step is elaborated in detail in this document.

Let’s look at each of the above-mentioned steps in detail.

Define and Build

This step consists of two sub-tasks:

  • Define or Design the VA
  • Build or Develop the VA
Define or 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 business sponsors, product owners, business analysts, and VA developers in this process.

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.

Platform Recommendations: The following steps are considered while designing a VA:

  • Understand the User Needs: To set the scope of the VA. The business sponsors, business analysts, and product owners play an important role to identify the user requirement by gathering market requirements and assessing internal needs.
  • Set the Virtual Assistant Goals: It helps you create a well-defined use case. 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: To define virtual assistant behavior in every possible scenario in its interaction with the user. Simulating conversations goes a long way in identifying every possible scenario.

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

Things to keep in mind while designing a virtual assistant: 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 layman like, a bank 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 act 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 live in? This will to some extent drive the way the VA is presented, the various options available for the VA is limited by the channel/medium it is used.
  • 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 or Develop the Virtual Assistant

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

Create a Standard Virtual Assistant
  1. Log in to the XO Platform with valid credentials.
  2. On the landing page, click New Bot on the top-right.
  3. From the drop-down, select the Start from Scratch option.
  4. On the Create New Bot window, enter a name in the Bot Name field.
  5. Select English from the Default Bot Language drop-down list and Standard Bot from the Bot Type drop-down list.
  6. Click Create.
Select Virtual Assistant Type

Based on the requirements, select the type of VA you want to create. You can create either a

  • Standard VA – the most common type of VA 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 VA Types.

Define VA Tasks

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

Virtual Assistant 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 your time in the long run.

Define one or more tasks or flows for your VA in 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 skill to be added by clicking the Create button on the corresponding skills page.

Skills are VA capabilities that help in catering to the end-user needs. These include dialog and alert tasks such as book a flight, get weather alerts, or respond to user queries (Knowledge Graph) or even engage the user in Small Talk.

You can define the following skills from Bot Builder:

  • Storyboard – Design engaging conversations as well as simplifies the communication between business users, conversation designers, language experts, and developers.
  • Dialog Tasks – Consists of 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 responding to users task to the VA, thus enabling your support staff to engage with more complex tasks.
  • Small Talk – Engage the end-users in casual conversations that help socialize your VA and improves the recall rates.

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 VAs. Doing so allows your VAs 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.

The following tools help train your VA so that the NLP engine recognizes and responds to user inputs efficiently and accurately.

  • Train the VA using Machine Learning to improve utterance recognition.
  • You can fine-tune the FM Engine and the VA’s configuration by adding additional utterances, synonyms, and patterns for a task or intents.
  • 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.

Channel Enablement

This step refers to adding channels to your VA that end users can use to access and interact with your VA after it is published. End users can only interact with your VAs, and by extension VA tasks, after 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 Bot Builder, you can design VA tasks once and deploy them across 20+ channels by merely 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 Virtual Assistant, 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.

You need to carefully test and analyze your ML and NLP models and ensure you have not inadvertently trained your models using a large number of conflicting utterances while paying close attention to false positives and false negatives.

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 training model to determine whether the changes made are appropriate and to determine whether they have enhanced or deteriorated the NLP model.

Talk to Bot option, Utterance Testing, and Batch Testing helps in testing and improving the performance of the VA.

For more information, refer to Test your Virtual Assistant.


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

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

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

For more information, refer to Publishing Tasks.


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 VAs performance 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, and more.

Furthermore, VA developers and analysts 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 a VA intent or FAQ and retrain the VA to identify it 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 go a long way in achieving VA success.

For more information, refer to Analyze your Virtual Assistant.


To summarize, The Bot Builder provides a web-based tool with a repeatable process to design, develop, test, and deploy smart VAs at an enterprise scale. You can do all this without the code, custom software, significant server space, or major changes to your infrastructure.