A messaging conversation dies in two places: where the person has to type and where they have to decide what to type. The interactive formats of the official API target exactly these two points, which is why they change the response rate in ways no text rewrite can. But they also have strict limits, require approval when used in templates, and if misused, turn service into a menu IVR — the format customers have learned to hate on the phone. This text is about using them well.
In this article
- The cost of asking to type
- Available formats
- Quick reply button: when to use
- List: when a button doesn’t fit
- Action buttons: link, call, and code
- Button in template requires approval
- What the choice returns to your system
- How not to become a menu IVR
- Writing a button
- An operation in numbers
- Five mistakes with interactives
- Numbers to track
- Frequently asked questions
The cost of asking to type
Every open-ended question in a conversation charges a toll. The person has to stop, formulate, write, and send — and some give up at each step. In customer service, this toll appears as conversations left unanswered and considered lost when, in fact, they were just too cumbersome to continue.
There is a second cost, less visible and more expensive for the company: free-form responses come in a thousand different formats. "Yes," "yes I want," "okay," "let’s do it," "👍," and "I confirm" mean the same thing and force the system to guess. Any automation built on free text spends its life trying to interpret variations.
Interactive formats solve both at once. The person taps instead of typing, and the system receives an exact identifier instead of a phrase to interpret. It’s the difference between asking and offering.
Available formats
The official API offers a set of formats that don’t exist in the regular app. The ones that support most operations:
- Quick reply buttons. Up to three options appear as buttons below the message. The person taps and the system receives which was chosen.
- Option list. A single button opens a menu with sections and items — many more options than three fit, each with a title and a short description.
- Link button. Takes the person to a web address. Does not return a choice to the system; returns a site visit.
- Call button. Opens the dialer with the company’s number.
- Copy code button. Copies a coupon or verification code with one tap.
- Opt-out buttons. Option to unsubscribe, required in many promotional communications and a protection for the company itself.
All have short character limits — buttons fit in a few words, and text is truncated without warning when exceeded. Writing for this space is part of the job, not a detail.
Quick reply button: when to use
The quick reply button is the right format when there are up to three paths and the decision is immediate. The cases that yield the most:
- Confirmation. "I confirm" / "I need to reschedule" — in scheduling, this reduces no-show rates more than any text reminder.
- Subject triage. "Quote" / "Support" / "Second copy" right at first contact, to direct the conversation to the right person.
- Follow-up. "I’m still interested" / "I’ve resolved it" for those who stopped responding. It’s the cheapest question there is and clears the queue.
- Opt-out. Explicitly offering "I don’t want to receive" reduces complaints, which is what the platform really punishes.
If options exceed three, the format is wrong — and forcing it doesn’t work because the limit is platform-imposed.
Continue reading for free
Fill out once and unlock this and all other blog articles. We charge nothing — we just want to know who we’re writing for.
Takes 20 seconds. Prefer to talk directly on WhatsApp?
List: when a button doesn’t fit
The list solves the case of many options without turning the message into a wall of text. It appears as a single button; when tapped, it opens a menu organized in sections, with a title and description for each item.
It’s the right format to choose a unit, service, time slot, product category, or reason for contact. And it has two often overlooked advantages: the description of each item allows explaining the option without cluttering the conversation, and the list doesn’t take up screen space while closed — the conversation remains readable.
A common mistake is using a list where two buttons would fit. The menu adds an extra tap and a moment of reading; when there are two obvious options, the button always converts better.
A design caution is worth noting: a long list is a symptom of a poorly designed process. Fifteen options mean the company is asking the customer to do the triage that should be done by someone who knows the business. Two short chained lists — category then item — work better than one giant list.
Action buttons: link, call, and code
Action buttons don’t return a choice; they perform something on the device. Each has a natural use and a frequent misuse.
The link button is used to take the person to payment, tracking, document, or scheduling. Misuse is sending to the homepage — the person leaves the conversation and gets lost. Links in messages must arrive exactly where the conversation left off, preferably already identifying the customer.
The call button is underrated. In urgent services, it converts more than any question flow, because someone with a burst pipe doesn’t want to fill anything out.
The copy code button solves a small but annoying problem: coupons the person has to select manually, and verification codes typed incorrectly. It’s mandatory in authentication format and optional in promotions.
One operational detail: the link button can be dynamic, with part of the address coming as a variable. This allows the same template to take each customer to their own order. Without this, each campaign would require a new template.
Button in template requires approval
Here lies the distinction that confuses beginners the most: within the service window, the company freely creates buttons; outside it, buttons are part of the template and undergo review.
In practice:
- If the customer wrote in the last few hours, the company responds with buttons or lists created on the spot, with no approval needed.
- If the company is initiating the conversation, buttons must be in the approved template — text and type defined beforehand, no improvisation.
This has an important design consequence: the template that starts the conversation should include buttons that open the service window. A template without a button asks the person to type, and many don’t type. A template with "I want to know more" and "I’m not interested" turns a broadcast into an open conversation — from there everything is free and cheaper.
There is also the list, which is not available inside templates the same way buttons are. The working standard is: template with buttons to open the conversation, list right after, with the window already open.
What the choice returns to your system
When the person taps a quick reply button, the company’s system receives an event with the identifier of that option — not the text shown on screen, but a code defined by whoever created the message.
This changes what can be built. With free text, automation depends on interpreting words. With an identifier, it branches precisely: whoever tapped "quote" goes to one queue, whoever tapped "support" to another, and there is no ambiguity.
Three precautions to avoid rework:
- Use stable and readable identifiers, like
confirm_appointment. Changing the button text later should not break automation. - Store the choice in the contact record, not just in the flow. It’s commercial information: whoever tapped "still interested" is a hot lead and this needs to survive beyond the conversation.
- Also handle text responses. There will always be people who write "I want" instead of tapping. Ignoring them because they didn’t use the button is the worst possible outcome.
How not to become a menu IVR
The risk with interactives is building on WhatsApp what customers already hate on the phone: a menu tree that never reaches a person. Four rules prevent this.
Maximum depth of two levels. After the second menu, the conversation must reach someone or resolve the issue. Three levels already cause abandonment.
Human exit always visible. One option must be "talk to a person" at every level. Hiding this option doesn’t reduce service cost — it increases complaints.
Menu is not a welcome. Opening the conversation with a seven-item menu before knowing what the person wants reverses the order. Better to ask in one sentence and use the menu later, once the category is known.
Existing customers don’t go through triage. If the system recognizes the contact and knows there is an ongoing order, the first button should be about that order — not the generic menu.
Writing a button
Space is short and every word counts. What works:
- Verb in first person. "I want to reschedule" converts better than "Rescheduling," because it describes the intention of the tapper.
- One idea per button. "See price and deadline" divides attention; choose one.
- Parallel options. If one button is "I confirm," the other is "I need to reschedule" — not "Other options," which is not the same nature.
- No ambiguity between buttons. "Support" and "Help" in the same message paralyze the person.
- The negative is also a button. Offering "I’m not interested" may seem like losing a sale but actually protects the number because it replaces complaints.
An operation in numbers
A clinic with 1,200 appointments per month serves as an example. The plain text reminder, asking "reply YES to confirm," had:
- 1,200 reminders sent
- 1,068 delivered — 89%
- 374 responses — 35% of delivered
- No-show rate of 18% on the schedule
Switching the text to a template with two buttons — "I confirm" and "I need to reschedule" — and keeping everything else the same:
- 1,068 delivered, same level
- 726 responses — 68% of delivered
- Of these, 91 tapped "I need to reschedule"
- No-show rate of 9% on the schedule
The important takeaway isn’t the no-show rate halving — it’s where it came from. The 91 people who tapped "I need to reschedule" were previously silent no-shows: slots no one knew would be empty. With the button, they became advance notices, and each one is a slot the reception can rebook. With an average ticket of R$ 220, the 91 recovered slots represent about R$ 20,000 per month that previously evaporated — produced by two buttons that replaced the word "YES."
Five mistakes with interactives
- Asking to type when a button solves it. Every typing charges a toll and some people give up along the way.
- Using a list where two buttons would fit. The menu adds a tap and a moment of reading, and converts less.
- Sending a template without buttons to start a conversation. Misses the chance to open the window, which makes everything else free and cheaper.
- Hiding the human exit. Doesn’t reduce service cost; increases complaints and reports.
- Ignoring those who respond in text. There will always be people who write instead of tapping, and they tend to be the most interested.
Numbers to track
Five indicators show if interactive formats are working. The interaction rate on delivered — how many tapped an option — is the direct measure of the format. The distribution of choices reveals what the audience really wants and often contradicts company assumptions. The abandonment rate by menu level shows at what depth the conversation dies and usually condemns the third level. The proportion of free-text responses even with buttons available indicates if options cover real cases. And the human exit activation rate should not be treated as automation failure but as data showing where self-service still doesn’t resolve.
Frequently asked questions
How many buttons can I put in a WhatsApp message?
Quick reply buttons go up to three per message, and this limit is platform-imposed — there’s no way to force more. When options exceed three, the correct format is the list: a single button that opens a menu with sections and items, each with a title and short description, accommodating many more alternatives without turning the conversation into a wall of text. The opposite mistake is also common: using a list where two buttons would fit. The menu adds a tap and a moment of reading, and when there are two obvious options, the button always converts better. Remember all formats have short character limits and text is truncated without warning when exceeded, so writing for this space is part of the job.
Do I need Meta’s approval to use buttons?
It depends on who initiates the conversation. Within the service window — that is, when the customer wrote in the last few hours — the company freely creates buttons and lists on the spot, with no approval needed. Outside the window, when the company initiates, buttons are part of the template and undergo review along with the text: type and content must be defined beforehand, no improvisation. This has a golden design consequence: the template that starts the conversation should include buttons that open the window. A template without buttons asks the person to type, and many don’t; a template with "I want to know more" and "I’m not interested" turns a broadcast into an open conversation, and from there everything is free and cheaper.
What does my system receive when the customer taps a button?
An event with the identifier of that option — not the text shown on screen, but a code defined by whoever created the message. This difference changes what can be built: with free text, automation must interpret words, and "yes," "yes I want," "okay," and a thumbs-up emoji mean the same thing in different formats; with an identifier, branching is exact. Three precautions avoid rework: use stable and readable identifiers so changing button text doesn’t break automation; store the choice in the contact record, not just the flow, because whoever tapped "still interested" is commercial information that must survive beyond the conversation; and keep handling text responses, since there will always be people who write instead of tapping — ignoring them is the worst possible outcome.
Does a button really increase response rates?
It does, for a mechanical reason: it eliminates typing. Every open-ended question charges a toll — the person has to stop, formulate, write, and send, and some give up at each step. In an example of a clinic with 1,200 monthly appointments, the text reminder asking "reply YES to confirm" got 35% response on delivered messages, with 18% no-shows; the same reminder with two buttons, "I confirm" and "I need to reschedule," rose to 68% response and dropped no-shows to 9%. The most valuable gain wasn’t the no-show drop itself, but its origin: people who tapped "I need to reschedule" were previously silent no-shows, slots no one knew would be empty and that can now be rebooked in advance.
How to prevent the menu from becoming an IVR customers hate?
Four rules solve this. Maximum depth of two levels: after the second menu, the conversation must reach someone or resolve the issue, because the third level already causes measurable abandonment. Human exit always visible at every level — hiding the option to talk to a person doesn’t reduce service cost, it increases complaints and reports, which the platform punishes. Menu is not a welcome: opening the conversation with seven items before knowing what the person wants reverses the order; better to ask in one sentence and use the menu later, once the category is known. And existing customers don’t go through triage: if the system recognizes the contact and knows there is an ongoing order, the first button should be about that order, not the generic menu.
A button is worth more than the best written question
VeyloCRM creates buttons and lists in conversations, stores the choice in the contact record instead of losing it at the end of service, understands those who respond in text when they don’t tap a button, keeps the option to reach a person always available, and works the same on WhatsApp, Instagram Direct, and Messenger — with a unified history.