I was recently demonstrating Power Virtual Agent to somebody who was suitably impressed with how easy it was to create a chat bot without any technical skills. Unfortunately when I explained that Power Virtual Agent costs $1,000 per month for 2,000 sessions they were suitably unimpressed. They asked me if I could suggest an alternative. So I decided to take a look IBM’s Watson Assistant to see how it compares as its pricing is very competitive at $.0025 per API call.
I knew nothing about Watson Assistant before I started and I must admit I was pleasently surprised as how easy it use it to create a chat bot. Just like Power Virtual Agent it has an easy to use NoCode graphical designer allowing somebody without any tech skills to create a chat bot.
Watson Assistant create bots in a slightly different manner to Power Virtual Agent. It has the concept of intents that the are used to determine the purpose of the users input. These are like triggers phrases in Virtual Agent Topics. Watson’s use Natural Language Processing (NLP) on the intents to determine what the user’s intention.
Each intent is prefixed by a # and consists of a set of phrases. Intents can be imported and exported separately from the conversation flows.
Dialogs in Watson are the conversational flows and Watson has a visual designer for creating Dialogs. It has branches that link the processing in that branch to an intent.
Within each branch there are nodes that can be used to respond to the user and to accept input. The designer is not as visually appealing as Power Virtual Agent however you use multiple logical operators like OR conditions on a node line.
Power Virtual Agent recently introduced the concept of entities which have existed in Watson Assistant for a while. Entities in Watson are objects that relevant to the users conversation so for example if wanted to buy a product you would create a @product entities for your dialog. Watson has out of the box system entities like @sys-date which can also be used in your bot.
Extracting entities from the users input seems to be one of the strengths of Watson Assistant. So if the user entered “I want an appointment on Friday” Watson could populate the @sys-date entity and but not be able to determine the required time of the appointment and populate the @sys-time entity. The Dialog can then test if the @sys-time is populated and prompt the users accordingly.
Watson Assistant allow you to move your intents and dialogs across environments by exporting and importing them as a Json files. At this point in time Power Virtual Agent does not have support for moving Topics across environments.
In conclusion I must admit I would consider using Watson Assistant if I need to create a chat bot. I think the designer and range of channels supported in Power Virtual Agent is superior however Watson Assistant is significantly cheaper and Natural Language Processing (NLP) engine does seem to be better.
There are other factors to consider when selecting a bot platform such as integration and authentication but I am not going to cover those in this post. I did try to call a Power Automate Flow from my Watson Assistant bot by using a Web Hook but got a 400 error and I am currently trying to figure this out.