Virtual Assistants Overview
Natural Language Processing (NLP)
Concepts and Terminology
Quick Start Guide
Accessing the Platform
Navigating the XO Platform
Building a Virtual Assistant
Help & Learning Resources
Release Notes
Current Version
Recent Updates
Previous Versions
Request a Feature
Conversation Designer
Dialog Tasks
Mock Scenes
Dialog Tasks
Navigate Dialog Tasks
Build Dialog Tasks
Node Types
Intent Node
Dialog Node
AI-Assisted Dialog Node
Entity Node
Form Node
Confirmation Node
Message Nodes
Logic Node
Bot Action Node
Service Node
Webhook Node
Script Node
Process Node
Agent Transfer
Node Connections
Node Connections Setup
Sub-Intent Scoping
Entity Types
Entity Rules
User Prompts or Messages
Voice Call Properties
Knowledge AI
Knowledge Graph
Build a Knowledge Graph
Manage FAQs
Knowledge Extraction
Import or Export Knowledge Graph
Prepare Data for Import
Importing Knowledge Graph
Exporting Knowledge Graph
Auto-Generate Knowledge Graph
Knowledge Graph Analysis
Answer from Documents
Alert Tasks
Small Talk
Digital Skills
Digital Forms
Digital Views
Session and Context Variables
Context Object
Intent Discovery
NLP Optimization
ML Engine
Model Validation
FM Engine
KG Engine
Traits Engine
Ranking and Resolver
Training Validations
NLP Configurations
NLP Guidelines
LLM and Generative AI
Event Handlers
Contextual Memory
Contextual Intents
Interruption Management
Multi-intent Detection
Amending Entities
Default Conversations
Conversation Driven Dialog Builder
Sentinment Management
Tone Analysis
Default Standard Responses
Ignore Words & Field Memory
Test & Debug
Talk to Bot
Utterance Testing
Batch Testing
Conversation Testing
Conversation Testing Overview
Create a Test Suite
Test Editor
Test Case Assertion
Test Case Execution Summary
Health and Monitoring
NLP Health
Flow Health
Actions Overview
Azure OpenAI
Google Maps
Microsoft Graph
Open AI
Agent Transfer Overview
Custom (BotKit)
NiceInContact(User Hub)
External NLU Adapters
Dialogflow Engine
Test and Debug
Dashboard Filters
Overview Dashboard
Conversations Dashboard
Users Dashboard
Performance Dashboard
Custom Dashboards
Custom Meta Tags
Create Custom Dashboard
Create Custom Dashboard Filters
NLP Insights
Conversations History
Conversation Flows
Conversation Insights
Feedback Analytics
Usage Metrics
Containment Metrics
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
Conversation Sessions
Multilingual Virtual Assistants
Get Started
Supported Components & Features
Manage Languages
Manage Translation Services
Multiingual Virtual Assistant Behavior
Feedback Survey
Masking PII Details
IVR Settings
General Settings
Assistant Management
Manage Namespace
Data Table
Table Views
App Definitions
Data as Service
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
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
Migrate External Bots
Google Dialogflow Bot
API Reference
API Introduction
API List
API Collection
koreUtil Libraries
SDK Reference
SDK Introduction
SDK Security
SDK Registration
Web Socket Connect and RTM
Installing the BotKit SDK
Using the BotKit SDK
SDK Events
BotKit - Blue Prism
BotKit - Flight Search Sample VA
BotKit - Agent Transfer
Widget SDK Tutorial
Web SDK Tutorial
Introduction to Admin Console
Administration Dashboard
User Management
Add Users
Manage Groups
Manage Roles
Data Tables and Views
Assistant Management
Invite Users
Send Bulk Invites
Import User Data
Synchronize Users from AD
Security & Control
Using Single-Sign On (SSO)
Two-Factor Authentication (2FA)
Security Settings
Cloud Connector
  1. Home
  2. Docs
  3. Virtual Assistants
  4. Intent Discovery (Beta)

Intent Discovery (Beta)

The new Intent Discovery module helps you auto-extract popular intents from previous user conversations. It reduces the time and effort to build a virtual assistant and leads to the success of your Conversational AI Journey. This is a beta feature and is available only for the English language and Enterprise users.

You can upload your historical transcripts in CSV format. After the transcripts are uploaded into the bot, the bot uses LLMs to identify the different topics, intents, or conversations between the user and the bot. It intelligently identifies all the intents available. You can review each intent to understand which conversations have resulted in identifying these intents. After the review, you can also see the underline utterances that resulted in identifying an intent. You can either add these intents as new intents for your virtual assistant or pick specific utterances and train them as utterances for your existing dialogs and FAQs. So, it helps both ways – either create new intents or enhance the training you provide to your virtual assistant.

The Intent Discovery journey consists of the following steps:

  1. Create a Project: You may have many business use cases to automate. Projects help manage intent discovery for each business use case separately – a project for a specific use case.
  2. Upload Transcripts: Upload your use case-specific historical transcripts in CSV format. Conversations are extracted from the uploaded transcripts.
  3. Extract Intents: Intents and training data are extracted from the conversations.
  4. Review Intents to create new intents or add them as training data: You can add new intents as dialogs or FAQs or train them for existing dialogs or FAQs.

Create a Project

  1. Go to Build > Tools > Intent Discovery.
    Intent Discovery home page
  2. Click the Create Project button.
  3. Enter a name for the project and a brief description of the project. Note that the character limit for Project Name is 256 and for Project Description it is 1000.
    Intent Discovery project
  4. Click Proceed. The new project is created, and the Transcripts tab is displayed where you can upload the historical transcripts.

The Intent Discovery page lists all the projects with conversational insights for each project, such as status of the project, number of conversations, intents added, intents count, and intents trained.

The following different statuses of the project are displayed on the Status column:

  • Conversation In Progress
  • Conversation Extracted
  • No Files Uploaded
  • Intent Extraction In progress
  • Intent Extracted
  • <#number of> Intents Added
  • <#number of> Intents Trained

You can edit the project’s name and description. You can also delete the project if required.

Upload Transcripts

Once a project is created, you are taken to the Transcripts tab to upload transcripts in CSV format. You can download the sample CSV file from the tab. Ensure to upload transcripts in the format specified in the sample file.

Format of the CSV file

CSV file format

Field Name Description
Id The session ID of the conversation. (For all the conversations in a session, the Id must be the same.)
Sender ID The ID of the bot or agent.
Other Party ID The ID of the user talking to the bot or agent.
Direction The message direction – in (user input) or out (bot/agent response).
Message The message shown to the user or the bot/agent, depending on the message direction.
Message Type Format in which the message is sent or received – text/html.
Created on Date & time on which the message is sent or received.


  • Number of projects allowed: 2 projects per bot.
  • Number of transcripts files allowed: Up to 5 CSV files per project.
  • Maximum size of CSV transcript file: 1MB each.

Steps to upload the transcripts:

  1. After you create a project, the Transcripts tab opens. (Alternatively, on the Intent Discovery page, you can click the project for which you want to upload transcripts.)
  2. On the Transcripts tab, click the Upload Transcript button, and then browse and select the transcripts files (CSV format). The selected files are uploaded, and conversations are extracted from the uploaded transcripts.

  3. Upon successful upload, all the transcript files are displayed under the Transcripts tab.

The following details of the uploaded transcript files are captured and displayed:

  • File Name – Name of the transcript file
  • Upload Time– Time taken to upload the file
  • Number of Conversations – Unique conversations between the agent/bot with end users.
  • Average Messages – Average number of messages exchanged between agent and end-users per conversation
  • Status – Status of the uploaded file.

Any of the following statuses can be displayed for each of the files that are being uploaded:

  • Conversation Extraction In progress
  • Conversation Extracted
  • Invalid File
  • Upload Failed
  • Intent Extraction In progress
  • Intent Extracted
  • Intent Extraction Failed

Delete Transcripts

The uploaded transcript file can be deleted if the file is not required anymore, in cases where the upload was incorrect or if the conversation has been extracted and the file is not useful.

View Conversations in the Transcript

Upon successful upload of the transcript, you can view all the conversations and the chat messages exchanged between the end user and the VA/agent.

The platform displays the conversation session summary, which includes the count of the VA messages and user messages. You need to select a Date Filter under Contents to display the details.

If a conversation is not useful and is not contributing to the intent extraction, you can delete the specific conversation. Deleting a conversation also impacts the conversation count and average message count in the columns.

Extract Intents

The platform can extract the conversations from the uploaded files. After validating all the conversations within transcripts, the next step is to extract intents and training data from the conversations without segregating them manually.

Note: You can extract intents only once per project. Make sure to upload all the required transcripts in your project before initiating the extraction. If you need to extract intents from the same file again, you must create a new project. Intent extraction may take a few minutes based on the number and nature of the conversations.

Steps to extract intents from the transcript file:

  1. In the Transcripts page, click the button Extract Intents and click Confirm on the pop-up to proceed with the extraction.
  2. The intents get extracted and the status can be seen across the file names, as shown below.
  3. Once the extraction is completed, click the Review Intents button.
  4. You can see the list of extracted intents under the Intents tab.
  5. All the extracted intents are listed with the count of utterances that are extracted from the uploaded files.

  6. Click any extracted intent to view all the influenced utterances that have led to intent identification.
  7. The platform displays the list of utterances, mapped intents and status of the utterances (Reviewed/Yet to Review).
    Under Mapped Intents, the details of all the intents and FAQs used in training the utterances would be displayed. See Train the Utterances to know more.

  8. Click the View icon to see the transcripts of the utterances.

Train the Utterances

Once the utterances are listed, you can select one or more utterances and perform the following actions:

  • Create a new Dialog Task or FAQ
  • Train them for an Existing Dialog Task or FAQ
  • Change the status of the utterances

Create New Dialog Task

In a scenario where the utterances cannot be mapped to the existing intents, you can create a new intent.

Steps to add a new intent (DialogTask or FAQ) for the utterance:

  1. Under the Influenced Utterances, select one or more utterances for which you want to add a new Dialog Task.
  2. Select the Dialog Task option from the Add Intent drop-down.
  3. A new dialog task creation window is displayed.
  4. You can modify the Intent Name extracted from the conversations if required, and add all other details in the Add Dialog Task panel. Also, you can delete the utterances if they are not valid for the intent.
  5. Click the button Add to Bot to add the intent for the utterances. Click Yes, Mark as Reviewed if you want to change the status of the trained utterances to Reviewed, or else click No.
  6. The trained utterances are displayed as shown below. You can click the View More link to see the details of the mapped intents – all the FAQs and the Dialog Tasks to which the utterance is mapped.
  7. To view the details, click the View More link under the Mapped Intents column from the main page of extracted intents, as shown below.

Add New FAQ

You can train the influenced utterances to create new FAQs.

Steps to add FAQs:

  1. Select the utterances for which you want to add FAQs, and click FAQ from the Add Intent drop-down.
    You must add the primary question and the bot response to create the FAQ.
  2. The Add FAQ panel is displayed, where you can enter all the relevant details.
  3. You can click Add Extended Response to add an extended response to the main response and also add alternate responses.

Train Utterances for the Existing Intents

You can add an existing intent to an utterance or multiple utterances.

Steps to add an intent to utterances:

  1. To map an existing Dialog Task or FAQ, click the Train drop-down.
  2. Click the Dialog Task option to choose the matching intent for the selected utterance(s).
  3. Click the button Add Utterances to add the intent for the utterances.
  4. Similarly, click the FAQ option from the Train drop-down to add the matching FAQ for the selected utterance(s).

Change Status

You can modify the statuses of the utterances extracted from the files. Once the utterances are added or trained for an intent, a message is displayed to change the status. See Train the Utterances to know more. The status of all the utterances is Yet to review by default. You can change the status of an individual utterance from Yet to review to Reviewed and vice versa.

You can also use the Status drop-down provided in the top right corner of the page to change the status of one or more selected utterances.