Resources Insight
WhatsApp chatbot buttons and list messages: limits, webhooks, costs, and where each one fits
Reply buttons, list messages, a link button, a location request and an address form are the parts a WhatsApp bot is built from. Each has exact limits, each sends something different back, and since 1 October 2026 each one is a chargeable service message.
The short version
- Reply buttons: up to 3 per message, 20-character labels. List messages: one 20-character button opening up to 10 rows across up to 10 sections, with 24-character titles and 72-character descriptions.
- A tap comes back as a messages webhook: a button reply or a list reply carrying the ID and title you set. A CTA URL button sends nothing back; it opens the browser.
- Location requests return coordinates when the customer shares them. Address messages, for Indian businesses and Indian customers only, return a structured address with PIN code.
- All of these are non-template messages sent inside the 24-hour window. From 1 October 2026 Meta charges them after 1,000 per business phone number per month, at ₹0.1150 per delivered message to an Indian number before GST.
- Use buttons for two or three choices, a list for four to ten, and a link button only when the next step lives on a web page. Don't resend the menu after every message.
Abhay Deshpande runs Deshpande Appliance Care in Nashik, nine technicians and one WhatsApp number, and about 70 new messages a day in the summer (an invented example). They read “AC service chahiye”, “fridge cooling nahi kar raha”, and “mera complaint ka kya hua”. A first reply with three buttons sorts most of them before a person reads anything. Which message type to use, and what Meta allows in each, is what this guide covers.
Two things belong on the first screen. Every message type here is an interactive, non-template message, which means it can only be sent inside the 24-hour window after the customer’s last message. And since 1 October 2026 these are chargeable service messages: 1,000 free per business phone number per month, then ₹0.1150 per delivered message to an Indian number, before GST, on Meta’s 1 October 2026 rate card. Buttons on approved templates, which can be sent any time, follow different rules and are covered in our marketing template formats guide.
What are WhatsApp interactive messages?
They are messages with tappable parts, sent through the Cloud API inside the customer service window without a template. Meta documents reply buttons, list messages, call-to-action URL buttons, location requests, address messages (India only), media carousels, product messages from a catalog, and Flows, which are forms. Each tap or submission comes back to you as a messages webhook. (Terms such as “customer service window” and “interactive message” are defined in our glossary.)
Product messages have their own guide, WhatsApp catalog and product messages, and forms have WhatsApp Flows explained. The rest are below.
Reply buttons: up to three choices
A reply buttons message “allow[s] you to send up to three predefined replies for users to choose from”. It is the right type for a confirmation or a three-way triage.
Meta’s limits: up to 3 buttons; a label of at most 20 characters, unique within the message; a button ID of up to 256 characters that you choose; body text up to 1,024 characters with URLs hyperlinked; an optional header of text, image, video or document; and an optional footer of 60 characters.
When the customer taps, you receive a messages webhook with "type": "interactive" and a button_reply block carrying the button’s ID and title, plus a context block with the ID of the message they tapped. That context ID is what lets a bot know which question the answer belongs to when the customer taps an old message.
Twenty characters is shorter than it sounds: “Talk to a person” fits with four to spare; “Reschedule my appointment” doesn’t fit. Template quick replies allow 25 characters and up to 10 buttons, and their taps arrive as a button webhook with a payload, a different shape from the interactive one.
List messages: a menu of up to ten
A list message shows one button that opens a menu of rows, and “selecting an option triggers a messages webhook that identifies the option the user selected”. It is the right type when there are four to ten choices.
Meta’s limits, from the page updated 2 July 2026: one button, up to 20 characters; up to 10 sections, with “up to 10 rows for all sections combined”; section titles of 24 characters; row titles of 24 characters; optional row descriptions of 72 characters; row IDs of up to 200 characters; an optional header, text only, of 60 characters; a body of up to 4,096 characters; and a footer of 60.
The webhook is the same interactive type with a list_reply block holding the row’s ID, title and description. The 72-character description is where a list beats buttons: “AC split” as the title, “Service, gas top-up or repair, 2 hr slot” as the description.
CTA URL button: a link without the ugly URL
Meta’s reason for this type is candid: “WhatsApp users may be hesitant to tap raw URLs containing lengthy or obscure strings”. A CTA URL message maps any URL to a button with a label of up to 20 characters, under a body of 1,024 characters, with an optional text, image, video or document header and a 60-character footer.
Nothing comes back when it is tapped. The button opens the phone’s browser, so if you need to know who clicked, the page on the other end has to tell you. Use it for a booking page, a payment link or a tracking page, and prefer a reply button when the next step can stay in the chat.
Location request: ask where they are
A location request message shows body text and a Send location button; “when a WhatsApp user taps the button, a location sharing screen appears”. When they share, a messages webhook of type location arrives with latitude and longitude. The name and address fields “appear only if the WhatsApp user chooses to share” them, so a bot should treat them as optional.
For a technician visit it saves two messages of “near which landmark?”. It is also the natural follow-up to a list row like “Book a home visit”.
Address messages, for India only
Address messages “give your users a simpler way to share the shipping address with the business”, and Meta’s page opens with a restriction: “This feature is only available for businesses based in India and their India customers.” The customer sees a form with name, phone number, PIN code (six characters), flat or house number, floor, tower, building name, address, landmark or area, city and state. The request must name the country, and the customer’s number must carry the matching country code or the request is refused.
For a store that confirms cash-on-delivery orders, this replaces the address typed in three fragments. The COD confirmation playbook shows where it sits in that flow.
Media carousel: cards with pictures
An interactive media carousel “display[s] a set of horizontally scrollable media cards. Each card can display an image or video header, body text, and either quick-reply buttons or a URL button.” It is the interactive cousin of the carousel template, usable inside the window without approval.
The rules: between 2 and 10 cards; a message body of up to 1,024 characters is required, and the message itself has no header, footer or other buttons; every card needs an image or video header; card text is optional, at most 160 characters with up to two line breaks; each card has either one URL button or one or more quick replies, with 20-character labels and 256-character IDs; and “button types and numbers must match across all cards”. For Abhay, three cards for three service plans, each with a “Choose this plan” quick reply, is the use.
What a three-button triage looks like
Abhay’s first reply does the sorting. The customer taps a button, picks an appliance from a list, shares a location, and confirms a slot, in four messages from the business and four taps from the customer.
- Pratik Sen: AC service chahiye, cooling kam hai 9:12 am
- Deshpande Appliance Care: Hi Pratik, Deshpande Appliance Care here. What can we do for you? 9:12 am
- Book a service
- Track my request
- Talk to a person
- Pratik Sen: Book a service 9:13 am
- Deshpande Appliance Care: Which appliance? Tap "Choose appliance" to see the list. 9:13 am
- List message: AC split (Service, gas top-up or repair) · AC window · Refrigerator · Washing machine · Water purifier
- Pratik Sen: AC split 9:14 am
- Deshpande Appliance Care: Please share your location so we can send the nearest technician. 9:14 am
- Location request · customer shares a pin in Panchavati
- Deshpande Appliance Care: Nearest slot is tomorrow, 11 am to 1 pm. Visit charge Rs 349, adjusted against any repair. 9:15 am
- Confirm
- Change slot
- Pratik Sen: Confirm 9:15 am
- Tagged: AC split · Panchavati · assigned to tomorrow's route
Where each one fits
| You need | Use | Why |
|---|---|---|
| Two or three choices | Reply buttons | One tap, no scrolling, the answer stays in the thread |
| Four to ten choices | List message | Sections and 72-character descriptions; one button keeps the message short |
| A page to open | CTA URL button | A readable label instead of a long link; nothing comes back |
| Where the customer is | Location request | Coordinates, not a typed landmark |
| A delivery address | Address message | Structured fields with PIN code; India only |
| Several options with pictures | Media carousel | 2 to 10 cards, same buttons on each |
| A product from your catalog | Product messages | Opens the item with a cart; see the catalog guide |
| A multi-field form | Flows | Several screens inside the chat; see the Flows guide |
What do interactive messages cost?
The same as any other service message: free until the 1,000th in a month on that number, then ₹0.1150 per delivered message to an Indian number before GST, from 1 October 2026. Meta’s interactive message pages, captured in August and September, don’t mention price; the pricing page governs. Taps and replies are incoming and cost nothing, and Meta’s rule that the window resets each time the user messages you means every tap keeps the window open.
Abhay’s summer month: 70 chats a day over 26 working days is 1,820 chats. If the bot sends three messages in each and a technician sends one more in half of them, that is 5,460 + 910 = 6,370 service messages. Minus 1,000 free, 5,370 × ₹0.1150 = about ₹618 before GST (details in our news brief on the change). What that sum rewards is fewer, fuller messages: a menu and a question in one message rather than two.
Five mistakes in bot flows
- A list for two options. “Yes” and “No” behind a “Choose” button is one tap more than it should be. Use reply buttons.
- Buttons for twelve options. There are three buttons, so the flow becomes “More options” chained three deep. Use a list, and if twelve rows won’t fit in ten, the menu needs editing, not another page.
- Resending the menu after every message. The customer who typed “AC split” in words gets the appliance list again. A bot should read the text first and ask only when it can’t.
- Labels over 20 characters. They fail to send. Write “Change slot” (11), not “Reschedule my appointment” (25). Keep template quick replies (25 characters) and interactive buttons (20) as separate limits in your head.
- A link button where the chat could continue. A CTA URL to a booking page loses the thread and the tap. If the booking is three questions, ask them with buttons.
Twelve flows with every message and button written out are in our bot examples, and the automation guide covers which flows to build first.
Ice breakers and commands: the before-the-first-message tools
Ice breakers are “customizable, tappable text strings that appear in a message thread the first time you chat with a user”, configured per phone number in WhatsApp Manager. Up to 4, each at most 80 characters, no emojis. A tap arrives as an ordinary text message whose body is the ice breaker string, so the bot treats it like typed text. Commands, up to 30 per number with a 32-character command and a 256-character hint, appear when a customer types a forward slash.
Two caveats. A customer who arrived through a wa.me link with pre-filled text doesn’t see the ice breakers. And the welcome message that fired when a customer opened a chat, with its request_welcome webhook, was removed on 27 March 2026 according to Meta’s changelog, so the first thing your bot can react to is the first message.
Start with the three doors. Write the first reply with the three buttons that cover most of your messages, 20 characters each, before anything else. Our chatbot guide explains when a button flow is enough and when an AI agent earns its place. If the third door gets more taps than the first two, the menu is wrong, and that is the number to watch in week one.
Common questions
How many buttons can a WhatsApp chatbot message have?
An interactive reply buttons message can carry up to three buttons, each with a label of at most 20 characters that must be unique within the message. For more choices, use a list message, which opens up to 10 rows from a single button. Buttons on approved templates follow different limits: up to 10 quick replies with 25-character labels.
What is a WhatsApp list message?
A list message is an interactive message with one button of up to 20 characters that opens a menu. The menu holds up to 10 rows, grouped into up to 10 sections, with row titles of 24 characters and optional descriptions of 72. When the customer picks a row, Meta sends a webhook carrying the row's ID and title.
What does the webhook return when a customer taps a button?
For an interactive reply button, a messages webhook of type interactive with a button reply block holding the button's ID and title, plus the ID of the message that was tapped. For a list row it holds the row ID, title and description. A CTA URL button sends nothing back, because the tap opens a browser.
Are WhatsApp interactive messages free?
No longer. They are non-template messages sent inside the 24-hour window, which Meta calls service messages. From 1 October 2026 each business phone number gets 1,000 service messages a month free, and after that Meta charges ₹0.1150 per delivered message to an Indian number, before GST. Customer taps and replies are incoming and cost nothing.
Sources
- Interactive reply buttons messages (Meta for Developers) · Updated 21 May 2026, read live 15 Oct 2026
- Interactive list messages (Meta for Developers) · Updated 2 Jul 2026, read live 15 Oct 2026
- Interactive call-to-action URL button messages (Meta for Developers) · Updated 2 Jul 2026, read live 15 Oct 2026
- Location request messages (Meta for Developers) · Common Crawl capture of 8 Aug 2026
- Address messages (Meta for Developers) · Updated 2 Jul 2026
- Interactive media carousel messages (Meta for Developers) · Updated 21 May 2026
- Interactive messages webhook reference (Meta for Developers) · Updated 3 Aug 2026
- Button messages webhook reference (Meta for Developers) · Updated 17 Jun 2026
- Conversational components (Meta for Developers) · Updated 16 Jun 2026
- WhatsApp Business Platform changelog (Meta for Developers) · Entry of 27 Mar 2026 on the removal of the welcome message
- Pricing on the WhatsApp Business Platform (Meta for Developers) · Updated 30 Sep 2026; India rates on the 1 Oct 2026 rate card
Run this on your own number
Create an account, connect your WhatsApp number, and invite your team.