...

How to Create Smart FAQ Chatbot Without Coding (For Web & WhatsApp)

Illustration: Jana PĂ©rez
nocode faq bot tutorial

FAQ pages are the most common way for businesses to ease the demands on their online customer support by answering the most frequently asked questions automatically. Their purpose is to be quick, simple and helpful to both parties. While there has always been an emphasis on making FAQ pages easy to search and scan through, it’s FAQ bot that became the trendiest, more natural, way of enabling self-service.

Nevertheless, many businesses are still shying away from the idea of an interactive FAQ bot because of perceived complexity. However, today, using the right tools and processes, it’s possible to build an FAQ chatbot without coding background.

No kidding.

This article will cover FAQ chatbot basics and building processes for a simpler rule-based as well as the more challenging NLP chatbot in order to create an optimal conversational FAQ design that works best for your business.

Why Choose FAQ Bot Over a Static FAQ Page?

90% expect self service

According to the Global State of Multichannel Customer Service Report by Microsoft, over 90% of consumers expect a business to offer a self-service support portal or FAQ page. In fact, another study showed that 67% of consumers actually prefer self-service over talking with a human agent. So, at this point, it’s really not a question of whether or not to have the FAQ section but rather how to deliver it in the most effective way possible.

But why chatbots?

Simply put, the technology is getting better and consumers are becoming more and more accustomed to the idea of talking to a bot. Instead of having to search through a an FAQ page - no matter how well-organized - they can get to the point quicker by typing or saying a question they want to ask directly.

Furthermore, chatbots are far easier to adapt, making the experiences frictionless on the desktop as well as mobile. After all, there isn’t anything more natural for mobile communication than texting. Plus, bots allow you to reach out beyond your website or app and be there for your clients on the instant messaging apps they already use.

Being present and ready to help on multiple channels is more important than ever. According to Aberdeen Group Inc, business with the best omnichannel customer engagement strategies retain 89% of their customers, on average, as opposed to the 33% average rate for businesses with weak omnichannel strategies.

So, let’s have a look at how you can build an FAQ chatbot for the web or a messaging app like WhatsApp using a rule-based as well as an NLP approach.

Choosing Bot Format

Choosing to make a bot that answers questions is just the first step.Before you go any further, you need to examine your FAQ needs. The amount and complexity of your FAQ database, as well as channels where you want to publish the FAQ, will help you determine which type of chatbot will serve and help your customers in the most efficient way possible.

You can build a rule-based chatbot, NLP-based bot or bot that uses a combination of the two.

Rule-Based FAQ Bot

This kind of bot doesn’t rely on AI but rather follows a decision-tree conversation structure. It’s driven by a series of predefined rules designed to solve specific problems or achieve particular goals. With rule-based bots, conversations are mapped out like a flow chart, limiting and controlling user questions and responses.

Rule-based chatbots can be simple or incredibly complex. However, they never allow users to leave the predefined conversational flow. In this case, personalization happens through choice-making and information conditioning.

Recommended Channel & Use:

Website or any other interface that allows for rich responses such as buttons or images. Most useful in cases when the number of questions and answers is fairly limited and/or you need to get an FAQ up-and-running very quickly (e.g. FAQs for one time events or small companies with a narrow focus, etc.)

Advantages:

Rule-based bots allow you to give your FAQ design personality as well as a good level of personalization for a more pleasant experience. For instance, if a customer clicks to see the shipping rates, you don’t need to show the list of all the countries where you deliver. Instead, your bot asks “Which country is the delivery for?” allowing you to display on the information relevant to the user.

Furthermore, since information gathering happens as part of a conversation, you can use the bot’s personality to drive your brand image as well as overall values.

Disadvantages:

A bit awkward to use on interfaces that don’t allow for rich responses. Not user-friendly for extensive FAQ databases.

NLP-Based FAQ Bot

NLP (Natural Language Processing) is a small sub-section of AI that deals with linguistics. The ultimate objective of this technology is to process, analyze, decipher and make sense of the natural human language in a way that is valuable. It may but doesn’t have to be enriched by machine learning that enables the bot to learn from experience, not just training.

‍If you want to learn more about how natural language processing chatbot works, check out our latest article on the topic!To give you a better idea, a trained NLP bot can understand the following information in any format it has been trained for:

  • “I want to make a table reservation for 4, tomorrow at 8:30 pm.”
  • “I wanna make a reservation
 a table for 4, tomorrow at 8:30 pm.”
  • “Book me a table for tomorrow at 20:30, four guests”

However, the NLP bot doesn’t “understand” in the same way a human does. It’s trained to identify certain bits of information inside an unstructured natural text, pull them out and carry out the actions that have been associated with that intent. If you want to learn more about training your own AI FAQ Chatbot, read our new article!

So, what the bot REALLY sees are highlighted and instantly categorized data. The bot knows that in the context of “reservation” a number (4, four) or number-word combinations (4 people, 4 guests, table for 4) refers to a number of places that need to be reserved.

The main difference between NLP and the rule-based bot is that NLP bot doesn’t depend on a pre-defined conversation flow. It allows the user to ask about what they want to find out right off the bat, using words that feel natural to them.

Recommended Channel & Use:

The NLP bot is great for every interface. However, it’s particularly useful in limited user interfaces (e.g. WhatsApp) where the user experience depends solely on typed input. Using NLP is particularly hand if your FAQ knowledge base is too extensive to be comfortably built into a conversation tree.

Advantages:

NLP FAQ chatbot can not only streamline personalization by allowing the user to go straight to the point but also communicate its personality perks in a more natural way by engaging in small talk. Plus, its flexibility allows you to implement the bot on any interface from a landing page to WhatsApp without having to make changes.

Disadvantages:

Building an NLP bot is more complicated than a rule-based bot. Furthermore, a poorly trained NLP bot can lead to negative conversational experiences and customer frustration. If your product or service is too technical or complex, users might not always be able to formulate the questions, so leaving them without any structure might backfire.

Rule-NLP FAQ Hybrid

As you have probably guessed, a hybrid bot combines the elements of a rule-based and NLP chatbot.Indeed, incorporating NLP inside a rule-based bot structure is possible.

How?

Well, thanks to the growing number of no-code builders and their integrations. For instance, Landbot now enables Dialogflow integration that allows you to take advantage of Dialogflow’s NLP capabilities as well as the control over the conversation characteristic of the rule-based chatbot; helping you build a dialogflow-WhatsApp chatbot too.

Recommended Channel & Use:

Anywhere. You are able to adjust bot mechanics based on the designated final interface. Good for complex or simple FAQs.

Advantages:

A Simpler way of working with NLP.

How to Make an FAQ Bot (Without Coding)

Let’s take a look at how creating an FAQ chatbot works in practice, using Landbot with Dialogflow integration.

***

If you are not familiar with one or both tools visit our:

Guide to Creating Chatbots with Dialogflow Integration

Guide to Creating Chatbot with Landbot Builder

‍

1. Create FAQ Agent in Dialogflow

If you don’t have a Dialogflow account, create one. Although you will need to provide card details, the service is free and you won’t be charged. It’s simply to ensure you are a real person.To build an FAQ agent in Dialogflow, simply select the “ Create Agent” option on the left sidebar.

create-agent-chatbot-using-dialogflow

Next, you will be required to name your agent, select the language and time zone.To create your first agent, simply click on the “+ Create Agent” option in the side menu on the left.

create-faq-chatbot-in-dialogflow

We named our agent quite simply “FAQ” and proceeded to create intents.

2. Create Intent for Every Frequently Asked Question

Intents in Dialogflow help your agent identify what information the user/customer whats to find out or actions he or she wants to complete.Each agent comes with two default intents:

  • Fallback Intent (gets activated every time the agent is not able to match user input with any of the specified intents)
  • Welcome Intent (responds to human conversation starters such as “hey” “hi” etc.)

We took our list of common questions and answers from the official Uber Eats FAQ page and began creating intents for each individual question.

‍If you think your list of questions is too long or feel that some of them are not that frequently asked, consult your support team. For example, the first question on the list was “What is Uber Eats?”

Hence, we created a corresponding Dialogflow intent “About”When you click to create an intent in Dialogflow, you are presented with a number of options:

creare-intents-for-FAQ-questions

Since FAQ is probably the most straightforward of all self-services, the only two areas you will need to build a question intent is “Training Phrases” and “Responses”.

Defining Training Phrases

Essentially, the Training Phrases section enables you to train the agent to understand what the user wants to know by helping it recognize the variety of ways to ask about that particular information. Below are the training phrases we assumed users could use to ask the “About” question:

faq-bot-intent-training-phrases
Defining Responses

Next, we proceeded to define possible responses in the “Responses” section.

You can identify more than one response. However, this doesn’t mean each response should give the user different information, after all, there is only one intent behind this question - finding out WHAT IS Uber Eats. The reason you can create more responses is to create linguistic variety. When we talk, we rarely repeat ourselves word for word even if recounting the same information.

common-responses-dialogflow

Bellow, see another example of training phrases for questions about canceling an order:

faq-intent-example-cancel-order

And the related answer:

question-response-example

We proceeded to do the same for all the other questions.

frequently-asked-questions-intents

3. What About Complex Questions? đŸ€”

What happens if some of your FAQs are not so straightforward?

What if in order to answer those questions, you need a bit more information?There is a way to go about it without any complications using Dialogflow integration with Landbot.

Let’s look at how it’s done using questions regarding Uber Eats availability.

‍Simply answering this question would result in having to list over 50 cities all over the world. Plus, we would also have to create separate intents for location-specific questions such as when Uber Eats is active in a certain location and whether it serves the whole city or just certain neighborhoods.

BUT First things first! We created an intent called Location_Availabity trained for:

  • General location questions such as “Where do you operate?”
  • Specific location questions such as “Are you available in Barcelona?”
Identifying Entities
training-phrases-and-entities

As you can see, Dialogflow automatically highlighted words the system recognized as cities:

city-entity-dialogflow

One of the best advantages of Dialogflow is that it has a database of common entities such as cities, countries, time, dates etc. Hence, you don’t need to train your agent from scratch to recognize them.

As you can see some users can ask about a specific city but others give your bot a very general question or one that only mentions the country. So, how do yot “force” them to give you the city?

You set the city entity as REQUIRED in order for the intent to be fulfilled!

To so, scroll down pass training phrases and open the “Actions & Parameters” section. If you mentioned the cities in the training phrases, the system entity geo-city will have appeared automatically:

actions-and-parameters-required-entities

All you need to do is TICK the box for the agent to require the entity to fulfill this intent. Then,  define PROMPTS in case the user doesn’t provide the information with the first question:

prompts-for-required-entities

This way, when the user asks “Where do you operate?” the agent identifies the intent as Location_Availability, it will ask the user one of the prompting questions BEFORE proceeding to give the final answer.

Now you are probably thinking
 Sure, but how does the agent know in which cities the service is available and which it isn't. And what about all the different answers about times and neighborhoods for each of those cities? Does it mean I have to create 50 separate intents?

‍Don’t panic! This is the moment we leave Dialogflow and bring this FAQ agent to the orderly world of the Landbot app.

Though, before, we leave the users with a delightfully generic:

entity-responses

4. Embed Your Agent in Landbot Interface

After you log in to Landbot app, create a new chatbot by clicking the button in the upper right corner of the dashboard:

landbot-dashboard

Define a welcome message for your bot using a simple drag-n-drop interface and draw an arrow to set up the Dialogflow integration block:

Dialogflow integration takes place in 3 main steps.

Step 1: Upload your agent’s Google Project JSON key.

Landbot-dialogflow-intergration-JSON-key

You will be able to retrieve the JSON key file from Dialogflow. Simply:

  • Access settings of your FAQ agent.
download-json-flie-from-dialogflow
  • Click on the link in the “Service Account” field. A new tab on the Google Cloud Platform will open.
  • Open the “Actions” menu and select “Create key”.
download-agent-json-key-from-dialogflow
  • Select key-type as JSON and click “Create” and the file will download to your computer.
confirm-json-file
  • Return to Landbot builder and upload the agent’s JSON key.
upload-json-file-to-landbot

Step 2: Set Up Request

Open the second section of the integration block and configure the information you will be sending from Landbot to Dialoglow, in other words, user input. Since in our FAQ bot, the welcome block connects directly to the Dialogflow integration, user response will be saved under @welcome variable.

set-up-request

For the purposes of the FAQ chatbot, you don’t need to fill in any of the other fields in this section.

Step 3: Set Up Response

The two fields that will interest us in the 3rd section are the entities we want to import from Dialogflow and the setting the variable that will allow us to import intent responses we created earlier:

set-up-response

Now you are ready to manage the three outputs of the Dialogflow blog:

  • Green = Success (intent matched and fulfilled)
  • Yellow = Partial Success (intent identified but some required entities are missing so further prompts needs to be asked)
  • Pink = Fail (Agent failed to identify the intent and so the Fallback intent is activated to try to repair the conversation)

The simplest scenario would look much like this; Simply including the response variable in the question blocks that loop back to Dialogflow to keep the FAQ conversation forever flowing:

landbot-dialogflow-simple-setup

HOWEVER!You remember that we were too lazy to create separate intents for all those 50 locations and the questions related to them...Now is the time to deal with it.

5. Create a Workaround Using Google Sheets

So, let’s leave the Landbot app for a bit.Instead, we went to Google Drive and created a spreadsheet called Uber Eats Locations 🚀 creating one column listing city names in which Uber Eats is active, and another column with a corresponding location-specific response.

faq-spreadsheet

Now, back in Landbot builder, instead of looping the success path back to the Dialogflow, we set up a condition that IF@df_responseCONTAINS@city entity THEN the user will take a different path. If there is no@city in the @df_response, the path will loop back to the FAQ agent.

faq-bot-conditional-logic-landbot

As you can see in the image above, the next step will be setting up the Google Sheet integration block. But instead of sending information there, we will use it to retrieve data. We use the user indicated city as a reference to pull out the corresponding city-specific information.

google-sheet-integration-landbot

This way, If the city appears on the list, the user will get a message displaying the corresponding info. If it doesn’t, the user will take the other path (pink output with the “Unfortunately
” message).Only then we loop the sequence back to Dialogflow:

faq-bot-landbot-dialogflow-setup

In practice, the conversation will look like this:

However, if we would have asked about a city that is not on our Spreadsheet list, the conversation would take this turn:

location-not-available-sample

6. Ensure None Gets too Frustrated AKA Plan for Human Takeover

When users ask questions the bot is not trained for, seeing to bot saying “Sorry” over and over again is very frustrating. Hence, we decided to design a “fail-safe” for our FAQ sequence.

How?

We decided that if a customer ends up going through the FAIL fallback path more than 3 times, that person will be offered to get in touch with a live agent. In other words, we will design a human takeover sequence.

For the chatbot-to-human takeover to only kick off after the 3rd failed attempt, we need to install a countdown. Here is how:

  • Cut the connection between “Welcome” block and “Dialogflow” block
  • Draw a new arrow from the Welcome block and create a variable called @counter with a “Set A Variable” block set for a Number Format and a value of 0. Then connect it to the Dialogflow block.
setting-up-counter
  • Now turn attention to the FAIL (PINK) output of the Dialogflow block. Instead of looping the fallback @df_response block back to Dialogflow immediately as before, follow the response by another “Set A Variable” block using the same variable but, this time, with calculations adding @counter + 1
setting-up-counter-2
  • Next, draw an arrow from the GREEN output. Create a “Conditional Logic” block and set up a condition as follows: IF @counter EQUALS TO 3
landbot-fail-counter-condtions
  • If the condition is TRUE meaning there have been 3 attempts, the path will take the user to Human Takeover; //// BUT just before transferring the user to a LIVE agent, input one more “Set Variable” block and re-set your @counter to 0 (you know in case the user struggles again within the same session) ////
  • If the condition is not met, it will loop back to Dialogflow and this is the final result in the backend:
counter-setup-overview

Front end experience will be much like this:

counter-setup-overview

7. Become an FAQ NINJA

Seeing your FAQ chatbot fail is not a bad thing. In fact, you can use each failure to make it better. For instance, each time your bot fails to identify and intent, you can send that response to a spreadsheet or to Slack as a notification where a member of your support team can review it and consider if the question is legit enough to create a new intent in your FAQ agent.

slack-notification-setup

And every time a user types something your bot can’t understand, the message will appear in the designated Slack channel for you to review:

slack-notification

8. Adjust Your FAQ Bot for Different Formats/Platforms

On desktop, Landbot app allows you to publish your bot in four different formats:

  • Landing page
  • Live-chat style bubble
  • Pop-up
  • Site embed

You can do it by simply clicking on one of the format options in the “SHARE” stage of bot production and copy the automatically generated code wherever necessary.On the other hand, you can bring the FAQ bot that answers questionss to the messaging world. That is without doing any extra work.

  1. Turn your bot into a brick: Tag all the blocks except for the Welcome block and click “Create Brick” in the menu that appears on top of the builder.
  2. Name your Brick
  3. Click on the 3 dots in the right corner of the brick you just created and select the icon representing “Create Brick-Template” option
  4. When the new menu appears, activate create “Local Brick” template option to keep your brick private

Now that your FAQ is a brick template, you can implement it in any other bot you create with Landbot. Go to your existing Landbot WhatsApp bot or set up a new one and enter the builder.

whatsapp-bot-setup

As you know, a WhatsApp bot doesn’t really have a “Welcome” block as conversations on this messaging app are either activated by sending out a WhatsApp template message notification or upon user-initiated contact.

So what do you do?

First, import the saved brick!

The only thing important here is that our bot recognizes what the user types on their WhatsApp interface as text to be stored under @welcome. Remember? We used this variable to store the text input to be sent to Dialogflow for intent analysis.

To do that:

  • create “SET VARIABLE” block
  • Select @wlecome variable as a variable to modify
  • Enter ${body} into the value field and click SAVE
  • Connect the block with the brick
set-variable-for-whatsapp-bot

Save the bot and let’s give it a try!Here is how the bot deals with common requests:

But, because we installed our counter, the bot was able to help the user and prevent a possibly bad experience by transferring the conversation to a human agent. That is after it failed for the 3rd time to identify the intent:

Similarly, because we arranged for failed intent-matches to notify us on Slack, we can review the questions on the channel and make necessary adjustments to the intents or create entirely new ones!So this is it!Are you ready to try and create your own FAQ bot?

👇 Register with Landbot for free today 👇