In the modern AI-enabled world, digital agents or bots (aka chatbots) are an extremely hot topic, which every company no matter of their industry will at least think about at the moment. Many big software vendors like Microsoft, Amazon, Google, you name it are offering their own set of tools and services which developers and architects can use in order to build such a conversational AI interface (aka chatbot). But in this modern world, it is always about being fast and have a short time to market, which often results in releases which are not quite ready. And many AI devs develop bots as digital agents, but forget some really essential key parts, which actually make such a digital agent great and better compared to others. As I often get asked, what the main parts of a great chatbot are and I really spent a lot of time thinking about a good anatomy of a bot, I decided to sketch up the key parts which I think are essential when talking about an “Enterprise Bot Design” and which I want to explain in some words here as well, why they are important.
In order to design a more intuitive and common user experience, your bot should be able to receive and send rich attachments like pictures, videos or even emojis and interpret them. This makes the conversation more human-aligned as many users will communicate with the bot as they do with colleagues or friends. Therefore, the bot should be able to handle different input types apart from text.
Cards are a great way to let your users interact with your chatbot in an interactive and time-saving way as cards offer you the flexibility to give your users predefined input types like buttons combined with images and other UI elements. This will definitively raise your user adoption as users will be able to respond quicker and more intuitive.
Dialogs are the heart & soul of your bot’s conversation design. With dialogs, you can easily design the conversation for various bot use cases. If you want to have your bot being aware of multiple use cases, you can, of course, attach multiple dialogs to your bot’s code and furthermore, you can stack dialogs and design dialog trees with parent-child structure.
In order to give your bot some sort of memory, you can make use of a state service, which allows you to store both user and conversation states. This will help your bot to remember users and the conversations the bot had with the users in order to resume conversations and dialogs at a given point in time later as well.
Detecting the user’s sentiment and act based on various intents is an essential skill almost every bot needs to have. With a service providing language understanding attached to your bot, you can make your “intelligent” and really understand what your users want to tell your bot. This also allows you to fire different dialogs within your conversation based on the user’s intent.
One of the easiest and fastest ways to actually check your bot’s use case is to set up a QnA bot which is able to respond to questions stored in a knowledge base. Setting up such a QnA aware bot is not rocket science and it will actually help you verify if your users will use the bot or not. In addition to that, this is always an extremely helpful use case for employee onboarding or general HR topics.
Before implementing your bot you need to think about the way your bot should behave. Should the bot be a more formal bot or should it be some sort of “new kid on the block” with an attitude? Make sure to align your bot to your corporate communication strategy in order to avoid distraction. Furthermore, be aware that you should also inform your users beforehand that they are actually talking to a machine and not to a human otherwise user adoption could decrease massively.
Working with buttons and other quick response actions make it easier your users interacting with the bot. If your users have the ability to tap on buttons instead of typing the response the communication will be faster and more mobile-friendly.
Give your users the ability to like or dislike responses as they are used to it from other social media platforms where they express their opinion to responses that way. Be sure that your bot will also react based on that feedback the users give the bot.
Especially if your bot’s response takes some time because you need to query other services, for example, you need to give your users visual feedback to let them know that your bot is currently busy with responding to their input. One possible solution could be to add typing indicators to give your users a visual feedback and let them know your bot is responding.
Choose your bot’s communication channels during your design phase in order to check if there are some differences in the way you need to develop your bot. With the Microsoft Bot Framework, it is even possible to write your bot’s logic once and deploy it to various different channels like Microsoft Teams, Facebook Messenger or Slack at the same time.
In order to give your users the chance to talk/write to your bot no matter of the device, they are using you need to deploy your bot to mobile-enabled channels as well. Hence, it is important to add quick response capabilities to make avoid long typing responses for mobile users.
Depending on your use case it could be beneficial that your bot has integrations into other services and systems like LOB apps in order to gather data from those systems and enrich your conversation as well as add more capabilities to your bot.
Single Sign On
If you integrate other services into your bot it is essential that you enable Single Sign On for your users to avoid multiple logins within your bot’s conversation. This will increase user adoption too.
One of the things a bot should be good at is to take over repetitive tasks from your users to give them the ability to focus on the business-critical work or have more time to do innovative stuff.
If you want to give your users the chance to ask your bot for help and let your bot search for users, content or skills this could be one essential feature for your bot which your users will use.
Summing up, this infographic should help you showcase which parts are important and should be included when you are in the phase of designing your enterprise chatbot. Of course, it is not always 100% correct as different use cases require different pieces which make up your bot’s design, but it should give you a starting point when you actually do not quite know what parts to include in your chatbot.