The normal definition of a chatbot is similar to the following.
A chatbot is software that has a conversation with you inside a chat platform such as Facebook Messenger or Slack.
The question is is it a chatbot because it is software that is delivered in the chat platform or it because the UI is conversational using a text or voice as the method of conversation? Or is there another reason it is defined as a chatbot?
It’s true that if software is able to enter into a conversation with you as though it was a human participant in the chat there is no doubt it would be classified as a chatbot. But is there more to it?
We are told that the holy grail, perhaps, of the chatbot industry (though technologically out of reach) is that a chatbot one day could be so good you couldn’t tell whether you were speaking to a human or a bot (and thereby passing the Turing Test).
Even though this objective is still out of reach it raises some interesting points.
Imagine a chatbot that communicated with you over chat that was indistinguishable from a human. Would this be the best possible way of getting things done?
In some cases it would. You could ask it for example:
“Buy flowers for my grandmother and have them delivered on Friday”
It might ask you some relevant questions, such as how much do you want to spend and what kind of flowers do you want to order but you could very quickly get things done versus the alternative especially if it had access to default data such as her address and your payment information.
The alternative would be cumbersome in comparison. It would involve logging onto a website, selecting the flowers and then entering all the relevant information manually.
The chatbot route might not be the best route if you wanted to get her something very specific but didn’t know in advance exactly what it should be. In that case actually searching on a website might be the better way to do this.
Maybe the best solution would be a hybrid approach where the chatbot handles providing the default information such as the address and also handles payment but you handle the searching for the right type of flowers.
In fact the above would be the best solution even if you had a human personal assistant involved. They might forward you the link to the website so that you could choose the flowers you wanted to send and then they would handle making sure the payment and delivery happened.
Of course for a chatbot the website search could be integrated into the software somehow so that it became a seamless part of the ordering process.
At this point the chatbot interface has expanded beyond text to incorporate a graphical interface.
It turns out that this is a common requirement for chatbots because a purely text based interface is not the most efficient interface to get things done in many cases, even if the chatbot has a human level ability to converse.
Should we expand the definition of chatbot beyond the humanlike conversationalist definition, to a definition that states that chatbots are any software that interacts with humans (or other bots) inside a chat platform? Or should we say that the chatbot is just the conversationalist piece of the interaction and the graphical elements are really just standalone apps within the chat?
Of course the definition you decide to use doesn’t really matter because it doesn’t change how the software is delivered. Ultimately, bot creator software that is built within the chat platform will be the software that offers the best possible experience to the end user, whatever you want to call it.
Could it be that any software that is developed inside the chat platform that users can interact with could be classified as a chatbot? This is a very broad definition.
It’s possible to use the chat platform as nothing more than a universal mobile app platform by leveraging the fact that the chat platform already has a critical mass of users that are already logged onto the platform. In this case the fact that the primary use of the platform is supposedly messaging is irrelevant.
Apps can be delivered on the platform that take advantage of common features of the platform. For example the platform may offer payment capabilities in addition to a common calendar feature and a shared contact list.
Applications can be build on the platform using these common features and the fact that the user is already logged on to deliver a much better customer experience than would be available to the user if they had to download a standalone app, sign-up, add payment details, add contacts etc.
Wechat has implemented this universal mobile app strategy extremely well and it seems as though other chat platforms are heading in this direction.
Is an application that lives in a chat platform but does not use messaging in any way still defined as a bot? Or an application that is 95% graphical and only relies on a conversational interface for 5% of it’s functionality still a chatbot?
It’s possible to argue that even though there is overlap, the thing that distinguishes a bot from an app is the fact that it is materially conversational and has an element of personification i.e. there is the illusion that some personified entity exists independently of the software. This entity can communicate with you over the chat and also deliver graphical software to you as needed.
In this case a bot is defined less by the functionality it offers but more by the approach of personifying software. In this case any application that was developed to appear as though there was a robot personality behind the scenes delivering the software experience with “conscious” intentions would be called a chatbot. This is whether or not the software was delivered in the chat platform of not.
Although this is a largely philosophical discussion with no clear answers, hopefully the discussion itself helps refine your thinking about chatbots, chat platforms, how to program a chatbot,and related software issues.