are commonly used for these use cases:
- to help customer support - customer support staff can focus on complex problems while the chatbot answers simple inquiries such as "What are your working hours?"
- to improve customer’s online shopping experience - it can find products, check inventory, recommend products, confirm orders, track shipping, process return and exchange requests
- to book an appointment - hotel reservation, dinner reservation, doctor’s appointment, etc.
In general, chatbots are useful for automating processes that are dull for the customer as well as for the employee working with them.
But do not get too ambitious and try to cover every process with a single chatbot. The more topics you add to it, the more it can go wrong. You are risking too many similar inquiries which should have different responses. First, you will struggle to get it to distinguish such inquiries. And second, when creating a chatbot there is no chance you will think of all the possible inquiries that the user could type, so an unknown inquiry will confuse the chatbot and it will give the wrong answer to the user.
In addition to the scope, you should also think about the dialog. Some users will accidentally enter inquiries to which the chatbot will not know the answer, and that is not such a big problem because even when talking to a live agent there can be a misunderstanding, or an agent does not know the answer to an inquiry. But there will always be users who deliberately want to "break" the chatbot and see which situations it can handle (even I do that to other people’s chatbots 😊). Such situations are inevitable and cannot be eliminated completely, but you can affect the overall impression of the chatbot's behavior in those sorts of situation. This can be achieved as follows:
- briefly inform the user about the possibilities of a chatbot immediately at the beginning of the conversation
- whenever possible, offer the user several options (commonly shown as buttons) to choose from so the chatbot could have more control over the course of the conversation
- for all inquiries for which the chatbot does not find a suitable answer, provide information on further steps that users can take (e.g., email address/phone number to which the user can send an inquiry) or allow a live agent to take over the conversation with the user.
It often happens that a chatbot provides information that the user can quickly find on the same website where the chatbot itself is located. In such cases implementing a chatbot is a waste of time and money, and a source of frustration for the end user. But the development of technology has made chatbots capable of handling more complex processes.
Microsoft has introduced its technology for chatbot development - Power Virtual Agents
The main part of Power Virtual Agents are topics. A topic is a set of specific information that the user wants to know, e.g., information about restaurant opening hours is one topic, information about the possibility of booking a table is another topic, information about what is on the menu is a third topic, etc. Inside a topic we enter triggers and various messages and actions. Triggers are, as their name suggests, the initiators of that topic. If the user enters an inquiry that is similar or identical to a trigger, the chatbot will perform the steps (nodes) listed in that topic. Nodes are added by selecting the "+" sign that appears at the end of the topic or by hovering the mouse cursor over the line which connects the two nodes.
Picture 1: Topic Example
A node can contain one of these options:
Picture 2: List of options
- Ask a question
- Add a condition
- Call an action
- Show a message
- Go to another topic
- End with survey
- Transfer to agent.
The "Ask a question" option expects a certain type of user input and stores it in a variable. In the case of multiple-choice options, Power Virtual Agents will automatically create condition nodes for the offered options which shortens the chatbot development time and reduces the chance that we will forget to create a condition for some of the options.
Picture 3: "Ask a question" option
The "Add a condition" option is used for adding a condition. Power Virtual Agents automatically does two nodes, one in which we enter the desired condition and one for all other cases. The bad thing about this option is that it must go after a message, i.e., the chatbot must first display some generic message (e.g., "Wait", "Checking data", "Just a moment") and only then it can check the conditions.
Picture 4: "Add a condition" option
The "Call an action" option can call an out of the box action for user authentication or an action to connect the chatbot to a Power Automate
flow. Connecting to Power Automate allows the chatbot to perform more complex actions. The chatbot sends the necessary inputs (e.g., the desired date for dinner at the restaurant), a flow completes the requested business process (e.g., checks if the restaurant has available tables on the desired date) and returns the result to the chatbot (e.g., information if there are any free tables).
The user authentication action is especially useful if the chatbot is in one of the languages
supported by Power Virtual Agents. For other languages this action will display the default messages in another language (setting the language is mandatory at the beginning of the chatbot development and you can only choose between the supported languages).
Picture 5: User authentication action
Picture 6: Power Automate flow action
Picture 7: Default messages in the user authentication action
The "Show a message" option is used to display simple messages. Message text can be normal, bold or italic. Messages can contain bulleted lists, numbered lists, links and variables.
Picture 8: "Show a message" option
The "Go to another topic" option allows you to switch the conversation to another topic. Selecting this option opens a list of topics to which the conversation can be redirected.
Picture 9: List of available topics
Picture 10: "Go to another topic" option
The "End with survey" is an out of the box survey action. Power Virtual Agents records survey results and displays statistics in the Customer Satisfaction tab within the Analytics part of the system.
Picture 11: "End with survey" action
Picture 12: Customer Satisfaction tab
The "Transfer to agent" is also an out of the box action that allows you to easily switch a conversation from the chatbot to a live agent
Picture 13: "Transfer to agent" action
Anyone who has at least once in their life had to develop an application knows how difficult it is to return to that code after a few months or even a few years. It is the same thing with chatbots - it is hard to remember the whole logic and reasons why something was done that way. Power Virtual Agents has one great functionality. All nodes within the topic are connected by lines and arranged in sequence which makes it easier to create a chatbot as well as to maintain one.
Picture 14: Structure of a topic
Another advantage of Power Virtual Agents is that it is easy to publish
your chatbot on various channels.
Picture 15: Available channels
However, Power Virtual Agents has some disadvantages. In addition to the already mentioned ones (mandatory preconditional message and default messages in a language other than the rest of the chatbot), I will list some more. These disadvantages are actually functionalities that exist in IBM Watson Assistant and, personally, I find them very useful so I am a little bit disappointed that Microsoft did not take them into account when creating Power Virtual Agents. But as Power Virtual Agents is a new technology, there is always a chance that Microsoft will include some of these in the future.
Power Virtual Agents does not have the ability to:
1. recognize regex
Picture 16: Regex example in IBM Watson Assistant
2. additionally edit messages with HTML code
Picture 17: HTML example in IBM Watson Assistant
3. manually create variables - variables in Power Virtual Agents are created and set to a value only within "Ask a question" and "Call an action" options
Picture 18: Variable declaration in IBM Watson Assistant
4. change the values of variables during a conversation
Picture 19: Changing the variable value in IBM Watson Assistant
5. implement several versions of a response and randomly display them to the user to make the chatbot seem less cold and robotic
Picture 20: Multiple responses in IBM Watson Assistant
6. quickly train a chatbot - in Power Virtual Agents, new user inquiry examples need to be entered manually in a topic while IBM Watson Assistant supports import of a CSV file which contains examples and a quick selection of an intent from a test panel (intent is IBM’s version of topic).
Picture 21: Chatbot training in IBM Watson Assistant
The Power Virtual Agents user interface and the ability to connect to multiple Power Automate flows along with Watson’s advanced functionalities would make an ideal tool for creating chatbots. But while we wait for such a tool, we need to choose an existing one.
In case I need to make a chatbot in a language that Power Virtual Agents supports, then my choice would be Power Virtual Agents because it is easier to use and with the use of Power Automate it can support a number of business processes.
If, on the other hand, I need a chatbot whose messages need customization, then I would choose IBM Watson Assistant.
Whatever your needs for making chatbots are, keep in mind that neither chatbots nor the technologies they are created in are not almighty. The best thing you can do is design a use case, develop a dialogue, try as many technologies as possible and choose the one that covers most of your needs, and enjoy. Chatbots are a very interesting area that is evolving further every day. Who knows which new functionalities will the future bring?