When it works, it’s almost magical, as the experience is seamless for the final user. But in order to achieve that results, multiple technologies are used, stacked on top of each other or during the development process. How to create a bot, therefore, may not be as straightforward. We came up with this short guide to show how the workflow and the stack involved may be in the creation of these types of interfaces. Note that the following applies to both voice and chatbots experiences.
First step: Design
If you were to create a mobile app or a website, this is where you would naturally start: design. This approach is not different also when the problem is how to create a bot. The only difference is that the design that you need to create is not a graphical one – like the one needed for apps and websites.
It is instead a design called conversation design. It does not have screens but flows. And it does not require the user to click on buttons, but to answer questions. You will not define colors, but you will define a personality. The amount of work involved in the definition of your conversation design will vary depending on the complexity of your project. In our experience, it usually occupies half of the total time needed to create the bot. So if you are planning to spend 6 months to develop your bot, take into consideration 3 months for the design phase. Consider that there are multiple resources and tools that you can use. The best resources in our opinion are ‘Designing Chatbots’ By Amir Shevat and ‘Designing Voice User Interfaces: Principles of Conversational Experiences’ by Cathy Pearl. As tooling goes, you will need a dedicated tool like Botsociety. Check it out, we offer a free plan.
How to create a bot, second step: Handover
Once you are done designing your interaction, you can hand it over to your engineering team that will then pick the best technology to realize your design. Those technologies can either be open source solutions like Rasa, or cloud solutions like Dialogflow or LUISS. If you used Botsociety to design your chatbot, you can leverage its handover features in order to kickstart your development process – for example, you can export natively to Rasa, Dialogflow and the Microsoft Bot Framework.
Regardless of how you do the handover, your bot will require an additional step, that is in between the design phase and the development one: the training. This is because bots are powered by Natural Language Processing engines. Those engines allow the bot to identify the user intent based on the phrase expressed by the user. In order to do that, the engine will need an amount of training data for each intent that your design has defined. The amount of training data may vary depending on the complexity of the use case, on the total number of intents and on your target user base. To Give you a rough idea, consider that we do not advise to have less than 30 utterances (training phrases) for each intent.
Third step: The deploy
Once the bot is built, you can deploy it to your final users. One of the advantages of creating a bot is that you can leverage existing platforms and deploy your bot there. For example, you can deploy your bot on Slack, on Microsoft Bot Teams, on Whatsapp, on the Google Assistant, and more. Consider that each platform has its own characteristics and that your design should account for those in order to leverage them in a meaningful way. It’s also possible to use the same Natural Language Processing engine and deploy it to multiple final platforms, adjusting the bot responses based on the platform capabilities. If you plan to do so, consider that this decision is going to impact both the design phase and the technology that your engineering team will use. For example, Botsociety and Dialogflow support all of the platforms mentioned above.
Fourth step: Analyze
Ok, your bot is now released to your final users! Now what? It’s actually very important to measure and analyze what your users are saying. The data generated in this way can be used in two ways. Note that this is the last step of how to create a bot.
At first, you want to analyze the ‘unhappy’ interactions, where the user and the bot did not understand each other. By reading those transcripts, you will be able to define the best action to course-correct your bot. One possible scenario is at the user is trying to express an intent that you accounted for in your design, but the user is expressing such intent in an unexpected way that is not captured by your Natural Language Processing engine. In this case, you can add more training data to your engine in order to fix the problem for future users. Another possible scenario is that the user is expressing an intent that you did not anticipate in your initial design. In this case, you can go back to the design tool and design a new flow in order to accommodate such intent.
Secondly, you want to analyze the ‘happy’ interactions, where the user and the bot did understand each other. By reading those transcripts, you will be able to get a sense of what the users will expect from your bot in the future, or where the interaction may have continued. The analysis of the happy path will inform the next iteration of your design, either inspiring a new use case, or in the definition of follow up intents, or in the adjusting of existing flows.
I hope that you enjoyed our step to step guide about how to create a bot. Please feel free to leave any questions in the comments below.