---
title: Booking ChatBot
description: A look into real-world bot templates
---

Imagine we have a chatbot which manages System demo booking to interested clients.

We can have a start menu (first step) as below

```yaml
"MAIN_MENU":
  kind: button
  message:
    body: |
      Hi, I am WCE 🤖, your ERP System booking assistant.

      What would you like to do today?"
    buttons:
      - Book a demo
      - Help
  routes:
    "book a demo": "BOOK_STAGE"
    "help": "HELP_MENU"
```

A lot is happening here, but let's break it down.

The `kind` - Specifies that this template should show as a button message on the end user on WhatsApp.

The `message` - Message to show the user, like a button body

The `buttons` - The buttons to show to the user which the user will select / click

The `routes` - To know where to go when user selects any of the button options we presented them.
The routes maps the user response to the next stage defined in your `templates` folder.

Let's see more templates

<Tabs
    values={[
        { label: 'BOOK_STAGE', value: 'first' },
        { label: 'Start - 1000', value: 'second' },
        { label: 'Choose - 2000', value: 'third' },
        { label: 'End - 3000', value: 'forth' },
    ]}
>
    <TabItem value="first">
        ```yaml
        "BOOK_STAGE":
            kind: button
            message:
                body: "Start your system demo booking request by clicking the start button"
                footer: ERP Demo
                buttons:
                - Start
                - Return
            routes:
                "start": 1000
                "return": "MAIN_MENU"
        ```
    </TabItem>

    <TabItem value="second">
        ```yaml
        1000:
            kind: button
            prop: selectedErp
            message:
                body: "Great choice, select your ERP of choice"
                buttons:
                    - ERPNext
                    - SAP
                    - Odoo
            routes:
                "re:.*": 2000
        ```
    </TabItem>

    <TabItem value="third">
        ```yaml
        2000:
            kind: text
            prop: selectedBookingDate
            message: |
                Kindly provide your preferred demo date and time in 24hr format

                Format: _DD/MM/YYYY HH:MM_ e.g *23/05/2024 10:00*
            routes:
                "re:.*": 3000
        ```

    </TabItem>

    <TabItem value="forth">
        ```yaml
        3000:
            kind: button
            message:
                body: "Your booking has been recorded. I will notify you 30mins before 🙂"
                buttons:
                    - Menu
            routes:
                "menu": "MAIN_MENU"
        ```
    </TabItem>

</Tabs>

By now you can picture what the above is doing.

This will be the chatbot conversation brain and it will be hopping from 1 stage to the other as you define it 😀.

PS: Let's dive into different template kinds
