Dynamic lists in BotSailor allow you to create interactive WhatsApp messages by dynamically generating rows using data stored in custom fields. These lists are based on JSON objects, where each row’s title, description, and values are populated by specifying the required keys (like product_name
, price
, etc.).
This guide will walk you through how to configure and use this feature effectively, with an example based on a product catalog.
Dynamic lists are rows in interactive messages that are automatically generated based on JSON object data stored in a custom field. By specifying the appropriate keys, you can dynamically create personalized rows without manually defining each one. JSON object can be saved saved for each subscriber by using HTTP API call inside bot flow.
Dynamic lists make WhatsApp messages more engaging by automatically fetching and displaying content. For a practical example of how to use dynamic lists with WooCommerce products, check out our guide: How to Display WooCommerce Products Inside WhatsApp
When displaying rows inside WhatsApp using Interactive List Messages, there is a limitation imposed by WhatsApp: only 10 products can be included in a single interactive message.
If you want to display more than 10 row, you will need to send multiple interactive messages. For example, the first interactive message can showcase 10 rows, and subsequent messages can contain additional rows.
Suppose you want to send a product catalog to a user. Your data (API response) might look like this:
[
{
"product_name": "Apple iPhone 15 Pro",
"price": "$999",
"description": "The Apple iPhone 15 Pro features a powerful A17 Pro chip, 48MP camera system, and a sleek titanium design for maximum performance and durability.",
"buy_link": "https://www.apple.com/iphone-15-pro/"
},
{
"product_name": "Samsung Galaxy S24 Ultra",
"price": "$1,199",
"description": "The Samsung Galaxy S24 Ultra offers a stunning 6.8-inch AMOLED display, a 200MP camera, and cutting-edge performance with the latest Snapdragon processor.",
"buy_link": "https://www.samsung.com/galaxy-s24-ultra/"
}
]
Using this feature, each product dynamically generates a row with its respective title, description, and action buttons.
Example API Response:
[
{
"product_name": "Apple iPhone 15 Pro",
"price": "$999",
"description": "The Apple iPhone 15 Pro features a powerful A17 Pro chip, 48MP camera system, and a sleek titanium design for maximum performance and durability.",
"buy_link": "https://www.apple.com/iphone-15-pro/"
},
{
"product_name": "Samsung Galaxy S24 Ultra",
"price": "$1,199",
"description": "The Samsung Galaxy S24 Ultra offers a stunning 6.8-inch AMOLED display, a 200MP camera, and cutting-edge performance with the latest Snapdragon processor.",
"buy_link": "https://www.samsung.com/galaxy-s24-ultra/"
}
]
ProductCatalog
). And map value will be List ItemsOnce the custom field is populated with the API response, configure the dynamic rows in your interactive message.
ProductCatalog
).product_name
to dynamically display values like "Apple iPhone 15 Pro" or "Samsung Galaxy S24 Ultra".#custom_field->key#
#ProductCatalog->price# - #ProductCatalog->description#
will display:$999 - The Apple iPhone 15 Pro features a powerful A17 Pro chip, 48MP camera system, and a sleek titanium design for maximum performance and durability.
SelectedProduct
).buy_link
to save the product’s purchase link (e.g., https://www.apple.com/iphone-15-pro/
).JSON Example:
[
{
"product_name": "Apple iPhone 15 Pro",
"price": "$999",
"description": "Powerful A17 Pro chip and 48MP camera.",
"buy_link": "https://www.apple.com/iphone-15-pro/"
},
{
"product_name": "Samsung Galaxy S24 Ultra",
"price": "$1,199",
"description": "6.8-inch AMOLED display and 200MP camera.",
"buy_link": "https://www.samsung.com/galaxy-s24-ultra/"
}
]
Dynamic Configuration:
product_name
#ProductCatalog->price# - #ProductCatalog->description#
buy_link
2. Configuration for Appointment (One-Dimensional Array): Let you have saved the JSON in AppointmentDateList
custom field.
{
"0": "07-01-2025",
"1": "08-01-2025",
"2": "09-01-2025"
}
Dynamic Configuration:
#AppointmentDateList#
BLANK
(automatic iteration, blank
because it doesn’t have any associative index).AppointmentDate#
BLANK
to save the chosen value in the custom
field. This setup automatically iterates the JSON values to populate the rows dynamically.
Let the JSON format is like array inside another associative array
{
"success": true,
"available_dates": {
"0": "07-01-2025",
"1": "08-01-2025"
}
}
Dynamic Configuration:
AppointmentDateList
#.available_dates
.BLANK
or use the static. AppointmentDate
#.This configuration will fetch dates dynamically from the available_dates key.
How to Display WooCommerce Products Inside WhatsApp
BotSailor’s dynamic list feature provides a simple yet powerful way to create personalized and interactive WhatsApp messages. By referencing specific keys from JSON objects, you can dynamically populate rows with relevant data like product names, descriptions, and links.
Start using dynamic lists today to elevate your user engagement and provide tailored experiences for your customers!
Categories :
Stay ahead of the curve with BotSailor`s latest articles. Dive into expert analyses, industry trends, and actionable tips to optimize your experience. Explore our articles now and unlock the full potential of your business.
BotSailor is a complete WhatsApp marketing automation; it has chatbot, live chat, broadcasting, Shopify & WooCommerc...
READ MOREYou can send Woocommerce Order Notifications to customers via WhatsApp by BotSailor in a very easy and straightforward w...
READ MOREWhat is BotSailor? Basically, BotSailor is a comprehensive AI chatbot marketing platform for instant messaging apps lik...
READ MORE
(0) Comments