Sending Interactive List & Buttons
Supports only through WhatsApp Official Channel
Introduction
WhatsApp keep adding more messages formats to their messaging app to make the communication more seamless and frictionless, July 2021 WhatsApp Introduced a new message type "List Messages" and buttons now made available through Session messages as earlier, button's was earlier available only through Template Messages
From July 2021 onwards it's possible to send messages with optional header, footer in session messages as well, when passing the head and footer the body character will limit to 1024 when compared to the 4000 characters for text only message type.
List Messages
Using list message business can send a menu as message with upto 10 lists or choices separated by optional section and header, a great feature to showcase product category, recent orders, saved card details,faq etc
This type of message offers a simpler and more consistent way for users to make a selection when interacting with a business
List Message Specifications
Users cannot select more than one option at the same time from a list or button message, but they can go back and re-open a previous message.
It's possible to use header and footer
List messages cannot be used as notifications. Currently, they can only be sent within 24 hours of the last message sent by the user. If you try to send a message outside the 24-hour window, you get an error message.
Supported platforms: iOS, Android, and web.
No Template Approval Needed
List can be dynamically generate based on the conversation context
Able to pass your own reference value against each choice so that developers will get the value when a user make a choice.
It's possible to pass upto 10 choices in list and segregate the choice with Sections (Optional)
Can't use Media files with a list messages
Why You Should Use It
User Comprehension
When compared to text-based lists, interactive messages provide a simpler and more consistent format for people to find and select what they want from a business. During testing, people had higher comprehension levels interacting with these features.
Business Outcomes
During testing, chatbots using interactive messaging features achieved significantly higher response rates and conversions compared to those that are text-based.
Personalised
Populated dynamically in real-time and so can be personalised to the customer or situation. For example, you can show a List message of available time slots for appointment booking, or use Reply buttons to show previous delivery addresses.
No Templates
List Messages do not require templates or pre-approvals.
When You Should Use It
List Messages are best for presenting several options, such as:
A customer care or FAQ menu
A take-out menu
Selection of nearby stores or locations
Available reservation times
Choosing a recent order to repeat
Displaying last 10 order details
Showing last few transactions
Displaying Saved Card details
Show delivery address to choose
Understanding List Message Components
Interactive Quick Reply Buttons
WhatsApp first experimented the Quick Reply buttons with WhatsApp Template messages now from July 2021 onwards it's extended to Session messages as well, now business will able to send a message with upto 3 quick reply buttons and button text can now generated dynamically.
Quick Reply Button Specifications
Ability to use with Image/Video/Document/GIF media files
Supports Header & Footer optional
Upto 3 text buttons can be placed in a message
Buttons will automatically disable once a user is selected i.e user able to select only one button at a time
Button supports only Text (no emoji) upto 20 characters
No approval needed so button can be dynamically generated as per the context of the conversation
Able to pass your own reference value against each button so that developers can track which button got clicked by the user
When You Should Use this?
When customer want to make a selection like Confirm an Appointment
Submit feedback about an order
Combine with List to use for an enhanced user experience
Airtime recharge
Changing personal details
Reordering a previous order
Requesting a return
Adding optional extras to a food order
Choosing a payment method
Understand Quick Reply Button Components
Watch Video How List Message & Quick Reply Button combined to build a better conversational experience
Text Vs List Messages & Quick Reply Buttons
Request URL
Method : POST
API Variables
See the API variables used to construct the WhatsApp List Messages & Buttons
Variable | Data Type | Description | Required |
token | string | Your API Token | Mandatory |
application | numeric | 8=WhatsApp Official 919737001155 = Shared Number India | Mandatory |
globalmessage | string | Ability to send static message to a group of numbers | Optional, Mandatory if not passed message in data array |
global_headermessage | string | Global header, maximum 20 characters | Optional |
global_footermessage | string | Global footer, maximum 60 characters | Optional |
data | array | Array to pass dynamic messages | |
number | numeric | Mobile Number with Country Code | Mandatory |
message | string | Message Content | Mandatory, if globalmessage is blank |
header_message | string | 20 Characters Maximum | Optional |
footer_message | string | 60 Characters Maximum | Optional |
interactive | array | ||
interactive_type | numeric | 1= List 2 = Quick Reply Button | Mandatory for Interactive messages |
list_title | string | Title of the List maximum 20 Characters | Mandatory for List Messages |
sections | array | Maximum 10 sections can be created | |
title | string | Title of the sections, choice can be grouped as Sections | Optional, but mandatory if you have more than one Sections |
choices | array | Need to pass the choice details in this array Maximum 10 choices can be passed | |
title | string | Title of the Choice Maximum 20 Characters | Mandatory |
description | string | Description of the Choice Maximum 72 Characters | Optional |
choice_id | string | Your value to track the user selection, you will get this value in the message eventhook variable named "id" Maximum 256 Characters | Mandatory |
buttons | array | Maximum 3 Quick Reply Buttons | |
title | string | Button Name, maximum 20 characters | Mandatory |
button_id | string | Your value to track the user selection, you will get this value in the message eventhook variable named "id" Maximum 256 Characters | Mandatory |
Sample Request - Sending List Messages (Single Contact)
This is a sample request for sending a list menu to a contact
Sample Request - Sending List Messages (Dynamic Messages - Multiple Contacts)
This is a sample request for sending a list menu to multiple contacts and each contact will receive different list menu and message content
Sample Request - Sending List Messages (Multiple Contact - Static)
This is a sample request for sending a list menu to multiple contacts but the message content and list menu is static for all contacts
Supports Only Video/Image/GIF/Document as media files when using with Quick Reply Buttons and maximum 1024 characters allowed in the body contents, Optional Header upto 20 characters, optional Footer upto 60 Characters
Sample Request - Sending Quick Reply Buttons Messages (Single Contact - Static)
This is a sample request for sending Quick Reply button messages to a single contact with static message content
Sample Request - Sending Quick Reply Buttons Messages (Multiple Contact - Dynamic)
This is a sample request for sending Quick Reply button messages to multiple contacts with dynamic message content to each contact.
Getting List Message Selection & Button Click Events
To know the selection made by user in a list message or which button the user is clicked you need to listen to the Global Webhook Event.
You will get the Webhook Event as below, extract the value from the "Interactive" array
type=1 = List Message | type=2=Quick Reply Button
id= the value you passed in each Choice List (choice_id) or Button (button_id)
description=description of the choice, only applicable for list messages
If you need the button or choice title then extract it from "message_in_raw" variable
Use the "context-msg-id" to know which message user responded
Last updated