> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dogebot.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Your first flow

> Build a WhatsApp flow step by step.

A **flow** is what your WhatsApp bot does when something happens. Let's make a bot that says hello when someone writes to your number.

<Steps>
  <Step title="Pick your WhatsApp number">
    In the bot picker at the top of the sidebar, pick your WhatsApp number.
  </Step>

  <Step title="Make a new flow">
    Open **Flows** and make a new flow. Pick what starts it: **When a WhatsApp message arrives**.
  </Step>

  <Step title="Add a message block">
    Add the block that sends a WhatsApp message under the first block and connect them. Type:

    ```text theme={null}
    Hi {wa_name|there}! Thanks for your message. We will answer you soon.
    ```
  </Step>

  <Step title="Look at the chat preview">
    The builder has a **chat preview** that shows how your message looks in WhatsApp, with backup values too.
  </Step>

  <Step title="Save">
    Save the flow. You see "Flow saved. It runs on the next message to your number." Send a message to your number from another phone. Your bot answers!
  </Step>
</Steps>

## What can start a flow?

| Trigger | When it runs |
| - | - |
| **When a WhatsApp message arrives** | For every message: text, photos, files and locations. |
| **When a message matches keywords** | When a message **contains**, **starts with** or **equals** words you choose, like `price` or `hours`. |
| **When someone taps a button or choice** | Whenever someone answers your buttons or a choice list. |
| **When a web request arrives** | When another app (a form, a shop, Zapier, Make) sends data to your number's web address. Each field arrives as `\{hook_field\}`. Set **Send messages to** to the customer's number, usually `\{hook_phone\}`. See [Apps and services](/whatsapp-bots/apps-and-services). |

## What can a flow do?

| Block | What it does |
| - | - |
| **Send a WhatsApp message** | Sends text. |
| **Ask with buttons** | Up to **3 buttons**. Each button runs its own blocks. |
| **Choice list** | A list of up to **10** choices to pick from. |
| **Photo, video or file** | Sends a picture, video or document. |
| **Location** | Sends a pin on the map, like your shop. |
| **Reaction** | Reacts to their message with an emoji. |
| **Approved template** | Sends a Meta-approved template. The only way to message someone after the 24-hour window. |
| **Mark as read** | Shows blue ticks on their message. |
| **Send to an app** | Sends the chat's details to Zapier, Make or any web address. The answer comes back as `\{app_reply\}`. |
| **Add a row to Google Sheets** | Saves details as a new row in your Sheet. |
| **Hand over to a person** | Stops the bot for this chat and puts it in your **Inbox** for a human. |

Checks, variables, Pause, loops, web requests and Replay notes work here too. WhatsApp buttons on the board are WhatsApp green.

## Example: a simple menu

1. Trigger: **When a WhatsApp message arrives**.
2. **Ask with buttons**: `Hi \{wa_name|there\}! What do you need?` with buttons **Prices**, **Opening hours**, **Talk to a person**.
3. Under **Prices**: send your price list.
4. Under **Opening hours**: send `We are open Monday to Friday, 9:00 to 17:00.`
5. Under **Talk to a person**: **Hand over to a person**, then send `A team member will answer you here soon.`

## Start from a ready-made flow

At the top of the **Flows** page there are ready-made flows, in categories. Press **Use this** to save a copy and open it in the builder. Then change the words and links. They are also great examples of how flows are built.

| Ready-made flow | What it does |
| - | - |
| **Welcome message** | Says hello to new people. |
| **Questions and answers** | Answers common questions. |
| **Opening hours** | Tells people when you are open. |
| **Bookings** | Takes a booking and saves it to Google Sheets. |
| **Order status** | Looks up an order in your shop. |
| **Price list** | Sends your prices. |
| **Hand over to a person** | Passes the chat to a real person in the Inbox. |
| **Feedback** | Asks for feedback and saves it to Google Sheets. |
| **New enquiry to Zapier or Make** | Sends new enquiries to your other apps. |
| **Order confirmation from your shop** | Sends a message when your shop gets an order. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.