What are bots?
A bot, also known as chatbot or simply bot, is a computer program that uses techniques of, more or less advanced, artificial intelligence that allow to interact with humans and especially execute tasks and answer questions posed by natural language or simplifications of it.
The ways to interact with bots can be many. The most common is integrating them into a chat conversation, but bots may also have specific mobile apps or be part of another main application.
What types of bots there are?
There may be many ways to classify bots: for their intelligence, for the user interface, for the integrated technologies, for the platforms where you can find them, etc. But we believe that a useful way to classify chatbots is the one that Mindmeld makes, which contrasts the "intelligence" of the bot to the type of user interface it has.
So we distinguish four types of user interface according to their intelligence:
- navigation by click recognition
- by keyword matching
- by structured phrases and finally
- by natural language
As always, this classification is strict, but in reality we have chatbots that combine several types of interfaces. It is the case of chatbots that combine the use of keywords to start actions, but that also offer navigation by click to complete them. There are also chatbots that either allow the user to interact by typing keywords or by clicking buttons in contextual menus.
Navigation by clicks chatbots
This type of chatbot interacts with the user through context menus so that conversation involves iterations of offering a menu of options to the user and expect this to select one.
Interaction with such bots, despite being the most rudimentary are fluid enough, allowing users to perform complex actions quickly and accurately.
Keyword recognition chatbots
In this case the user types keywords that she knows that the bot recognizes, then the bot responds with actions.
The conversation here is more real as it looks like it could be a chat with another person, even though the content of user messages must be very rudimentary.
Structured sentence recognition chatbots
These chatbots can understand not only keywords but whole sentences that follow a specific syntax (recognized by the bot).
A bot recognizes structured sentences in user's text is more advanced than the previous two because it allows users to express themselves in a language much closer and more open. But at the same time can be the most frustrating of all because of the complexity of human language is very high. Often small details of a sentence with a meaning very clear and obvious to the user can become unrecognizable by boat.
A key element that emerges from these types of bots is the smart detection of the context in which the user is talking. This context is vital to interpret what humans are saying and humans jump very easily from the current context to a more or less closer one without losing the sense of the conversation. For example, when in the middle of a flight booking to Geneva one says that after I'll need a hotel in Montreal. For a bot,this may be extremely difficult to manage. This is also another source of frustration for humans.
Bots that recognize natural language
The first that come to mind are Apple's Siri, Echo in Amazon's Alexa, Google Now or Microsoft's Cortana.
These bots are the ones that get closer to human language, designed to really follow human dialogues, without any restrictions on structures or forms. In these cases the user can actually carry out fluid conversations with ease.
The large investment in resources, whether in regard to logistics or engineers, make this type of bots only available to large corporations. However, nothing makes these corporations to make them available either for free or paid.
In what cases can bots be useful?
Bots for call centers
The first idea that arises at business level is to create bots to replace call center workers, ie customer assistance bots. If a company succeeds in redirecting much of customer's queries to a bot, savings in staff costs can be significant. Usually the success of these bots is inverse proportional to the complexity of the tasks to be carried out, the more complex the less use has the bot .
A similar use is to facilitate the consultation of FAQs.
Bots to manage groups
Another typical use of bots is to assist in the management of social networking groups. They are especially used in programs such Telegram or Slack.
Bots to review information
When, at a particular time, we want to know, say, the weather forecast, just open Poncho bot in Telegram. In the same way that we will ask to a friend we can ask Poncho and he will respond with the current forecast in the short or medium term. We can also tell him to periodically send forecasts to our telegram conversation.
Similarly there are bots related with stock market news and many other areas.
Bots to automate tasks
Another use of bots is to help automate tasks. Especially in technology companies we have examples of robots like Hubot designed to automatically execute scripts under the command of engineers at GitHub. On a personal level we can use IFTTT bot to automate tasks commonplace in our digital everyday.
Bots for advising
H&M has a bot that helps to select "outfits." What it does is to suggest clothes, then the user only has to indicate if she likes them or not. Directed by user indications the bot saves favorite and discarded clothes and then is able to make better outfit proposals. It is also possible to buy clothes.
Bots to play
Most veterans will remember those command line games consisting of conversational adventures such as La Aventura Original. Well, there are bots of the same style such as escape the haunted forest.
There are also bots for casual games and most common types of puzzle and trivial questions.
Platforms that support chatbots
While a bot can be integrated directly into an app or a mobile website, it is common to create them in cloud platforms that support them, usually provided by the most popular social networks. This way bots are much closer to the user who does not even need to open an App or to go to a website, as you can find them in your usual social network.
The big exception is as you know WhatsApp, which by now that does not support bot integration.
But all the other platforms, as Facebook Messenger, Telegram, Slack, Kick, and many more, are giving support for bots. Depending on the target audience one will want to integrate the bot into one or several platforms.
AI services for chatbots
When developing a bot we don't program it from scratch. We take advantage of the services that already exist on the web and help us in two areas. Firstly, by solving much of the architecture of the chatbot and secondly by providing solutions for machine learning already trained in specific contexts.
We can cite, for example, the famous Watson from IBM or Dialog Flow, recently acquired by Google.
Which is the best programming language to develop a bot?
A bot is nothing more than a computer program hosted on a server. This program can present one or more user interfaces (within a site, an app, etc.) or integrate with other systems via WS.
So any programming language with input / output capabilities will be ok. Let's say that among the most popular languages, all are fine. Ruby, Python, Go, Java, C #, even php. But it is also true that the use of JavaScript is becoming popular.