The process of building any chatbot should be similar to building an AI-based application.
Any chatbot that worth building goes through these steps to provide real business value.
Here is how it goes.
Step 1: Define User Experience
First and foremost the chatbots are build to interact with users, so it is critical to define the user experience before getting started.
Think of it as a mini app that sits on your website or some channels that do some functions for your business.
Chatbots can do a whole lot of things like capturing leads, selling products or automating customer services.
Each of these functions requires user experience elements to make the integration looks embedded in the chat window.
Step 2: Define the Devices and channels
Next step is to understand where the chatbot is going to reside. If it is a website, you need to build a web component embedded into your site.
If it is multi-channel then you might need a middleware component like botkit to reuse the development.
Figure this out first because this could impact your selection of products.
Step 3: Gather the usage data from analytics
Analytics is the better data to tell you what your users are looking for in your applications.
Get all the past data to figure out all the keywords your user use. If you already have a live chat or customer service systems try and see all the historical data.
Use this data to design your features for the chatbot. And use the same data to train your bot if it is structured.
You can also get more data from social trends or public dataset for your niche and use that.
Step 4: Pick the right NLU (chatbot engine)
Once you know the exact feature set you need to implement in the chatbot. Pick the right chatbot engine that supports that.
There are many engines out there and not everyone fits in many use cases.
You can build bots to play around but when it comes to real automation we need something that can fit in.
Step 5: Design your backend services (For automation)
Chatbot should be used for automating a business process end to end.
For example, if you are looking at automating your customer service. Chatbot should be able to connect to your backend system to fetch the order id and provide a status to your customer.
There are many functions that can be automated using the chatbots. So the chatbots should be able to accommodate the end to end automation.
Step 6: Design Contexts for conversations
The primary goal of chatbots is building conversational applications. Every conversation should be tagged with some context and the bot should be able to understand and switch between contexts elegantly.
If the bot sounds or feels like a machine, the users are not going to interact much with it.
It should be fun and interesting for users to continue to use chatbots.
Step 7: Input all the data in the right format (entities, intent)
Once all the design is done, then you have all the information to build your bot.
Most of the chatbot engines have these most basic elements.
Entities – For defining data and keywords
Intents – The user intent classifications based on the questions or sentences.
Use the data collected earlier to enter intents and entities.
Step 8: Train & Test
Once the data is entered. Train it.
If you are using custom chatbots, then train it by altering the parameters until you see good results.
Test, test, and test.
Many NLU engines are built for training with data. They also learn as we keep hitting it hard.
Test it as much you could and make sure the behavior is consistent. If you see inconsistency then it means there is a problem with data or training.
Step 9: Implement a good analytics system.
You need analytics system to measure every single event in your chatbot.
Without knowing what users are experiencing its hard to optimize the chat.
Step 10: User Testing & optimize it.
The last step is to have users test it.
Use the data from analytics to understand how people really use it and make sure the bot is optimized for it.