In this article, I am going to talk about the 3 reasons that I believe chatbots fail.
But before we go there, let us distinguish technical failure and commercial failure.
Technical vs commercial failure
A good example of a technical success but commercial failure is the Segway. It was launched with a LOT of hype, and it actually lived up to the hype! That is, it was a compact, motor powered vehicle which could actually balance and autocorrect itself, and it did travel to the speeds which were announced.
But it was not a commercial success for a lot of reasons which have already been discussed many times.
So just because your chatbot doesn't have a positive ROI doesn't mean your bot is a technical failure.
In this article, I am going to talk about the technical aspects since that is the main thing I specialize in and focus on. I will leave it to people who have more knowledge about business to write/think/opine about the commercial side of bots.
1 Unreasonable expectations about a bot's "intelligence"
Yes, people sometimes have completely unreasonable expectations about a bot's intelligence.
At its essence, a bot framework lets you do only a very basic task - take whatever the user says and find a "best match" to a predefined set of training phrases. Now a bot framework may use different ways of doing this, and I don't personally think all bot frameworks are the same when it comes to doing this matching. But that is really the extent of your bot's "intelligence".
So it is important for the entire bot building community - the bot framework developers, those who use the bot frameworks to build bots, as well as those who are asking for the bots to be built - to get an understanding of the capabilities of bots before building them.
2 The assumption that "There are no errors in a conversation"
"Just settle for less".
I sometimes feel that is what the current bot framework creators are saying when they say things like "In a conversation, there are no errors".
Unfortunately, there certainly are errors in a conversation.
When the bot cannot understand what the user said, you would consider that an error.
When the bot fails to provide a path to recover (from not understanding), that is an error too.
If the bot repeats itself many times for no good reason, that is an error too.
Does it mean you can create a bot which can handle everything the user throws at it? No.
(Speaking of which, even humans cannot do that. Haven't you ever thought of an excellent comeback to some unpleasant comment about 24 hours too late?)
I am not suggesting that you can build a perfect, error-free bot either. But I am objecting to the notion of approaching bot building with this idea that "in conversation, there are no errors".
3 Slot filling
I wrote an article why I avoid slot filling.
I created a mini-course explaining slot filling because I am not sure people understand what it is and how it actually works. If you did, then you will also understand why it frequently sets your bot up for failure.
In fact, I think slot filling is one of the worst ideas to have been embraced by the entire bot framework community (I mean the specific implementations. I think the concept is a good idea, but the feature is not). It very rarely works as expected.
The second and third points are closely tied, in my view. I think the biggest issue with features like slot filling is that you lose control of the conversation flow (as the bot builder), and you are then forced to settle for less.
What do you think? Leave me feedback in the comments below!