Joren Wouters – Xenioo Wed, 07 Jul 2021 16:01:05 +0000 en-US hourly 1 https://wordpress.org/?v=5.6.12 /wp-content/uploads/2022/02/cropped-badge_611x611-32x32.png Joren Wouters – Xenioo 32 32 How to create a basic WhatsApp Chatbot /how-to-create-a-basic-whatsapp-chatbot/ Wed, 18 Nov 2020 17:50:28 +0000 /?p=3519 WhatsApp is one of the most used messaging channels in the world and WhatsApp chatbot is the new revolution around the corner. In fact, WhatsApp has over 2 billion users around the globe. But did you also know that you can automatically chat with your customers via WhatsApp? That you can have one-on-one conversations with your customers, at scale? If you didn’t, it is possible. And in this article, I will explain what WhatsApp chatbots are, why you need to ...

Read MoreHow to create a basic WhatsApp Chatbot

The post How to create a basic WhatsApp Chatbot appeared first on Xenioo.

]]>
WhatsApp is one of the most used messaging channels in the world and WhatsApp chatbot is the new revolution around the corner.

In fact, WhatsApp has over 2 billion users around the globe.

But did you also know that you can automatically chat with your customers via WhatsApp? That you can have one-on-one conversations with your customers, at scale?

If you didn’t, it is possible.

And in this article, I will explain what WhatsApp chatbots are, why you need to use them, and how you can create one yourself using Xenioo.

YouTube Video

What is a WhatsApp Chatbot?

A WhatsApp chatbot is an automated conversation partner on WhatsApp.

Usually, when you chat on WhatsApp, you are chatting with another person. But with chatbots, this is different. Because you are not talking with another person, but with a computer.

The benefits of a WhatsApp Chatbot

Because you can automatically talk with your (potential) customers, you can have one-on-one conversations, at scale.

This means that your chatbot can have personalized conversations with each one of your users and it could be talking to thousands of people at the same time.

So, what are the benefits of such a WhatsApp chatbot?

First of all, a WhatsApp chatbot can have a significant impact on your customer service. For example, you can drastically reduce your customer service costs. Your customer service probably handles a lot of standard questions every day and it is proven that 80% of these questions can be easily answered by a chatbot. Besides, your chatbot can reply in seconds to customers’ questions instead of hours (or even days). Moreover, your chatbot is always available. Instead of using live chat where a customer needs to wait on an available live chat agent, you can use a chatbot that is always ready to respond to questions.

Secondly, you can boost your sales by using a WhatsApp chatbot. With a chatbot, you can directly sell your products to your customers and let them pay via the chatbot. Think of it as like an eCommerce store inside your chatbot. Another way would be to promote your products and services via the chatbot.

The third benefit of chatbots is that they can automatically qualify your leads, which is especially useful for B2B companies. In most B2B companies, there are some qualification rules to determine whether a lead could become an actual client. They ask questions like:

  • What industry are you in?
  • How many employees does your company have?
  • What is your role inside the company?

But often these questions are asked by humans. But why would you not automate this? The chatbot can ask these qualification questions and if the lead is qualified, he/she will be forwarded to a sales agent (that can close the sale).

So in short, a chatbot:

  1. Can have personalized conversations, at scale
  2. Drastically reduce your customer service costs
  3. Can reply to your customers in seconds
  4. Is always available for your customers
  5. Increase your sales
  6. Automatically qualify your leads

Why WhatsApp is the best platform to engage users

So now we know why we need to use a chatbot, why should we put it on WhatsApp?

As said before, WhatsApp has over 2 billion users worldwide.

From these 2 billion users, 1.6 billion access the app on a monthly basis. This results in 65 billion WhatsApp messages that are sent on a daily basis.

With so many people on one channel, it is safe to assume that your customers are also using it.

And you need to be on the channels where your customers are.

Different types of chatbots

In general, there are two types of chatbots:

  1. Standard-guided chatbots
  2. Pure conversational chatbots

Or you can have a mix of both (probably the best way).

Standard-guided chatbots

Standard-guided chatbots are chatbots that are mainly based on rules. These chatbots often use buttons to guide the user to a specific part of a conversation. Also, the user often cannot talk freely to the chatbot, because the chatbot is not smart enough to handle it.

Benefits of standard-guided chatbots

  • Good for qualification of leads
  • Control of the conversation flow

Drawbacks of standard-guided chatbots

  • Falls short when users want to ask questions freely
  • Can lead to frustration

Pure conversational chatbots

Pure conversational chatbots are more advanced types of chatbots. They can understand the intent of the user and the context of the conversation, by using Artificial Intelligence techniques. With these types of chatbots, the user can ask anything they want, and the chatbot probably often provides a good answer or redirects the customer to a live chat agent.

Benefits of pure conversational chatbots

  • More natural conversations
  • Chatbot can understand the intent of the user
  • Chatbot can understand the context of the conversation
  • Users can ask more advanced questions

Drawbacks of pure conversational chatbots

  • Higher costs, because of Artificial Intelligence techniques
  • Development of the chatbot takes longer

Create your First WhatsApp Chatbot

So, now we know why we need to use a WhatsApp chatbot, let’s create one ourselves using Xenioo.

And as an example, we will create a chatbot for a Pizza restaurant.

First, go to the Xenioo console and log in with your account credentials.

(If you don’t have an account yet, you can create one here).

When you are logged in, you can click on Create New Bot:

This will automatically create a standard chatbot flow for you, which should look like this:

So, let’s start by editing the name of this flow to “Welcome Message” by clicking on the gear icon on the top-right corner. Then, you can just type in “Welcome Message” and hit Save

Before we are proceeding, I recommend that you already create three chatbot behaviors in Xenioo. You can do this by clicking on the Add new behavior icon in the top-center:

What are these chatbot behaviors? These are for:

  • Ordering a pizza
  • Making a reservation
  • Showing the menu

Now, head back to the Welcome Message behavior and go to the Start Interaction. You can just change the text by clicking on the element and type in a new message in the right panel and clicking on Save:

Then, we need to make three buttons for the Order pizza flow, Make a reservation flow and Showing the menu flow.

We can do this by clicking on the gear icon of the start interaction and then clicking the Add new action

Here, you can select the Quick Reply Button:

Next, you can set the text of the button with Button Title and set the “Go To Operation”, which will move the conversation to another interaction:

NOTE: WhatsApp doesn’t support showing buttons. Instead, the buttons are shown as plain text as “If you want to go to the menu, type in 1”. 

Now you can do the same for the Making Reservation button and Menu button, so it looks like this:

Before we move on, I want to tell you about two awesome features of Xenioo regarding buttons.

The first one is called the “Alternate text”, which displays an alternate text for text-based channels (such as WhatsApp). 

So one a more visual channel (like Facebook Messenger), Xenioo will show the Button Title, but if you have set the “Alternate Text”, this will be shown on WhatsApp:

With this example, the button on Facebook Messenger will show ‘Menu’, while on WhatsApp it will show “See our menu”.

The second feature is called “Trigger Text expression”. Let’s say the user chooses not to use the buttons, but instead just types in “menu”. Then, your chatbot will break (because he is not familiar with that). This feature fixes that, so if the user types in “menu”, it will go to the appropriate flow:

Now, let’s first create the ‘easy’ flows: Make a reservation and showing the menu.

The Make a reservation flow is also pretty straightforward for this tutorial, just tell the user that they can make a reservation via a phone call or your website:

With the menu, we need to change the text and add the File Download action:

If you select this, you can set the URL of the your Restaurant menu:

So the Menu flow looks like this:

Next, we are going to do the more advanced part: Ordering a pizza.

Before we are going to deep dive into this flow, start by creating five interactions and name them like this:

  • Check on toppings
  • Check on size
  • Pizza with topping and size
  • Pizza confirmation
  • Start over

You can do this by clicking on the Add new interaction icon in the top-center:

And naming them accordingly by just clicking on them and changing the Name:

Now, head back to the Start interaction of the Order pizza flow and start by asking a question:

NOTE: We will handle the response to this question later on in the NLP part, so don’t worry about that now 😉

Next, we are going to set the actions for the “Check on toppings” interaction. This interaction will check whether the user has typed in a topping. If the user has filled in one, we will move on to the next interaction and otherwise, we will go back.

We can do this by selecting a Variable Switch as action (Under the ‘Flow’ section):

And check whether the topping has any value:

By the way, ‘topping’ is a variable name I created. You can just type in a variable name and click on “Add new variable” and Xenioo will automatically create it.

Accordingly, we need to determine what happens if the topping has a value. And we can do this by clicking on Add operation and select the Go To Bot interaction:

The Go To Bot interaction will redirect the conversation flow to the next interaction (Check on size):

But what happens when the user didn’t type in a valid topping? Then, they will go back to the previous question (using another Go To Block action):

With the next interaction (Check on size), we are doing a similar thing, but then we check on the size of the pizza, instead of the topping.

So, we will add a Variable Conditional Switch to this block that checks on the size:

If the size already has a value, we continue with the “Pizza with topping and size” interaction, and otherwise we are going to ask a question.

NOTE: Now, you might be thinking “Huh, but we didn’t ask for the size, yet?” That is completely true! We will cover this in the next section where we will handle the NLP part of our chatbot 😉

Now, let’s create the question that asks for the size of the pizza. You can just add the Text action and type in “What size pizza do you want?”:

Then, we need to add three buttons for “Small”, “Medium” and “Large”, which all go to the next interaction. For each of the buttons, click on Add Operation and select Set User Variable (under Profile):

We can use the Set User Variable to change the variable size to small:

NOTE: Don’t forget to also add the Go To action, which makes sure the flow goes to the next interaction (“Pizza with topping and size”)

Now, you can do the same for the Medium and Large buttons, so it looks like this:

Lastly, we need to ask whether the user is satisfied with the chosen toppings and size of the pizza. You can do this by adding a Text action and two buttons for Yes and No.

Afterwards, you can connect the buttons to the right interactions. If the user is not satisfied with the pizza, the chatbot can start over again by connecting the “Start over” interaction with the first interaction.

Because we already covered all the things you need to know to do this, I assume you can handle this yourself 🙂

Here is the final flow of the Order pizza behavior inside Xenioo:

Use NLP to make your chatbot smarter

What we’ve created now, is what you would call a standard-guided chatbot.

But, as you might remember, we still need to handle the input for the toppings and size of the pizza, so that people can just type in what pizza they want.

We can do this by using the NLP feature of Xenioo

Thus, let’s start by creating an intent. An intent is an action your user wants to do, such as ordering a pizza. So let’s create an intent for exactly this.

In Xenioo, you need to go to the AI section and then click on Add intent:

Here, you can type in the name of the intent and click on Save:

Next, we need to give the chatbot certain training phrases, so it knows when this intent is triggered. You can do this by just typing in phrases and hitting Enter:

Then, we need to make sure that the chatbot understands the difference between a veggie pizza and a mozzarella pizza. We can do this by using entities

Entities are useful facts the user is saying, such as the size of the pizza or the kind of topping they want. In Xenioo, you can just click on one of the words and tell Xenioo it is a size:

And you can do the same for toppings:

You can extend these entities, by going to the Entities section, click on the three dots and choose for “Edit”:

Here, you can extend the entity values. For example, for topping you add more toppings, such as:

  • Beef
  • Sausage
  • Bacon

And we can also do that for the size entity:

But, how are we sure that this is actually working? By using the Train & Test feature of Xenioo. You can just type in a sentence and Xenioo will give you the matched intent and entities:

There is just one last thing, how do we use this inside our chatbot flow?

Go back to your Order Pizza behavior and choose for the Start interaction. There, insert a new action called NLP Input (under Input):

Then, you just need to make sure that if it matches the Order Pizza intent, that it automatically goes to the “Check on size” interaction:

Chatbot Fallback: What to do if the chatbot doesn’t understand the user

But what happens when the chatbot doesn’t understand the user?

Then, you need to make sure that there is a human that can ensure a good user experience.

And I have written a full guide on this, that you can read here.

Deploy your chatbot on WhatsApp

Now we’ve created our complete WhatsApp chatbot inside Xenioo, we can deploy it on WhatsApp.

And Xenioo does provide a lot of direct integrations with WhatsApp service providers.

One of them is Kaleyra Cloud, which is the one we are going to use in this tutorial, and one of those providing WhatsApp Business API integration.

So, if you don’t have an account on Kaleya Cloud yet, I recommend you to create one

First, we need to go to our chatbot in Xenioo and click on Publish:

Here, you can choose for WhatsApp (Click on Settings under WhatsApp):

Then, we can select Kaleyra Cloud as our provider:

As you can see, we need some information of Kaleyra to get this to work, so let’s get it.

If you log in at Kaleyra, go to Developers and click on Create API Key:

Then, a pop-up opens and you can give it a title and click on Save:

If everything went good, you must get the following confirmation:

NOTE: I recommend to click on “Download” to make sure that you have stored your API key securely (we need this in the next steps).

Next, we need to go to Channels → WhatsApp → Click on Manage:

Then, choose for Configuration and click on Add number:

Here, you need to specify the number you are going to use on WhatsApp and the incoming URL (which is the “Hook URL” inside Xenioo):

Then, if we go back to Xenioo, we need to fill in our:

  • Sender phone number
  • API Key
  • Account SID 

If you have done this, you can click on Save:

And that’s it! Now, your chatbot is working on WhatsApp!

How it looks on WhatsApp

And here is how it looks on WhatsApp:

That’s it

That’s it! That’s how you create a basic WhatsApp chatbot with Xenioo.

Next article we’ll continue with that basic chatbot enhancing it with new options and make it ready for production.

Have any comments or would like to discuss Xenioo and chatbots?

Join the Facebook group and let us know!

The post How to create a basic WhatsApp Chatbot appeared first on Xenioo.

]]>
BUILD a customer support chatbot to manage a distributed support team /how-to-use-a-chatbot-to-manage-a-distributed-support-team/ Tue, 07 Jul 2020 09:26:00 +0000 /?p=3377 Customer service is important for every company and a customer support chatbot is the ideal tool for effectively manage it. In fact, it turns out that 90% of Americans use customer service as a factor to decide whether they should do business with you. But especially in these COVID work-at-home times, it becomes harder to manage a customer service team. So, that’s why I will show you how can use a Xenioo chatbot to manage a distributed support team.  Inviting ...

Read MoreBUILD a customer support chatbot to manage a distributed support team

The post BUILD a customer support chatbot to manage a distributed support team appeared first on Xenioo.

]]>
Customer service is important for every company and a customer support chatbot is the ideal tool for effectively manage it. In fact, it turns out that 90% of Americans use customer service as a factor to decide whether they should do business with you.

But especially in these COVID work-at-home times, it becomes harder to manage a customer service team.

So, that’s why I will show you how can use a Xenioo chatbot to manage a distributed support team

YouTube Video

Inviting and adding your team members

Before we can actually manage a distributed support team, we first need to make one.

Let’s start by creating our support team in Xenioo by inviting our team members

You can do this by signing in to your Xenioo account, go to one of your chatbots and click on Settings → Team.

Here, you can fill in the email of the team members, the group they belong to (for example, ‘Sales’ or ‘Support’) and the permission they have:

Once you click on Send invitation, your team members will automatically get an email from Xenioo:

And when they click on Click here to Sign Up or Sign in, they will first need to create an account:

If they made an account, they need to confirm their email (otherwise they won’t show up as “Active” team members):

Eventually, when they log in, they need to select the account they want to work with:

When they have performed all these steps, they will show up as Active members in Xenioo:

Great! Now you got your own team in Xenioo to handle support queries. 

Let’s move further.

Setting up your fallback message

Now we’ve got a team that can handle your support queries, but when are we going to handle them?

This is where the fallback message comes into play.

The fallback message is the message that shows up when your customer support chatbot doesn’t know an answer to a question. 

It is not a problem when the chatbot doesn’t know the answer to a question. But it becomes a problem when you are hanging the user out to dry.

So, we need to make sure that the user has a great experience with your chatbot.

But how can you do this?

By handing over the conversation to a human, who ensures the user has a great experience.

Now, head over to the Build section in Xenioo and look for your Fallback interaction, it looks something like this:

So when the chatbot doesn’t understand something, I like to give the user a choice: Do you need help from a human?

Thus, we need to change the Fallback interaction.

Let’s begin by adding the question.

You can just click on the text in the Fallback interaction and change it to something else:

NOTE: Don’t forget to hit the Save button!

Next, we need to give the user a choice. A choice between choosing between getting help from a human or not. So let’s make two interactions for that.

Just click somewhere in the Flow editor, then on the right-hand side there will be a panel where you can choose for “Add interaction”:

Click on the interaction and name it “Forward to support”:

By the way, I always like to give my interactions a name. It keeps your chatbot flows structured and in a blink of an eye, you understand the whole overview.

We can do the same for the alternative (not forwarding to support), by just clicking on the Tools icon and cloning the existing Interaction:

NOTE: See what I did there? You can just copy different interactions within your chatbot flows. Great feature!

So, now we made these two messages:

But, we need to make a flow, so that if the user answers “Yes” to the question, he will go to “Forward or support”.

Thus, let’s do that! Go to the Fallback interaction, click on the Tools icon and click on Add new action:

Then, under “Content”, choose for the Quick Reply Button:

Here, you can set the Title of the button and under “Go to”, you can choose the interaction it goes to:

We can do the same for the “No” button, so the final flow looks like this:

Assigning a live chat agent to your conversation

Now we got the messages in our customer support chatbot flow, we need to assign an agent to the conversation if the user wants to forward it to a support agent.

So, head over the Forward to support interaction, click on Add new action and choose for Set Chat Operator State (Under Flow):

Now, on the right side of your screen, a panel pops up where you can edit the settings of the Set Chat Operator State action:

First, we need to determine which mode we want to use. We can choose between two modes:

  1. Request operator
  2. Operator take over

With the “Request operator”, a request operator flag is raised for a specific conversation, which looks like this in Xenioo:

But this doesn’t deactivate the chatbot. If you want that any user input is ignored by the chatbot, choose for “Operator take over”. 

And that’s the mode we are going to use!

By the way, there is also a third option called “Chatbot controlled”, but we will not need that in this tutorial 🙂

So, if you choose for Operator Take Over, you can also set what kind of operator you want:

  • A random operator
  • A less busy operator
  • Or a specific operator

If you choose for random or less busy, Xenioo will determine the operator for you. But with a specific operator, you can select one person from a dropdown list:

Last but not least, you can also choose for online operators, which is an extremely useful feature:

My recommendation is to go with the following: 

  1. Mode: Operator Take Over
  2. Assign operator: Less busy
  3. Select only online operators

With these settings, you make sure that the chat is handed over from your chatbot to a live chat agent. Besides, you have agents that have the time to respond to your user and are online.

Couldn’t be any better, right?

Assign agent groups to your conversation

So far, we’ve covered how to assign any agent or a specific live chat agent to a conversation inside your customer support chatbot.

But, what about agent groups?

Often, there are specific agent groups in companies, such as Support and Sales.

Thus, it would be useful to assign a chat to a specific group of agents. 

And that is possible with Xenioo!

Just head over to the Set Chat Operator State block we already made and under “Operators group”, choose a specific group:

And that’s it! You just assigned a chat to a specific group!

Sharing a conversation URL

We have one last feature to cover: Sharing a conversation URL.

This is one of the best support features that sets Xenioo apart from other chatbot software companies.

Let’s imagine that you are a support agent and you are having trouble giving the right answer to a customer’s question. But, you know that your colleague Dave knows the answer to that specific question.

However, Dave is already done with his shift and doesn’t have his laptop around. So, what do you do?

It would be easy if you could just hand over the conversation to Dave’s mobile phone, right?

That’s where the Sharing a Conversation URL feature comes in.

With Sharing a Conversation URL, you can just send over a URL that will automatically bring you to the conversation. 

And the best part is that you don’t even have to log in to respond. You can just use it in your (mobile) browser. This is perfect if you need to respond to a customer’s question on the go:

So, how do you activate this in Xenioo?

Just head over to the Forward to support the block we made before, add another action and choose for Create Conversation URL (Under “Flow”):

Next, you need to set the Validity (how long the link stays valid) and if you want to take over the conversation:

NOTE: It is important to toggle the “Take Over Conversation”, because otherwise you can only see the conversation with the URL, but cannot respond to it.

Up and until now, this is the chatbot flow we created:

But, we are not there yet.

Let’s move on.

Notify the live chat agents

There is still one thing left to do in your customer support chatbot. The user can choose to forward the conversation to support, but how do the live chat agents know this?

They don’t… yet.

But we can notify them in Slack!

Again, head over to the flow builder in Xenoo and add the Call API Service (under Integration) to the Forward to Support interaction:

In the API settings, you can fill in the Service URL, Headers and Payload of the message:

NOTE: If you are not familiar with creating webhooks between systems, you might want a developer to create this.

Once you’ve set this right, every support request will be sent to your live chat agents in Slack!

Awesome, right?

What if the live chat agents are offline?

Unfortunately for our customers, we all have to sleep at some time.

So, this means that a user wants to talk with your chatbot in the middle of the night (especially with a chatbot).

And then, your live chat agents are offline and they cannot ensure a great experience for your users.

Then, you just need to tell them they are not online.

And we can do this by creating a Variable Switch in the Xenioo flow:

This switch checks if the current hour is between 09:00 and 17:00 (standard business hours). Moreover, it checks if the current day is a weekday.

And when the user meets this condition, you can determine which interaction to send next with the Go To action:

By now, I guess you are probably kind of a chatbot wizard, so I won’t explain every step in this flow, but it can end up looking like this:

The only thing I didn’t explain yet (what is in this flow), is how you can send an email from Xenioo. Again, just add an action to an existing interaction, and choose for Email Quick Reply Button (under Content):

Once you selected this, you need to add an operation:

Then, choose for Send Xenioo Mail Message:

And eventually, you can set the sender, subject and content of that email:

Ask for live chat agent after five times

In some cases, you don’t want to trigger the live chat team right away if your chatbot doesn’t know an answer to a question.

Maybe, you first want the customer to try some other phrases that might trigger the chatbot.

In such a case, we can ask for a live chat agent only after five times the fallback happened. 

By the way, you can also set this to 2, 10 or 30. I just use five in this example 😉

We will do this by increasing a variable with 1 every time the fallback interaction occurs.

So, let’s add an action to our Fallback interaction, called Set User Variable (under Profile):

Here, we can just type in the name of the variable and increase it with 1:

Next, we are creating another Variable Switch to check whether the variable ‘fallback_count’ is equal to 1:

I will spare you the details of every step in this flow (because we already covered all the elements we are using for this), but the eventual flow can look something like this:

That’s it

That’s it! That’s how you can build an amazing customer support chatbot to manage your distributed support team with Xenioo.

Now, let me ask you a question.

How do you currently manage your distributed support team?

And would Xenioo make your life easier?

Join the Facebook group and let us know!

The post BUILD a customer support chatbot to manage a distributed support team appeared first on Xenioo.

]]>