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

# Send Messages

> Every WhatsApp send step in the Automation builder — what it does, when to use it, and how to set it up.

## What is this?

**Send** steps are how your automation talks to the customer on WhatsApp. Each one sends a different kind of message — plain text, a picture, tappable buttons, a list, an approved template, a form, and more. Pick the one that fits what you want the customer to see.

For Instagram, Facebook, and Web Chat, see [Instagram Steps](/workspace/automation/steps/instagram-steps), [Facebook Steps](/workspace/automation/steps/facebook-steps), and [Web Chat Steps](/workspace/automation/steps/web-chat-steps).

\[SCREENSHOT: automation-steps-send-palette — The builder palette showing the WhatsApp send steps]

## What can I do here?

| Step                                                  | Sends                               | Good for                            |
| ----------------------------------------------------- | ----------------------------------- | ----------------------------------- |
| [Send Text](#send-text)                               | A plain text message                | Greetings, answers, confirmations   |
| [Send Media](#send-media)                             | An image, video, audio, or document | Brochures, photos, voice notes      |
| [Send Button](#send-button)                           | A message with up to 3 buttons      | Simple menus and yes/no choices     |
| [Send List](#send-list)                               | A menu of up to 10 options          | Longer menus                        |
| [Send List (Advanced)](#send-list-advanced)           | A list built from an API            | Live data such as flights or slots  |
| [Send Contact](#send-contact)                         | A contact card                      | Sharing a phone number              |
| [Send Location](#send-location)                       | A map location                      | Shop address                        |
| [Send CTA URL](#send-cta-url)                         | A message with one link button      | Sending people to a page            |
| [Send Template](#send-template)                       | An approved WhatsApp template       | Messages outside the 24-hour window |
| [Send Template (Advanced)](#send-template-advanced)   | A template, with a path per button  | Follow-ups that branch on the reply |
| [Send Flow](#send-flow)                               | A WhatsApp Flow form                | Collecting structured data          |
| [Send Carousel](#send-carousel-beta) *(beta)*         | Swipeable cards                     | Showing several products            |
| [Send Call Request](#send-call-request-beta) *(beta)* | A request to call the customer      | Support calls                       |
| [Send Payment](#send-payment-india-beta) *(beta)*     | A payment request                   | Collecting money in India           |
| [Product Search](#product-search)                     | Products matching a search          | Storefront shopping                 |
| [Product Categorization](#product-categorization)     | Products grouped by category        | Browsing a catalog                  |

<Note>
  WhatsApp only lets you send free-form messages within **24 hours** of the customer's last message. Outside that window, use **Send Template** with an approved template. See [Templates](/workspace/whatsapp/templates).
</Note>

## How to use it

Drag a step onto the canvas, connect it to the step before it, and fill in its settings in the panel that opens. Use **Add Variable** in any text box to insert details like the customer's name.

### Send Text

**What it does:** sends a plain text message.
**When to use it:** greetings, answers, reminders, confirmations — anything that needs no buttons or files.

* **Message Text** (required) — what to send. Add variables such as `{{name}}`.

*Good to know:* the editor shows the length of your text. If variables make it longer when they're filled in, it can go over WhatsApp's limit.

### Send Media

**What it does:** sends an image, video, audio file, or document.
**When to use it:** price lists, product photos, PDFs, voice notes.

* **Media Type** (required) — **Image**, **Video**, **Audio**, or **Document**.
* Upload the file.
* **Filename (Optional)** — the name the customer sees on a document. If you leave it blank, it's taken from the uploaded file.
* **Caption (Optional)** — text that goes with the file. Captions work for image, video, and document only (not audio).

### Send Button

**What it does:** sends a message with up to **3 buttons**. Each tap can lead to a different path.
**When to use it:** simple menus ("Sales / Support / Talk to a person") and yes/no questions.

* **Header Type** — **No Header**, **Text Header**, **Image Header**, **Video Header**, or **Document Header**.
* **Message (Body)** (required) — the question or message.
* **Footer (Optional)** — small text at the bottom.
* **Buttons** — click **Add Button**, then set the **button text** (up to 20 characters) and the **Type**: **Postback** (leads to a path in your flow), **URL** (opens a link), or **Call** (dials a number).

*Good to know:* each Postback button gets its own output on the step — connect each one to what should happen next.

### Send List

**What it does:** sends a menu the customer opens and picks one item from.
**When to use it:** when you have more than 3 choices.

* **Text Header (Optional)** — up to 60 characters; WhatsApp lists only support a text header.
* **Message (Body)** (required), and an optional **Footer**.
* **List Button Text** (required) — the button that opens the list, up to 20 characters. For example, **View Options**.
* **Section Title** and **List Items (up to 10)** — click **Add Item**. Each item needs a title; a description is optional (up to 72 characters).

### Send List (Advanced)

**What it does:** builds the list from live data returned by an API, instead of typing each item yourself.
**When to use it:** when the choices change — available appointment slots, flights, or products from your own system.

1. Write the **Message (Body)** and **List Button Text**.
2. Under **API Request**, choose the **HTTP Method** (GET or POST), enter the **Request URL**, and add any **Query Parameters**, **Headers**, and a **Request Body (JSON)**. Variables work in all of them.
3. Use the **Response Preview** to check what comes back.
4. Under **List Items (up to 10)**, pick the array in the response, then choose which fields become each item's **Option ID**, **Option Title**, and **Option Description**.

### Send Contact

**What it does:** sends a contact card (vCard) the customer can save.
**When to use it:** sharing your support line or a salesperson's number.

* **Contact Name** — first and last name (required).
* **Phone Number** (required) — include the country code, such as +91.
* Optionally **Organization**, **Email**, and **Website**.

### Send Location

**What it does:** sends a map pin.
**When to use it:** sharing your shop or office address.

* **Latitude** and **Longitude** (required, in decimal degrees).
* **Location Name** and **Address** (optional).

To *ask* the customer for their location instead, use [Ask Location](/workspace/automation/steps/ask-questions#ask-location).

### Send CTA URL

**What it does:** sends a message with a single button that opens a link.
**When to use it:** sending customers to your website, booking page, or app.

* **Header Type (Optional)**, **Message Body** (required), and an optional **Footer**.
* **Button Label** (required, for example "Learn More") and **Button URL** (required).

### Send Template

**What it does:** sends a WhatsApp template that Meta has already approved.
**When to use it:** messages you send outside the 24-hour window — order updates, reminders, follow-ups, and campaigns.

* **Select Template** (required) — only approved templates can be sent. A **Template Preview** shows what it looks like.
* **Header Media Source** (if the template has media) — **Static Upload**, or **Dynamic URL** built from a custom field, contact, or webhook value.
* **Template Parameters** — map each variable in the template to **Free Text** or a **Custom/Contact Field**.

Create and manage templates in [Templates](/workspace/whatsapp/templates).

### Send Template (Advanced)

**What it does:** the same as Send Template, but the step gets **one path for each quick-reply button** on the template.
**When to use it:** when the customer's tap should decide what happens next — for example a "Yes, confirm" or "No, reschedule" button.

If the template has no quick-reply buttons, it uses a single default output.

### Send Flow

**What it does:** sends a **WhatsApp Flow** — a form the customer fills in inside WhatsApp — and waits for it to be submitted.
**When to use it:** lead forms, bookings, surveys, and other structured data.

* **Flow** (required) — pick one you've created in [Flows](/workspace/whatsapp/flow). Use **Refresh** to reload the list.
* **Message Body** (required) and **CTA Button Label** (for example "Open form").
* **Submission Deadline** — a number of minutes, hours, or days. After that, the automation follows the **Not Submitted** path. The form stays open for late submissions.

**Paths:** **Submitted** (the customer sent the form) and **Not Submitted** (the deadline passed).

### Send Carousel *(beta)*

**What it does:** sends a row of swipeable cards.
**When to use it:** showing several products or options at once.

* **Main Message Body** (required).
* **Button Type** — **CTA URL Button** or **Quick-Reply Buttons**.
* Add cards with **Add Card**. Each card has a **Header** (image or video) and an optional **Card Body** (up to 160 characters).

*Rules to follow:* all cards use the same header type (all images or all videos), either every card has body text or none do, and with quick replies every card needs the same number of buttons (at least 1).

### Send Call Request *(beta)*

**What it does:** asks the customer's permission to call them. They can approve or decline inside WhatsApp.
**When to use it:** support conversations where a call would be faster than typing.

* **Request Message** (required) — for example, "We would like to call you to help with your order."

*Good to know:* this needs a plan that includes WhatsApp calling.

### Send Payment (India) *(beta)*

**What it does:** sends a payment request through the WhatsApp Payments API.
**When to use it:** collecting a payment for an order, for businesses in India.

* **Reference ID** (required) — used to match payment updates later. Auto-generate one, or take it from a field.
* **Request Message** (required) and **Product Name**.
* **Payment Gateway** (required) — **Razorpay**, **UPI Direct**, **PayU**, **BillDesk**, or **Zaakpay**.
* **Amount** (required) — a number, or a webhook variable such as `{{webhook.order.amount}}`.
* **Payment Configuration ID** (required) — from your WhatsApp Business Account → Payment Settings. This links your gateway to WhatsApp.
* Optional gateway-specific fields, such as a Razorpay receipt ID.

### Product Search

**What it does:** searches your [Storefront](/workspace/catalog/overview) catalog for what the customer typed and sends the matching products.
**When to use it:** letting customers search for products in chat.

* **Search Fields** (required) — where to look: **Product Name**, **Description**, **Short Description**, or **Rich Text Description**.
* **Categorization Method** (required) — group results by Facebook Product Category, Google Product Category, Product Category, Brand, Material, or Pattern.
* **Search Text Field** (required) — the field that holds the customer's search words.

*How to build it:* first use an [Ask Text](/workspace/automation/steps/ask-questions#ask-text) step to get the customer's words (saved into a field), then connect it to Product Search. Large result sets are split into pages automatically.

### Product Categorization

**What it does:** shows your catalog grouped by category, with the number of items in each, such as "Nuts (9)".
**When to use it:** letting customers browse instead of search.

* **Categorization Method** (required) — the same options as Product Search.
* **Message Text** (required) — the message shown above the categories.

## Troubleshooting / Technical Notes

* **The message isn't delivered.** If the customer hasn't written in the last 24 hours, use **Send Template** instead of a free-form step.
* **A template isn't in the list.** Only approved templates appear. Check its status or sync in [Templates](/workspace/whatsapp/templates).
* **A button does nothing.** Each Postback button needs its own path connected to a next step.
* **Send Flow never continues.** It waits for the form. Connect the **Not Submitted** path and set a **Submission Deadline**.
* **A beta step is missing or locked.** It may need a plan feature — see your plan or contact support.

## Related docs

* [Builder Steps overview](/workspace/automation/steps/overview)
* [Ask Questions](/workspace/automation/steps/ask-questions)
* [Templates](/workspace/whatsapp/templates)
* [Flows](/workspace/whatsapp/flow)
* [Storefront](/workspace/catalog/overview)
