This booking assistant helps your customers to schedule their gym sessions. It offers a free trial for new joiners, books and reschedules trainings and classes, and answers some practical questions about prices, rules, and opening hours. A valuable tool to make your customers more free!
Make sure to always update the NLP after loading a template!
👉🏻 This template uses this Airtable spreadsheet to look for records. Make sure you have a look at it to understand how data is retrieved.
Read more about Airtable integrations here. Instead of using Airtable, you can also integrate your own API calls.

Flow: Choose language

This is the flow triggered when the chat starts. The bot asks to choose to continue the conversation either in German or in English, which will be set as value for the preferredLanguage variable.
Read more about multilingual bots here.

Flow: General

The Introduction message here sets up the 3 main use cases, into 3 Quick Reply buttons. You can see that as the "main menu":
  • I'm new leads to the Lead Generation flow,
  • Bookings leads to the Book class, Cancel class, and Manage trainings flows,
  • FAQ leads to the FAQ flow
On top of the basic blocks (e.g. Introduction, Goodbye, Anything else, etc), you will find some routers here to keep the conversation flowing:

Block: User details exist?

At the end of a use case flow, the conversation loops back to the menu cited above through the Anything Else block. If the user wants to keep in touch, the User details exist block is triggered to check whether the bot already knows the user details. If so, it will just summarise what is already known. If not, it will ask for the user details.

Block: Start again

This action block clears all the variables of the conversation so that the chat can start again. This is useful for testing but also if the conversation is left and then restarted. It is triggered whenever users greet the bot, by using the chitchat.greeting intent.

Flow: Lead generation

This is the flow triggered by clicking on the "I'm new" button in the Introduction message, or by the i_am_new intent. The bot offers a free trial to the user, then their details are asked before they get suggested to book a class right away.

Flows: Book class & Cancel class

This is where conversations on booking or cancelling a class happen. Each of them is triggered by either the book_class or cancel_class intent.

Blocks: Which language?

These go-to blocks are routers to decide what Airtable data to retrieve. This data will depend on the preferredLanguage variable that is defined in the Choose Language flow, at the very start of the conversation. This step is necessary since dates, times and locations are not said the same in German or in English.
You will need one Airtable table per language. For instance, we have used 4 tables for English (Group classes, Trainings with Enrique, Trainings with Jenny, and Locations), and 4 more for German (same data but translated to German).
Those blocks happen both in the Book class part of the flow and in the Cancel class part of the flow.
Screen capture of the ENGroupClasses spreadsheet in the Airtable spreadsheet that is used to store sample data for this template. Learn more about Airtable integrations here.

Blocks: Clear class and Clear cancel class

Those action blocks clear out the variables that define the class to book or to cancel. By doing so, we avoid the bot taking for granted that the same class is meant if users repeat the same flow. Instead, the bot will ask which class is meant by the user again.

Block: Which advice?

Depending on the booked class, the bot advices users on what to bring for this class through this go-to block. Do not hesitate to personalise this as much as you would like: make your users feel acknowledged! This part of the flow can also happen earlier: you could decide to advise them before they decide on a class.

Flow: Manage trainings

In this flow lies the logic behind the Book training, Cancel training and Reschedule training flows.

Blocks: Find trainings booked

Those action blocks fetch data from the Airtable depending on which teacher is requested to find an already-booked training. We use {userName} as a search value since this is the value noted down in our Airtable if the training is considered as "booked".
Screen capture of the ENJenny spreadsheet in the Airtable, that shows the training sessions availabilities with the teacher named Jenny. Find more about integrations with Airtable here.

Block: Training > Cancel or change?

This go-to block is called after the Find booked trainings blocks. It routes the conversation to a different message if the user chooses to reschedule a training or to change one. To know that, we fill a cancelOrChange variable with the appropriate cancel or change value.

Block: Clear training session

This action block clears out all variables that define the training requested, so that the user can keep on chatting without the bot taking for granted what training they are talking about. This means that users can make new bookings and cancellations.

Flow: Book training

Blocks: Which teacher and language?

These go-to blocks steers the conversation depending on the preferredLanguage and the classTeacher variables, so that the correct Airtable data can be fetched.

Blocks: Find available trainings

Those action blocks fetch data from the Airtable depending on which teacher is requested to find an available training. We use none as search value since this is the value noted down in our Airtable when the training is considered "available".

Block: Book training > Is name known?

This go-to block checks if the bot already knows the userName variable. If not, it will ask the user name here.

Flow: FAQ

In this flow are grouped some of the frequently asked questions and their answers. We focused on 3 topics: covid rules, prices, and opening hours.
To find the opening hours of the nearest office, we have implemented the Find Nearest Location flow.

Flow: Google Search when Not Understood

Google Search is a playful and useful way to continue the conversation even if the bot did not understand what the user said. Whenever the user will say something out of scope, or unclear, a Google Search action block is triggered and will do a web search to find an answer.

Flow: Anything else

Once any flow ends, the conversation leads to this last one, where the bot makes sure that users do not need anything else. Similarly to the Lead Generation flow, if someone is interested to keep in touch, their details will be asked and saved.
Last modified 27d ago