3+ types of chatbots

Choosing the suitable chatbot type for your project

Published on 14-05-2023

As a freelance chatbot developer, the first thing I do when approached by a potential client is trying to understand the type of chatbot the client wants to develop. Gathering all the requirements and determining the chatbot type is crucial for choosing the right tech stack.

It can happen that the client already knows the type of chatbot they want to develop, or they think they do. In this case, as a chatbot developer and consultant, I need to check if the selected chatbot type suits their project goals and needs. For example, it happens sometimes that the client wants a more complex chatbot solution than necessary for their goals, and then they might end up using a more complex technology for a very simple project — this is an overkill and a waste of time and money. Thus, when choosing the type of chatbot for a chatbot project it’s essential to understand the advantages and disadvantages of each type and what each of them is best for.

It can also happen that the client doesn’t know the types of chatbots that exist. In this case I need to explain to them what is available and give them a recommendation based on their needs and project goals.

Many chatbot classifications exist, and in this article I want to walk you through the one I personally use to talk with my clients. I will talk about 3 different types of chatbots: button-based, NLU-powered and Generative AI. I will discuss their advantages and disadvantages, what they are best suited for, the technologies that can be used to build them, and I will also provide examples of each type. I will also shortly mention a hybrid approach which combines elements form those 3 types of chatbots.

If you are a client, this guide will give you a better understanding of what is possible and what to look for. If you are a chatbot developer offering chatbot development services, I hope this guide will help you structure your thoughts and communicate more effectively with your clients.

If you are now in the process of starting a chatbot development project, while reading this blogpost I encourage you to ask yourself two questions:

  1. 1. What kind of problem am I trying to solve with my chatbot?
  2. 2. Is this chatbot type the right tool for my problem?

Let’s get started!

Table of content

  1. 1. Buttons-based chatbots
  2. 2. NLU-powered chatbots
  3. 3. Generative AI chatbots
  4. 4. Hybrid chatbots
  5. 5. Final words

1. Buttons-based chatbots

🤖 Button-based chatbots are chatbots that lack any NLU capabilities and use a set of predefined rules to decide how to respond to user inputs. To interact with the chatbot and get answers to questions, users use buttons or short keywords. These are the simplest kinds of chatbots.

Below are 3 examples of button-based chatbots, by KLM, Botsheets and MoBerries.

Examples of button-based chatbots

💫 Main characteristics of button-based chatbots

  • Button-based chatbots do not have any Natural Language Understanding (NLU) capabilities and as a result, they do not understand human language. Instead, users interact with the chatbot using buttons or pre-defined keywords.
  • Button-based chatbots are rule-based and the logic for this type of chatbots needs to be defined in advance.
  • Button-based chatbots are domain-specific, meaning that they can only perform actions within a certain domain, such as helping you book a flight, and cannot answer questions that fall outside of this domain.

🟢 Advantages of button-based chatbots

  • Simple interface. Button-based chatbots are easy to use and navigate.
  • Full control over the responses. Button-based chatbots are robust and predictable, users can navigate the conversation only via buttons and the responses they see are written and confirmed by your conversation designers.
  • Lower development costs. From the technical standpoint, button-based chatbots are relatively simple to develop. You can use a no-code chatbot builder like Landbot or VoiceFlow, and build a chatbot without having to do any programming. All you have to do is drag and drop the components of your conversation design, and set up integrations directly in the chatbot builder.

🔴 Disadvantages of button-based chatbots

  • Lack of flexibility. Because button-based chatbots don’t have any NLU capabilities, users are restricted by the conversation flows and interactions that you have designed for in advance. Users can’t ask questions in a natural language and need to use buttons to navigate information.
  • Time spent on getting answers to specific questions. Because user’s can’t jump between different steps of the conversation design using natural language, it might take them a bit longer to find the information they are looking for, especially if you conversation design isn’t optimal.
  • Maintenance requirements. Button-based chatbots also require ongoing maintenance to keep the rules up to date as new questions and scenarios arise. As there is no Machine Learning involved, you need to design and develop each new interaction separately.

✅ When button-based chatbot solution might be suitable

  • Chatbots that support a specific set of tasks and answer a limited set of questions. Button-based chatbots are perfect for handling simple and straightforward repetitive tasks and frequently asked questions. For example, you might create a museum website chatbot that can perform 3 most frequently asked actions: provide information on opening hours, explain how to get to the museum, and assist with booking tickets, all via a straightforward button-based interface.
  • Chatbots that require accuracy and consistency. Button-based chatbots are more robust and consistent than other types of chatbots we will discuss, so they are well suited for domains that are strictly regulated and that may require full control over the conversation flow, for example, financial advice chatbots.
  • Chatbots for which the main goal is to share content in a more playful way. Button-based chatbots are great if you want to make your content more interactive. With a button-based approach you can, for example, build a chatbot that tells a story and lets people change the way the story goes by pressing different buttons. Another example is a mental healthcare coach that explains different meditation techniques and gives information bit by bit, allowing users to skip what they already know or dive deeper into what’s new for them.
  • Chatbots designed for users who may not yet know what they are looking for. Button-based solutions can help users navigate the content when they don't know what exactly they are looking for and just want to learn more about a particular topic. A button-based solution might offer a more user-friendly experience if the goal is, for example, to educate people about different laws related to starting a business, and your users are beginners in this area who don't even know where to start asking questions.

❌ When button-based chatbot solution might be not optimal

  • Chatbots that need to perform a lot of complex actions or answer a long list of FAQs. Wrapping a long list of questions and actions into a button-based interface might be challenging. There is a limit on how many buttons you can display on a screen at a time, and with a button-based solution you might end up with a complex menu consisting of many steps before the user reaches the question they wanted to ask. Therefore, if you want your chatbot to support a long list of actions and answer many various questions, it might be more optimal to use a more advanced chatbot solution and allow your users to simply write their requests in natural language. For example, an e-commerce chatbot that helps customers with technical issues or complaints may need to be more flexible and adaptable to meet the specific needs of each customer.
  • Chatbots that require high degree of personalisation. Button-based chatbots may not be the best option if you want to offer a more personalised experience. With a button-based solution, users are limited by the available button options, and since all responses must be pre-written, the chatbot's answers will be generic to fit a broad range of users. For instance, a chatbot designed to offer legal advice should be able to provide responses to various legal situations, some of which may not be covered by the limited options in a button-based chatbot. In such cases, you might want to consider a different type of chatbot.

😓 Most of time and effort when building this kind of chatbot is spent on

  • Designing the conversation flows and user interactions.
  • Writing responses and conversational copy.

🔨 Tools for building button-based chatbots

🪄 TLDR

If you have a limited number of tasks that you want your chatbot to perform or if you’re looking to create a more interactive format for your content, a button-based chatbot can be a great option. However, for more complex chatbots that need to handle a wide range of questions and actions or require high degrees of personalisation, a more advanced chatbot solution may be necessary.

2. NLU-powered chatbots

🤖 NLU-powered chatbots are chatbots that use Natural Language Understanding algorithms to understand human language, and that rely on predefined responses to answer users’ questions. This combination allows the chatbot to be somewhat flexible and understand the meaning behind what the user is saying and at the same time for you to have some control over what the chatbot responds.

Below are two example of simple NLU-powered chatbots, by Zoom and by Upwork.

Examples of NLU-powered chatbots

To better understand what NLU-powered chatbots are, we need to understand two concepts: intent detection and entity recognition.

“Intent detection” means identifying the intention behind a user’s message. For example, if a user says “book a flight from Amsterdam to Lisbon” the intent might be “flight booking.” The chatbot’s algorithm will analyse the message and classify it as belonging to one of the intents defined in advance by the chatbot developer.

“Entity recognition” means extracting specific pieces of information within a user’s message, such as names, dates, and locations. For example, in the message “book a flight from New York to London on July 15th” the entity recognition component would identify “New York” and “London” as location entity and “July 15th” as date entity. Those are the relevant pieces of information that the chatbot needs to understand in order to perform the task.

The way NLU-powered chatbots work is by first identifying the intent and entities from the user’s message and then, once the chatbot has this information, predicting the best response or action from a set of predefined options and displaying it to the user. In a way, you can see NLU-powered chatbots as rule-based, because you need to design in advance the logic for how the chatbot should respond based on the predicted intent.

💫 Main characteristics of NLU-powered chatbots

  • NLU-powered chatbots can understand natural language. This means that users can communicate with them using free text, making them more flexible than button-based chatbots.
  • NLU-powered chatbots use Machine Learning techniques such as intent detection and entity recognition to understand user messages. This enables them to understand various ways of asking the same question without the need to list every possible way a user can ask a question.
  • All possible categories of questions that the NLU-powered chatbot should be able to answer as well as the corresponding responses must be pre-defined and programmed into the chatbot’s system in advance.
  • Just like button-based chatbots, NLU-powered chatbots are domain-specific, meaning they can only answer a limited set of questions related to that domain. For instance, an NLU-powered chatbot for booking flights would be designed to only provide information about flights and related topics and would not be able to answer questions outside of this domain.

🟢 Advantages of NLU-powered chatbots

  • Flexibility & better understanding of user intent. Because NLU-powered chatbots use Machine Learning techniques to understand the meaning behind the user message, they are more flexible than button-based chatbots and can understand and respond to a wider range of user requests.
  • Efficiency. Users can interact with NLU-powered chatbots using natural language and can get responses to their questions directly, which is faster and more efficient than using button-based chatbots where you need to navigate through the button menu to find what you are looking for.
  • Increased personalisation. Because NLU-powered chatbots (partially) understand the meaning behind the user message and can extract relevant entities, you can customise the responses depending on the intent and entities and provide more personalisation, which makes the interaction with the chatbot feel more human-like. For example, with NLU-powered chatbot you can give different responses to the user that said “I need emotional support to deal with breakup” and “I need emotional support to deal with problems at work”, understanding the context.
  • Relative robustness. With NLU-powered chatbots you have more control over what exactly the chatbot is going to respond, given that the intent detection component correctly recognised the meaning behind the user message (which is not always true). Because NLU-powered chatbots use pre-defined responses and rules to answer the user message, they can provide more consistent and accurate responses than Generative AI chatbots.
  • Getting to know your users. One non-obvious advantage of NLU-powered chatbots is the ability to gain a deeper understanding of your users. As users can write in free-text, you can log the data and use data analytics techniques to gain insights into what your users are most interested in. You can then use this analysis to develop your product further. With a button-based solution, you can only analyze which buttons your users click. You won't be able to find out what your users want that you haven't yet designed for unless you conduct a separate user research study.
  • Adaptability. By analysing conversation logs and user interactions, chatbot developers can iteratively update training data and improve the chatbots’ performance over time learning from real users.

🔴 Disadvantages of NLU-powered chatbots

  • Limited question coverage. NLU-powered chatbots are only capable of answering questions for which you have accounted. If a certain question does not have a pre-implemented response, the chatbot will not be able to handle it.
  • Potential for incorrect intent detection. NLU-powered chatbots rely on high-quality training data to properly predict user intent. Depending on the quality of your data and machine learning models, intent detection might not always work correctly, which can lead to inaccurate predictions, responses, and a poor user experience. Therefore, it is important to closely monitor your training data and ensure that it is clean and without contradictions.
  • Development time. Developing an NLU-powered chatbot requires significant time and resources for conversation design, training and development, as well as ongoing maintenance if you want to keep improving your chatbot.

✅ When NLU-powered chatbot solution might be suitable

  • Chatbots that need to answer a wide range of questions. NLU-powered chatbots allow users to type in natural language and, using intent detection, can understand which of the pre-defined sets of questions the user is asking. This makes NLU-powered chatbots a great solution for chatbots that need to answer long list of questions, such as troubleshooting chatbot that helps users understand why the product is not working and how to fix it.
  • Chatbots where accuracy and consistency are important. As you write responses for your NLU-powered chatbots yourself, you have some control over how the chatbot responds. This makes it a good choice if you want to develop a chatbot that needs to adhere to specific guidelines or regulations, such as a legal or financial advice chatbot. These chatbots need to provide accurate and consistent information to users, and the NLU-powered approach can ensure that the responses align with the guidelines and regulations.
  • Chatbots that require some degree of personalisation. NLU-powered chatbots can understand different aspects of user message and adapt their response based on intent and extracted entities which allows them to provide a more personal experience. For example, imagine you are building a customer support chatbot for an e-commerce website, and you want the chatbot to help your users navigate your products and help them make a decision. With an NLU-based chatbot, you can account for unique needs and requirements that you users have which can’t easily be done if you have a button-based chatbot that has a fixed set of buttons.

❌ When an NLU-powered chatbot solution might not be optimal

  • Chatbots with linear conversation design. If you have long linear conversations, then NLU-powered chatbots may be overkill, and a button-based solution may save you time and money.
  • Chatbots where you need 100% control over what you show to users. While NLU-powered chatbots ensure all the responses are written in advance, there is still some machine learning involved and sometimes it can make mistakes and predict the wrong intent. If you really need everything to work correctly in 100% of cases, then a button-based solution is more suitable.
  • Chatbots that need to handle long messages and complex multi-intent queries. NLU-powered chatbots work best for short straightforward user queries and can get confused if the question is too long or consists of mixed intents. You have two options: you can either use an NLU-powered chatbot solution and teach your users to talk with your chatbot using simple short messages, or you can consider a more advanced Generative AI approach.
  • Chatbots that need to remember the context of all previous conversations. NLU-powered chatbots have limited memory and can only take into account some context and a few previous messages and thus may struggle with longer more complex interactions. To address this issue, chatbot developers can create a component that extracts important pieces of information from the conversation and stores it in a database for future reference. This allows the chatbot to access the user's previous interactions and respond in a more personalised and contextually relevant way. However, even with this component, NLU-powered chatbots can only remember the pieces of information that have been accounted for, and won’t be able to memorise all the nuances. Moreover, building such a "memory component" can be quite time consuming.
  • Chatbots that need to sound more conversational and be able to talk about anything. NLU-powered chatbots are limited by the questions that have been accounted for in your conversation design. If you want your chatbot to be able to engage in small-talk and respond with something at least relatively relevant to any user message, then a Generative AI approach or a hybrid approach might be more suitable.

😓 When building this kind of chatbot, most of the time and effort is spent on:

  • Designing the conversation flows, backend logic, and architecture.
  • Creating and maintaining the library of responses and actions the chatbot can perform.
  • Collecting training data and ensuring that it is clean and free of contradictions.

🔨 Tools for building NLU-powered chatbots

🪄 TLDR

NLU-powered chatbots are a middle ground between button-based and Generative AI chatbots. They offer greater flexibility than button-based chatbots and more control over responses than Generative AI chatbots.

NLU-powered chatbots are a great option if you want to offer a more personalised experience for the user, as they allow free-text input and offer a higher degree of flexibility than button-based chatbots. They are also a good choice if you are aiming for a more conversational experience and want to let users type something in a natural language.

NLU-powered chatbots may not be the best choice if you want complete control over your data, the a button-based solution might be more suitable in this case. And if you want your chatbot to be more creative and generate responses without you having to write them, then generative AI chatbot might be a better option.

3. Generative AI chatbots

🤖 Generative AI chatbots (GPT-based chatbots) are chatbots that use something called Large Language Models (LLMs) to understand user message and generate unique responses to user queries in real-time. Rather than writing the responses like for NLU-powered chatbots, for Generative AI chatbots you need to write instructions for the chatbot on how to generate the responses automatically. You might provide the data the chatbots can use to make a response and you can give a few examples of how to respond, and the chatbot will be able to respond to other questions by analogy.

Below are 2 examples of Generative AI chatbots, by Replika and by Loora:

Examples of Generative AI chatbots

💫 Main characteristics of Generative AI chatbots

  • No predefined responses. Unlike button-based and NLU-powered chatbots, generative AI chatbots do not rely on predefined responses or actions. Instead, they generate responses on the fly based on the input they receive. You don’t need to define exact responses in advance, instead you just need to provide a prompt, an instruction on how you want your chatbot to respond in different situations, and the chatbot will learn how to respond based on the examples you provide.
  • Responses are creative and personalised. Generative AI chatbots have an ability to generate unique and creative responses, rather than simply providing factual or transactional information. Generative AI chatbots can be trained to learn from previous conversations and adapt their responses to individual users, creating a personalised experience.
  • Contextual understanding. Generative AI chatbots can understand the context of a conversation and generate responses that are relevant to the current conversation topic.
  • No domain limitation (by default). Generative AI chatbots can in principle talk about anything, and unless you develop safeguards they would respond to any question that the user asks.

🟢 Advantages of Generative AI chatbots

  • Flexibility. Generative AI chatbots can handle a wider range of user questions and requests, even those that have not been pre-programmed into the chatbot. So in theory generative AI chatbots can talk about anything (although its responses might not always be accurate and truthful).
  • Development speed and scalability. With Generative AI chatbots it’s generally easier to add new features without high development costs, if you want the chatbot to answer a new set of questions, you can often simply provide the necessary data and the chatbot will be able to learn and respond. However, it's important to note that if you require any actual backend logic (connecting with APIs) or additional dialogue management, additional development work may be needed.
  • Creativity. Generative AI chatbots can generate creative and novel responses, making the interaction with the chatbot more engaging and enjoyable for users.
  • More conversational experience & human-like interactions. Generative AI chatbots can mimic human-like interactions and emotions, providing a more natural user experience.
  • Multilingual support. Generative AI chatbots support multiple languages out of the box, making them more accessible to users around the world.

🔴 Disadvantages of Generative AI chatbots

  • Hallucinations. Large Language Models (LLMs) used by Generative AI chatbots generate responses automatically and might sometimes generate responses that are not true, and are not based on any real-world facts or information (”hallucinate”). There are however also special techniques and safeguards you can use to minimise hallucinations.
  • Lack of control. Since generative AI chatbots generate responses automatically on the fly, it can be difficult to control the output. There is, for example, the potential for the chatbot to generate inappropriate or offensive content. This lack of control can be a problem, unless you develop extra safeguards.
  • API costs. The cost of using GPT APIs vary depending on the usage and the models you choose and if you are building a chatbot that requires a lot of API calls and latest LLMs, the costs can add up quickly. Building good quality in-house LLMs is also not quite an option just yet because doing so requires powerful machines and lots and lots of training data which smaller companies don’t usually have access to.
  • Data sensitivity. Just like with any other chatbot builder, there are risks associated with sharing personal information with third-parties. You should not feed sensitive and confidential information into GPT providers that could potentially help identify the user. While GPT providers typically have policies in place to ensure that users' personal information is kept confidential, it's also important to ensure on your side that your chatbot complies with data protection regulations and that your customers know how their data is being used. One solution to keep your user’s data safe is to anonymise it before sending it to GPT providers, making it personally non-identifiable.

✅ When Generative AI chatbots approach is suitable

  • Chatbots that need to handle open-ended conversations. Generative AI chatbots are ideal for projects where the user might ask questions that are not explicitly programmed into the system. For example, if you are a building a language assistant that need to be able to talk about any topic, Generative AI approach might be a great choice.
  • Chatbots where the user's input is highly varied. Sometimes, you may want the chatbot to let users ask any question about lengthy pieces of information, such as your product documentation. These questions differ a lot per person and it may not be possible to wrap them all in one logical conversation design like we do with button-based or NLU-powered chatbots. In such cases, Generative AI chatbots offer a more user-friendly approach by letting users navigate your content themselves and ask what they are interested in without limitations.
  • Chatbots that need to provide personalised responses. Generative AI chatbots have a better memory than NLU-powered chatbots and thus can remember the context of conversation and can reference this information in their responses. This makes them ideal for projects where providing personalised assistance is important, such as chatbots acting as customer support agents helping users troubleshooting product-specific issues.
  • Chatbots where creativity is more important than control over the responses. Generative AI chatbots are great for building chatbots that do not have to follow strict guidelines and for which creativity of responses is encouraged. This can be, for example, a coach-chatbot that provides daily inspiration and motivation, or a chatbot designed to help users brainstorm ideas.

❌ When generative AI approach isn’t suitable

  • Chatbots that require a high level of accuracy and precision. Generative AI chatbots are based on probabilistic models and they may not always provide accurate or precise responses. If the chatbot needs to strictly follow regulatory requirement and salways provide accurate information, such as medical or legal advice, a generative AI approach may not be the best option. There are however tricks to improve that, but that’s a topic for another blogpost.
  • Chatbots that require strict control over the conversation flow. Generative AI chatbots generate responses based on the input they receive, which means that the conversation can take unexpected turns. Making your chatbot strictly follow a specific conversation flow and ask questions in a certain order, is more difficult (but not impossible) with generative AI approach.
  • Chatbots that only need to handle short and simple interactions. Generative AI chatbots may be an overkill for simple and straightforward interactions that can easily be handled with button-based or NLU-powered chatbots.

😓 Most of time and effort when building this kind of chatbot is spent on

  • Prompt engineering and fine-tuning the chatbot's personality and tone to align with the brand's voice and values.
  • Cleaning the training data to ensure that it is accurate, consistent, and free of contradictions.
  • Developing safeguards to make GPT models respond according to the data you provide and prevent them from generating irrelevant or inappropriate content.

🔨 GPT providers for building Generative AI chatbots

TLDR

Generative AI chatbots are great at providing a more conversational and personalised user experience, but they also come with some downsides. Generative AI chatbots are less controllable than button-based or NLU-powered chatbots and may not always provide accurate or appropriate responses. It's important to carefully evaluate your needs before deciding whether a Generative AI chatbot is the right choice for your business.

Ask yourself:

  • What’s the level of control you’d like to have over chatbot’s responses?
  • How critical is it for your business to provide users with 100% accurate & truthful information?
  • Are there simpler chatbot approaches to meet your business needs?

+ Hybrid approach

This blogpost won’t be complete without mentioning a hybrid chatbot development approach that combines the strengths of button-based navigation, NLU-powered intent detection, and Generative AI. Hybrid approach is now becoming more popular for good reasons, because by using all three approaches where necessary, developers can create a chatbot that provides the best of all worlds.

The hybrid chatbot can, for example, use buttons to provide quick access to frequently asked questions and actions, use intent detection to understand simple requests written in a natural language and use Generative AI component to generate creative and personalised responses for open-ended questions and provide a more engaging user experience.

I’ll talk more in depth about the hybrid approach in my other blogposts, stay tuned.

🔨 Tools for building hybrid chatbots

Final words

Choosing the right type of chatbot is crucial for the success of your project, as it will determine the tools you use, project architecture, and conversation design.

It's important to start with a clear understanding of your business case and project goals. Different kinds of chatbots are suitable for different tasks, and each approach has its strengths and limitations. By identifying the problem you are trying to solve and your project requirements, you can determine which type of chatbot is best suited to your needs.

Here is a quick comparison table of different types of chatbots:

Button-based NLU-powered Generative AI
domain-specific ❌ 
accepts free text ❌ 
requires predefined responses ❌ 
requires training data ❌ 
is controllable ✅ ❌

When starting your chatbot development project, it's important to clarify your goals and requirements:

  • What problem are you trying to solve?
  • Do you want to automate manual tasks, drive engagement, generate more leads, or offer a conversational experience?
  • How many questions should your chatbot be able to answer?
  • How much control do you want over the responses?
  • Do you need the chatbot to understand natural language, or is button-based navigation sufficient?

Keep your project goals and requirements in mind when choosing the chatbot type. It's easy to get caught up in the hype of advanced AI solutions, but sometimes a simple button-based chatbot can be the most efficient and effective way to achieve your goals. Similarly, sometimes a more advanced solution is necessary and justified.

I hope this blog post helped you clarify some things and understand when using a more advanced solution makes sense and when you can stick to a simple & effective solution. If you're unsure which approach is right for you, you can reach out to me at lena@shakurova.io to schedule a consultation and discuss which type of chatbot would be suitable for your project.

Do you want to get updates?

Subscribe to get regular tips on conversation design and chatbot development.
You can also contact me using this contact form
Location:Amsterdam, Netherlands
Copyright © 2021 All rights reserved
Let’s start a conversation