Chatfuel is one of the leading chatbot development platforms to develop chatbots for Facebook Messenger. One of the main reasons of Chatfuel’s popularity is easy to use interface. No knowledge of programming is required to create basic chatbot. People with non-technical background too can create bots using the platform and launch on their Facebook page.

If you start exploring the options/menus in Chatfuel then you should learn it easily. But to make your life easier, in this article we will take you through how to create a taxi booking bot on facebook messenger using Chatfuel.

By the end of the tutorial, you should be able to create a bot with taxi booking functionality. It is advised that you go through Getting started with Chatfuel for building Facebook Messenger Bots to get the basic idea about how platform works. And then check Chatfuel Cards and Plugins Examples for Facebook Messenger Chatbot to learn more about what type of response options are available in Chatfuel.

Now, let’s get started with taxi booking bot!


First of all, we need to create a blank bot.

Login to you Chatfuel Dashboard, click on “Create from Template”.

Then select the first option “Blank Bot”


For basic flow of booking process, we have created nine blocks.

Two blocks are created by default when we create a blank bot:

  • Welcome message
  • Default answer

Other blocks, we need to create manually. In this tutorial we have created other blocks in “TAXI BOOKING” group. To create a group click on “ADD SEQUENCE OR GROUP” and select GROUP and provide group name.

Let’s go through each block in detail.

Welcome message

In welcome block we have added 3 text cards and 2 quick replies.

In the first text card we welcome user with greeting message which also includes user’s name. The {{first name}} attribute display user’s name from facebook.

We have added another text cards to start conversation with user. You can see quick replies in above screenshot. We are using two quick replies Yes & No and we have added target block with each quick reply. As per our flow if user clicks on Yes it will direct user to another block Booking.

Default Answer

As the name suggests, this block will be called when no other block is matched with user input. You can set the text in the block as per your liking.


For taxi booking we require user’s information. For that we are using User Input Plugin.

In this block we are asking user for their email and phone number and save it in variables named {{user_phone}} and {{user_email}}. Values saved in variables can be used later in conversation.

We can validate user’s email and phone with User Input plugin. So, if user doesn’t provide email or phone number in correct format then he will be asked to re-input.


In this block we ask user for pickup date and pick up time using User Input.


In this block we asks user for their pick up address using User Input.


In drop address block we asks user to enter drop address and any special instructions if he wants to send.

Booking – Confirm

In this block we display user’s information we stored in previous blocks. We asks user for confirmation.

Using Quick Reply we display two buttons Yes and No. If user clicks on Yes, bot will continue further booking process and redirect to booking confirmation. If user clicks on No then we’ll proceed to cancel his booking.


In this block we are using Send-Email Plugin to mail user information to owner / driver of taxi.

After that we display confirmation message and asks user if he wants to do another booking.

We display two buttons Yes and No to continue conversation. If user clicks on Yes button we start booking process again for another booking. If user clicks on No then we redirect him to another block and display Thank you message.

Cancel Booking

On booking confirmation block if user click on No button, then we redirect him to this block.

Also, when user selects No for another booking then this same block is triggered.

In this bock we display text message and complete the conversation.

We are done with creating required blocks for taxi booking. But to move user from one block to another we need to add redirections to all above blocks. Let’s look at one example:

In Booking block, add Go To Block plugin and set “Pickup-Date-Time”. So, after booking block user will be redirected to Pickup-Date-Time block.

Similarly, add Go To Block plugin in other blocks and set redirection as below
In “Pickup-Date-Time”, redirect to “Pickup-Address”
In “Pickup-Address”, redirect to “Drop-Address”
In “Drop-Address”, redirect to “Booking-confirm”

Now, your bot is ready with proper flow. Time to test it out! To test the bot we need to connect it with a facebook page. That can be done from Configure page. Click on Configure menu on left side menu list.


In above screenshot you can see list of facebook pages. Connect your bot with any page you want to use with this bot.

Set Up AI

In setup AI section we can set phrases that user can enter. Our bot will understand that phrases and reply with some text or block.

You can see in above screenshot we have added many phrases and on right side of phrases, we have added responses or block. When user enters any of these phrases our bot respond with this text or redirect user to the set block.

For example if user say hi or hello, bot redirect user to welcome message block.

That’s it! We created the taxi booking bot for facebook messenger. Go to your page and check how it works.

Do let us know in comments if you have any confusion while following the tutorial.

Categories: Chatbots Development Chatfuel Facebook Messenger How To

2 Replies to “Chatfuel Tutorial: Create Taxi Booking Bot for Facebook Messenger”

  1. This is really useful and advanced level. Keep sharing!!

    1. Thanks a lot Jignesh! Glad to know that you found it useful.

      Like us on Facebook ( or follow us on Linkedin ( to keep receiving future updates.

Leave a Reply

Your email address will not be published.

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>