We have a range of platforms and methods for developing chatbots. Each chatbot has its own personality. It all depends on who the users are and how they use it.
At a high level, any chatbot would fall under one of the below types
Rule-Based Chatbots: They are guided chatbots where the bot guides the user by prompting options for selection until the final response.
Smart Chatbots: They understand the context and emotions of user queries and respond accordingly.
Hybrid Chatbots: It involves both rule-based and intelligence-based approaches to better understand and meet user needs.
A standard chatbot would require an NLP, backend code to generate responses, and an optional live support executive if the bot is unable to recognize.
An NLP is required to understand the meaning of the user question and to construct a human-like conversation with users. For each user question, a score is determined for each intent in a bot, and the one with the highest value is most likely the exact matching intent.
Consider the case of an HR bot with three intents and a backend service that collects responses from multiple sources.
When there are multiple chatbots for different departments across the enterprise, It can be difficult for users to remember or recognize which chatbot to use.
The best solution is to build a “concierge/centralized chatbot” that can serve all of the user’s questions intelligently and route them to the appropriate chatbots maintaining a human-like conversation.
This can be achieved in multiple ways
- Concierge bot without an NLP
- Concierge bot with its own NLP
- Concierge bot without an NLP but, directly accessing the NLPs of respective chatbots
Let us consider some scenarios and observe the pros and cons of each:
Let us create a centralized chatbot without an NLP for 3 different chatbots, and allow it to start the conversation with a welcome message with 3 quick replies where it can route to. On the backend will write if-else or switch logic to handle user selection and connect to the respective chatbot.
That’s not a smart idea at all. It lacks the human approach since the customer cannot type his sentence directly (which is the most crucial in a perfect chatbot). An NLP would have improved here, but let’s not spend money on one just yet; we can get away with hardcoding some keywords for each chatbot.
Human_Resouce = [“timesheet”, “hr”, “shift”, “on-call”, “leave”, “hours” etc…]
Financial_Queries = [“financial year”, “salary”, “tax”, “deduction” etc…]
Bank_Policies= [“fixed”, “current”, “deposit”, “credit” etc…]
When a user says “I am unable to submit my timesheet”, since the timesheet keyword is present in the Human_Resource list, the user is connected to the HR Chatbot, and the interaction will continue there until the user closes the conversation.
What if you have more and more separate chatbots?
We can still use the previous method, but as the number of chatbots grows, the bot would be unable to maintain a human-like conversation with users and it would again leave users perplexed while making a selection.