This section contains topics that describe the process of creating and publishing bots, enabling and using Natural Language Processing for your bots created using the Kore.ai Bot Builder tool.
If you are new to Bot Builder and want to familiarize with the terms and concepts we use, refer to Bot Concepts.
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 Bot
- Build or Develop the Bot
Define or Design the Bot
Every bot 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 bot developers in this process.
Get a good idea of what the Bot 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 Bot.
For more information, refer to Design.
Build or Develop the Bot
Once your Bot’s capabilities and ideal use case are well-defined, the Bot developer begins the process of configuring bot tasks, defining intents, entities, and build the conversational dialog.
Bot 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 bot to perform. Ensure that it delivers on the benefits you want the bot 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.
Select Bot Type
Based on the requirements, select the type of Bot you want to create. You can create either a
- Standard Bot – the most common type of Bot with various tasks mapped to a conversation flow.
- Universal Bot – to link multiple standard Bots.
- Smart Bot – for common functionality that can be inherited by various verticals within your enterprise.
- Template Bots – install one or more of fully functional, end-to-end Kore.ai template bots from the Bot Store, then customize and publish to understand how to configure bots.
Create Bot Tasks
Define one or more tasks for the bot. Tasks refer to different types of simple and complex jobs that a developer designates the chatbot to perform to fulfill the user intents.
The combination of various tasks enables you to map the entire conversation flow that you have designed in the previous step.
For example, the most common task types that a travel bot can perform are book tickets, find hotels, and provide weather forecasts, each catering to different user intents.
For more information, refer to Defining Bot Tasks.
Train your Bot for NLP
The best bots are well trained using an iterative process. After you develop your tasks and conversation flow, you can train your bots. Doing so allows your bots to better understand user utterances and the engine to better prioritize one Bot task or intent over another based on the user input.
Bot 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 bot.
The following tools help train your Bot so that the NLP engine recognizes and responds to user inputs efficiently and accurately.
- Train the bot using Machine Learning to improve utterance recognition.
- You can fine-tune the FM Engine and the bot’s configuration by adding additional utterances, synonyms, and patterns for a task or intents.
- Enhance your Bot Intelligence by defining interruption handling, multi-intent detection, and more.
For more information, refer to Optimizing Bots for Natural Language Processing.
This step refers to adding channels to your Bot that end users can use to access and interact with your Bot after it is published. End users can only interact with your bots, and by extension bot tasks, after Bots are published and deployed to enabled channels.
Channels refer to various communication platforms where a bot can live such as SMS, email, mobile apps, websites, messaging apps, and more. With the Bot Builder, you can design chatbot tasks once and deploy across 20+ channels by merely selecting a checkbox.
For more information, refer to Adding Channels to your Bot.
Test your Bot
After you have built and trained your bot, the most important question that arises is how good is your bot’s NLP model? This is what testing is all about. You must consider testing your bot 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 bot. After every round of training or retraining, you must review the training model to determine that 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 Bot.
For more information, refer to Test your Bot.
Once your bot 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 bots and bot functionality before moving forward with the deployment.
Publish your bot tasks to your account, a Kore.ai 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 bot is approved by all relevant parties, you can deploy to end-users through previously enabled channels.
For more information, refer to Publishing Tasks.
Once your bot 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 bots 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, bot 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 bots.
The data collected must be used to improve the NLP and functional performance of your bots. For example, take a look at all the utterances that your bot was not able to map to a bot intent or FAQ and retrain the bot to identify it in the future. For task failures, you can troubleshoot where the process went wrong and come up with solutions.
Building great bots 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 bot success.
For more information, refer to Analyze your Bot.