Sending interactive messages: buttons and lists
Interactive messages give the recipient buttons or a list to tap instead of typing. There are two kinds, reply buttons and list messages, and both have small fixed limits that decide the design of the conversation more than anything else.
Reply buttons allowed on one interactive message.
Rows allowed in a list message, across up to 10 sections.
Characters allowed in a button title.
Reply buttons
Up to three buttons under a message. The recipient taps one and the reply arrives on your webhook as an ordinary inbound message carrying the button's id, so you match on the id rather than the label. Titles are capped at twenty characters, which is shorter than it sounds and is the constraint that usually forces a rewrite.
- Maximum three buttons per message.
- Title limited to 20 characters.
- Each button carries an id you choose, returned on the reply.
- Optional header, body and footer around them.
List messages
A single button that opens a menu of up to ten rows, grouped into as many as ten sections. Each row has a title, an optional description and an id. Use it where three buttons are not enough, and remember that the recipient has to open the list before seeing anything in it, so the button label carries the weight.
- Up to 10 rows in total, across up to 10 sections.
- Row title limited to 24 characters, description to 72.
- One list per message, and it cannot be combined with buttons.
- Not available in template messages of every category.
How the reply arrives
On the same messages webhook as any other inbound message, with an interactive object naming the button or row id. Nothing separate needs subscribing to.
Match on the id rather than the title. Titles get rewritten by whoever edits the copy, and a handler matching on text breaks silently the first time somebody fixes a typo.
What Coexistence changes
Nothing about buttons and lists themselves. They are ordinary Cloud API messages and work the same way on a Coexistence number as on any other.
What changes is where the reply lands: the customer's tap arrives both in the WhatsApp Business app on the phone and on your webhook, because a Coexistence number delivers to both. A handler that replies automatically should account for a human possibly answering the same message in the app.
Common mistakes
- Matching replies on the button title. Titles get edited; ids do not.
- Designing for more than three buttons. The limit is hard and there is no workaround.
- Forgetting a human may answer the same tap in the WhatsApp Business app.
EasyCoexistence routes message events, including interactive replies, from Meta straight to your endpoint, so a button tap reaches your system with its id intact.
Frequently asked questions
How many buttons can I send?
Three. It is a hard platform limit with no workaround.
What comes back when someone taps?
An ordinary inbound message on the messages webhook, carrying the id you assigned to that button or row.
Can I combine buttons and a list?
No. One message carries one or the other.
Do these cost extra?
No. They are ordinary messages, priced by Meta the same way as any other in that conversation.
Keep reading
Ready to get started?
Set up WhatsApp Coexistence in minutes, not months. The app keeps working on the phone.
Start Free TrialVerified on