How to create a Messenger bot in 2021

By Mark on December 2, 2020

Messenger bots are becoming increasingly popular among businesses worldwide and for good reason

But there is a problem...…

Currently a lot of Facebook pages are being banned. 

Why? 

90% of all the cases are due to Facebook policies not being followed correctly or providing a hostile environment for their subscribers, resulting in them to block your page. 

As this year is coming to an end I want to share all my knowledge with you so you will begin the new year with a perfect start. This way you will know the correct way of building a Messenger bot

Are you ready?
Doctor who and Messenger bots
P.S. I am a huge fan of this Doctor Who so
you might see more of him throughout
the website πŸ˜›

What is a Messenger bot and what can it do?

If you came to this guide not knowing what a Messenger bot is I will fill you in and explain it in short

Basically it handles any conversation someone has with your Facebook page

How is that for short right πŸ˜œ

But to be a little bit more detailed you can see a Messenger bot like a virtual assistant. The great advantage is that it will never get sick or goes onto holidays. It can handle many things for you which I will discuss in a bit more detail below. 

Providing customer support

A Messenger bot will be able to provide customer support of any kind. You can train the bot to respond to questions that people might ask. You can do this with simple keyword trigger you set up inside the Messenger bot. 

Or you can be more advanced and provide whole phrases, or even connect with NLP platforms like Dialogflow or Wit.ai

You can start off with easy questions and expand over time when you have a good indication of what the typical questions are. 

I myself use SilFer Bots for all my bot building as they provide an all in one platform to manage the different channels on. More on that a bit later but let me show you few examples of how customer support could look like;

Ask user for question

Now this is a very basic but powerful thing you can set up inside your Messenger bot. 

In this case the question is being captured in what we call an user input block. within this block you can assign a custom field that will store the question the subscriber asks. 

In the next step you can confirm that you received the answer and let the subscriber know what the next step will be. 

Lastly we are going to send an admin notification towards the admin of the chatbot that someone asked a question that needs to be answered. 

In this example I am using a SMS notification since the admin notification in Messenger causes the Facebook algorithm to ban pages. So we are not going to risk that. You could also choose to send an email if you like. At a later point SilFer Bots is also going to allow for push notifications
How to ask a question inside a Messenger bot
Again this is a very basic way of performing customer support. It is good to have this flow available inside a menu for example, or when people trigger a keyword.

Advanced Customer service

A more advanced set up for customer service might be allowing your subscriber to type in certain queries and train your Messenger bot to respond to them. 

This is done through AI (Artificial Intelligence). It makes the Messenger bot understand the context of the message that your subscriber types and properly respond. 

Again this can be very basic and really advanced depending on your needs, but SilFer Bots AI section is the perfect place to start doing so.   
Creating smarter chatbots
Above you see a very simple example of training your Messenger bot. In this case we use just a keyword that will trigger the flow we saw above. 

So really basic but it gives you an idea about the possibilities and it lets you save hours and hours of time answering basic questions

Collecting leads 

Another fantastic way to use a Messenger bot is to collect leads. You can do this straight into the chatbot itself which is great as it reduces friction between you and the potential lead πŸ™‚

An example could be that you are sharing a REF URL (this is a customized link) you set up inside the Messenger bot. It directs people to a specific flow where you can offer your lead magnet. 

You could also ask for their email and or phone number so you can reach them outside of Messenger as well. 

Let me show you an example;
How to build a leadmagnet inside of a Messenger bot
As you can see in the first message we ask them to give us their email so we can grow our email list as well. It also provides us a way to re-engage when subscribers fall outside the last 24 hours of last interaction (will explain more later on), and get them back into Messenger.

Then next step we confirm the email opt-in and also send a confirmation message that the subscriber will receive their leadmagnet by email. To be sure adding it to Messenger for downloading will allow for them to absorb it right away. 

Now for the last step I really love how I can just send an email straight within the flow builder and there is no need anymore to connect to an ESP like ActiveCampaign or MailChimp. SilFer Bots has an option to connect any email through SMTP and in turn this will allow you to send emails directly from the flow builder πŸ˜ƒ

But the point is you can see how easy it is to also build an email and or a phone list within the same platform. 

Reservations and bookings

Messenger bots can also be of great help for companies that are keen on making reservations and or bookings. Think of restaurants that want their tables filled or coaches that would like to let people book coaching calls. 

As with all the other features you can provide this can be done very basic or more advanced by using a NLP like Dialogflow. It will help a lot when people free type something like "I would like to book a table for 4 persons next Friday at 8pm"

Dialogflow will understand the context of this input and is able to format the date and time along with the number of people. I will explain this a bit more later in this article, but it is good to know that this is possible and to be honest setting this all up requires little to no effort with SilFer Bots. 

Want to receive a goodie package?

I have a 6 months free pro code for your Messenger bot, access to the ambassador program and a free template for you.

Just press the button below to 
get instant access 
πŸ™ƒπŸ‘‡
Receive package
P.S. if nothing happens just type "gimme"

How to build a Messenger bot

Now that you understand a bit more about what a Messenger bot is and what it can do for your business, it is time to get to the core of this article. 

What is the proper way of building a Messenger bot?

Many people will have different opinions about this and there is no 1 solution to this, but I am going to share my vision as I have seen it worked the best for any kind of niche. 

Will also share links with you to documentation if it is relevant so you know where to look when in doubt of certain restrictions. 

Comply with the Messenger TOS

The most important thing you need to learn when building Messenger bots is how to stay compliant with the platform you are building on. That means you will need to be able to comply with Messenger TOS.

TOS stands for Terms of Service and it is the guideline you need to follow building Messenger bots. You can find the documentation to this here.

I have to mention that these change on a regular basis so be sure to keep checking it to see if important topics change for you. 

In total we have 5 main ways of messaging subscribers. 

Standard Messaging

This is the regular Messaging that you will use the most of your Messenger bot build. It allows you to respond to a subscriber within the 24 hour window of last interaction. Meaning that soon as a subscriber interacts with your Messenger bot you can reply freely and without restriction. You can send non and promotional messages within this timeframe. 

Message tags

Facebook created a total of 4 special tags that can be used to message subscribers outside the 24 hour window. These tags can be used to send 1:1 updates to your subscribers. 

What does it mean? 

If you use one of these tags you will need to make sure the message you are sending is relevant to that particular tag as abusing them will result in a ban for your page. 

Below I will go a bit more in depth about the different Messenger tags and how you can use them. 
CONFIRMED_EVENT_UPDATE
This Messenger tag can be used with people who signed up for your event. You can use this for events that are currently in progress or are scheduled. 

Important thing to note here is that you can ONLY use this tag for people that REGISTERED to that specific event. 

Examples of approved events:
  • Webinar subscriber registered for
  • Appointments like reservations, coaching calls
  • Notifications about a persons scheduled trip like arrival, cancellation

Examples of what is not allowed:

  • Sending promotional content like offers and discounts
  • Sending updates about events the subscriber didΒ NOT register for
  • Sending messages that are about events that already have passed
POST_PURCHASE_UPDATE
This tag can be used to notify a person about an update on their recent purchase.

Examples of approved events:

  • A confirmation of invoices or receipts
  • Notifying a customer about a shipment change
  • Card payment updates such as declined cards, backorder items

Examples of what is not allowed:

  • Sending promotional content like deals, discounts
  • Messages that have the intend of cross selling or upselling
  • Asking for reviews sending polls not related to a previous conversation in Messenger
ACCOUNT_UPDATE
This tag is used to notify a subscriber about a non-recurring change about their application or account

Examples or approved events:

  • A change in the subscribers application status like a credit card or job
  • Notification about suspicious activity like fraud

Examples of what is not allowed:

  • Sending promotional content like deals, discounts
  • recurring notifications about payments, job applications
  • Messages about a poll or review without any prior related messaging
Human_Agent
This tag allows for businesses to respond to a subscribers question within 7 days of the users last interaction. This tag is in closed beta but you can apply to get access here

Example of approved event:

  • Human agent response that cannot be resolved with the normal standard messaging window of 24 hours. Think of things like closed for the weekend or problem that cannot be resolved within 24 hours

Examples of what is not allowed:

  • Any automated messages as this is a human support tag
  • sending any content unrelated to the issue of the subscriber

One Time Notification

When the subscriber is outside the 24 hour window then you have an option to still send 1 follow up message. It is called the one time notification or OTN in short.

Before you can use this however you need to activate this on your Facebook page. Just go to settings -> advanced messaging -> scroll all the way down to where you see to where you will encounter the section Requested features. Just press the button request and follow along to activate the OTN on your page. 

Once done you will be able to request your subscriber to opt-in for this OTN topic
How to enable one time notification
You can then go into your flow builder and during the conversation you have with your subscriber you can request them to opt-in about a certain topic. 

That looks like this;
creating a OTN to follow up with subscribers
When creating an OTN always be clear in the topic you create and let the subscriber know precisely what they opt-in for. I will do a separate post about this topic as it has been a reason for many bans as well.

News Messaging

This will not be relevant to much of you out there. This type of messaging is only meant for registered news pages that fall under the Facebook News Page Index.

With the tag called non_promotional_subscription you are allowed to send news related content towards your subscribers.

Sponsored Messages

This is an option you can use to reengage with your subscribers who are outside the 24 hour window of last interaction. It will basically be a last resort to get them engaged again with your content. Sponsored messages need to comply with Facebook advertising policies since this will be a paid message service. 

Keep in mind when setting this up that you do not use this for any time sensitive deals as it may take days before all subscribers have been reached. The reason is this is an auction system. A subscriber may only receive 1 sponsored message a day so if you lose the auction to another business that the subscriber is part of you will need to wait until the next day before you can bid again. 

Also is mentioned that sponsored messages will not reach your entire subscriber list due to the nature of this bidding system. 

Last thing to note it is advised to have at least 200 people inside your audience you setup to be broadcasted to. I have to mention I did also run tests with just me and that got delivered just fine. But it is mentioned because it increases the delivery rate
So the above I have mentioned is only part of what you need to comply with the Platform TOS. if you want to read it from start to finish just press here.

Create a dialog and not a monolog 

So after reading that your head might be spinning πŸ˜…

But let's get to a part of building Messenger bots that is often not being practiced correctly. 

You have to understand the platform you are building the Messenger bot on.

Messenger is a conversational platform but most companies use it like an email channel or just a sales pitch. 

So create a conversation!

It is the most fantastic way to interact with your (potential) customer, get to know them and their preferences. This will help you in knowing precisely what they have problems with and how your service or product will help them solve that. 

The thing is to bring it in a casual conversational way.

Let me show you an example;
How to build a conversation in Messenger
This is how it looks like in the backend; 
flow of conversation in Messenger
As you can see in the example the conversation happening inside Messenger between business and subscriber seems pretty casual. It could very well be a conversation I would have with you face to face right?

But during this short but interactive conversation we capture a lot of data we can use later on.

* We get to know their state of mind by asking how they are. And we can customize the answer accordingly.
* We capture what kind of business they have
* We get to know what their biggest struggle is

This data is captured within just 1 minute. But because we are asking this inside a conversation it is natural to give this info freely without feeling pushed into it. 

So that is why it is important to create a real and genuine dialog with your subscriber. It also builds trust and creates a relationship with your business. 

And exactly this kind of data can be used later on to personalize the subscribers experience when going through your funnel. 

Do NOT SPAM your SUBSCRIBER

I have seen it happen a lot. Especially since the new regulations this year have changed and you need to abide by the 24 hour window. Business spamming their subscribers within that 24 hour window as much as possible to be sure that they complete to the step where they purchase the business's product or service. 

This is what went wrong with email marketing and why it got such a bad reputation. 

Of course there are exceptions as some companies exactly know how to engage with their subscribers. 

But sending 5-10 messages within a 24 hour window is just plain crazy and idiotic!

On top of that it will increase the block percentage of your page. Subscribers will block your bot and with that the block percentage will go up. When at 3% the FB algorithm will check your content more intensely. at 5% you are close to getting banned for each little wrong decision you make and 7% your page will most likely get permanently banned. 

It is all about the user experience and not about the sale. That will come when you build a good relationship with your (potential) customer. 

A messenger bot should always be build with the subscriber in mind. 

You have many ways at your disposal to reach your subscribers. More on that below πŸ˜πŸ‘‡

Creating an omnichannel experience

Going in to 2021 and the way how Messenger bots need to be build you have to keep in mind that just using the Messenger platform is not a viable solution anymore. There are too many restrictions for that.

So the way to move forward is to use multiple channels to reach your subscriber or customer on depending on which stage of the interaction they are at that moment. 

For my Messenger bots I always do a condition check to find this out. Here is how that looks like; 
how to create a omnichannel condition check in SIlFer Bots
With this check you know exactly what message needs to be sent out depending on the stage of the subscriber. With the email and sms it should be your intend to get them curious about what you are sending and share a link to get them back into Messenger again. 

Once they pressed back to Messenger it opens up your 24 hour window again so you can continue the conversation what you started in your email. 

If you notice in the above image is that Messenger messages and OTN messages are both sent inside of Messenger. When setting up an OTN message keep in mind that you need to change the message type of the Messenger block to the OTN topic you let your subscribers opt-in for. 
How to use the OTN tag inside your Messenger bot
This way the Messenger message gets properly tagged with the OTN topic and the message will be sent.

In that same image you can also see how to use the 3 Messenger tags under their set section as well. 

But using omnichannel marketing is much more than just check in what stage the subscriber is in. It is also knowing what channel you need to use that matches the content you want to send out.

An example can be that when you have content that contains a lot of information it would be better to send an email. then you could set up an automation like this:

Email sent -> wait for two hours -> condition check if email has been opened -> if not send a Messenger message to let them know you just send an email -> wait for 6 hours -> check if email has been opened -> if not send second email with different topic to catch eye of subscriber

This is just a simple automation you can set up with using different channels in your marketing to guide your subscriber towards the content you want to share. 

The great thing with SilFer Bots is that you can manage all these channels in that one single platform πŸ€©

Currently the following channels are supported by SilFer Bots

  • Messenger
  • SMS
  • WhatsApp
  • Email

And early next year Instagram will be part of that set up!

So imagine what you can do combining all these channels into just 1 platform

Creating an engaging bot

This can be interpreted in many different ways but in this case I mean the way a Messenger bot responds to your subscribers. 

And that is largely depending of how you have trained your Messenger bot. As mentioned earlier I love to use NLP like Dialogflow as it give a whole new dynamic to the chatbot.  

Dialogflow can interpret the context of a subscribers message and is able to respond to that with a fitting reply (giving you have trained it properly). 

It also a great way to understand input when certain parameters are given like time/date.

Example can be: "I would like to book a table for 4 persons coming Friday at 8pm"

Dialogflow then formats this into a date and time which we can reply back to with a customer. 

Let me show you how it works. 


First login to Dialogflow and select your training agent. When properly signed in it looks similar to this;
DialogFlow overview
On the left side you can press to Intents and you will get to the overview of all your created intents. Intents are equal to training phrases but with a bit more options then you would get in a regular keyword section inside your Messenger bot. 

As you can see I already have a few created but if it is your first time your list will be empty except for the default fallback intent and the default welcome intent.

To create an intent just press the button in the top right corner.

You will then get to name the new intent and start feeding it with training phrases. 
Creating intents in Dialogflow
To help Dialogflow understanding the context of the input from the subscriber it is important that you create more than just one training phrase.

Now let's say for the intent name we go with Reservation. after that is done we will start with the first training phrase. 

Let's make that into: I want to book a table for 6 persons on Tuesday at 7pm

And right after you press enter you will get to see something very cool;
capturing entities in Dialogflow

You will notice that Dialogflow understand two things here;

  • Number for the amount of people
  • Day and timeΒ 
It means that Dialogflow will be able to turn the day and time given by the subscriber into a correct date and time format. And the best part is that you can save this to your custom fields inside of your Messenger bot as well πŸ˜ƒ 

The way to do that is found at the Action and parameters section. If you match the Parameter name with the name of your custom field inside of SilFer Bots it will auto sync those values.

How cool is that?

So let's sync it with our custom fields right now!

In my Messenger bot I have the custom field called booking_date to capture the day and time, and the custom field booking_guests to capture the number of people.

So when I fill this into Dialogflow it will look like this;
How to sync Dialogflow entities with your Messenger bot
Now capturing all this data is great but what about the next step? 

That will be giving a response right? 

We didn't go through all these setup to just leave the subscriber hanging without any reply πŸ˜…

So if we scroll down a little you will see a section called Responses

Here is where we will be able to create a response towards the subscriber. There are 2 ways to set up a response. It will be either by text response or custom payload

Since we are using a Messenger bot we will choose the second option. 

First we will remove the custom text response and replace that with a custom payload. Inside that custom payload we will need to place a little bit of JSON code. 

Don't worry if you have never worked with this as it is a very simple piece of code;

{
"flow":
}


That is it!

Wasn't too hard right?

Let' see this in action
how to create a custom response in Dialogflow
Only one more thing is needed to finish this tiny bit of code. After the flow we need to insert the value. That value will be the flow or step id inside of SilFer Bots. 

You can grab this by hovering over the block and click on the digital print icon
blank
Once you have done that you only need to go back to Dialogflow and paste the step id after the colon . You will then have a fully working response inside of Dialogflow. 

Just press save in the top right corner and also make sure you have pressed publish on the flow you have inside of SilFer Bots. Otherwise the response might not trigger inside the Messenger bot
How to create an intent in Dialogflow to trigger a reponse inside of Messenger
So now that we did the entire set up we can do a test to see if it works as we have set it up. So the order should be as follow:

subscriber asking question in Messenger bot -> Dialogflow recognizes the response and format the date and time -> Dialogflow syncs the data into custom fields inside the Messenger bot -> Messenger bot responds

So let's do a quick test to see it live in action!
How to make your bot smarter with Dialogflow
Now there is many improvements to be made here like formatting the date and time (which can be done within SilFer Bots) but you get how powerful this is right?

A customer or subscriber can just type in something and the Messenger bot is able to respond with all the data in the correct format. 

I wanted to show you an example of the power of smart and engaging Messenger bots. As this is a must to be able to reply back with relevant content to your subscribers or customers. 

How would you build your Messenger bot?

I have shared a lot in this article and most is what I think is important when building your Messenger bot into 2021 and beyond. In future articles I will share more insights into how to build Messenger bots and will do a complete beginning to finish workshop very soon. 

But how are you building chatbots? 

After reading this article are you going to change the way you build Messenger bots from now on?

Let me know in the comments below πŸ™ƒπŸ‘‡
This site is not part of the Facebook website or Facebook Inc. Additionally, this site is NOT endorsed by Facebook in any way. FACEBOOK is a trademark of FACEBOOK, Inc.
Copyright Β© 2021 Mark van der Made
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram