Send List Message
Sends an interactive list message via the WhatsApp Business Cloud API. Recipients can tap a button to view and select from a list of options organized in sections.
Common Properties
- Name - The custom name of the node.
- Color - The custom color of the node.
- Delay Before (sec) - Waits in seconds before executing the node.
- Delay After (sec) - Waits in seconds after executing node.
- Continue On Error - Automation will continue regardless of any error. The default value is false.
If the ContinueOnError property is true, no error is caught when the project is executed, even if a Catch node is used.
Inputs
- Phone Number ID - WhatsApp Business Phone Number ID from Meta Developer Portal.
- To Phone Number - Recipient's phone number with country code (without + sign). Example:
1234567890. - Body Text - Message body text (max 1024 characters).
- Button Text - Text shown on the button to open the list (max 20 characters).
- Sections - Array of section objects containing list items.
Options
- API Version - Meta Graph API version. Default is
21.0. - Header Text - Optional header text (max 60 characters).
- Footer Text - Optional footer text (max 60 characters).
- Access Token - WhatsApp Cloud API Access Token credential (required).
Output
- Response - The complete API response object containing message details and status.
How It Works
The Send List Message node sends an interactive list menu. When executed, the node:
- Validates all required inputs
- Parses the sections array with rows
- Constructs the interactive list payload
- Adds optional header and footer if provided
- Sends a POST request to the WhatsApp API
- Returns the API response
When a recipient taps the button and selects an item, their response is received in the Receive Events node with the item ID.
Requirements
- A WhatsApp Business Account in Meta Developer Portal
- Access Token with appropriate permissions
- Valid sections array with at least 1 section
- Each section must have at least 1 row
- Maximum 10 sections
- Maximum 10 rows per section
Sections Structure
[
{
"title": "Section 1",
"rows": [
{
"id": "item_1",
"title": "Option 1",
"description": "Description for option 1"
},
{
"id": "item_2",
"title": "Option 2",
"description": "Description for option 2"
}
]
},
{
"title": "Section 2",
"rows": [
{
"id": "item_3",
"title": "Option 3"
}
]
}
]
Section Fields:
- title: Section title (optional, max 24 characters)
- rows: Array of row objects (required, at least 1)
Row Fields:
- id: Unique identifier (required, max 200 characters)
- title: Item title (required, max 24 characters)
- description: Item description (optional, max 72 characters)
Error Handling
The node will return specific errors in the following cases:
- Empty or invalid Phone Number ID
- Empty or invalid recipient phone number
- Empty or invalid Body Text
- Empty or invalid Button Text
- Empty sections array
- Too many sections (max 10)
- Too many rows per section (max 10)
- Section missing rows
- Row missing id or title
- Text exceeding character limits
- Invalid access token
- Network connectivity issues
Example: Product Catalog
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
14155551234 - Body Text:
Browse our product catalog - Button Text:
View Products - Sections:
[
{
"title": "Electronics",
"rows": [
{
"id": "prod_laptop",
"title": "Laptop",
"description": "High-performance laptop - $999"
},
{
"id": "prod_phone",
"title": "Smartphone",
"description": "Latest model - $699"
}
]
},
{
"title": "Accessories",
"rows": [
{
"id": "prod_headphones",
"title": "Headphones",
"description": "Wireless headphones - $199"
},
{
"id": "prod_case",
"title": "Phone Case",
"description": "Protective case - $29"
}
]
}
]
Options:
- Header Text:
Product Catalog - Footer Text:
Tap to browse
Example: Customer Service Menu
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
14155551234 - Body Text:
How can we help you today? - Button Text:
Select Option - Sections:
[
{
"title": "Support",
"rows": [
{
"id": "support_technical",
"title": "Technical Support",
"description": "Help with technical issues"
},
{
"id": "support_billing",
"title": "Billing Support",
"description": "Questions about billing"
}
]
},
{
"title": "Information",
"rows": [
{
"id": "info_hours",
"title": "Business Hours"
},
{
"id": "info_location",
"title": "Our Locations"
}
]
}
]
Example: Appointment Booking
Inputs:
- Phone Number ID:
123456789012345 - To Phone Number:
{{customer.phone}} - Body Text:
Select your preferred appointment time - Button Text:
View Times - Sections:
[
{
"title": "Morning Slots",
"rows": [
{
"id": "apt_0900",
"title": "9:00 AM",
"description": "Available"
},
{
"id": "apt_1000",
"title": "10:00 AM",
"description": "Available"
},
{
"id": "apt_1100",
"title": "11:00 AM",
"description": "Limited availability"
}
]
},
{
"title": "Afternoon Slots",
"rows": [
{
"id": "apt_1300",
"title": "1:00 PM",
"description": "Available"
},
{
"id": "apt_1400",
"title": "2:00 PM",
"description": "Available"
}
]
}
]
Handling List Responses
When a user selects an item, the response is received in the Receive Events node:
Webhook Payload:
{
"messageType": "interactive",
"messageBody": "item_id_here",
"from": "14155551234",
...
}
Flow Example:
// In your flow logic
switch (messageBody) {
case "prod_laptop":
// Handle laptop selection
break;
case "prod_phone":
// Handle phone selection
break;
case "support_technical":
// Route to technical support
break;
default:
// Handle unknown selection
}
Usage Notes
- Lists are ideal for more than 3 options (use Reply Buttons for 3 or fewer)
- Sections help organize related options
- Descriptions provide additional context
- Button text should be action-oriented ("Select", "Choose", "View")
- Maximum 10 sections and 10 rows per section
- Interactive messages only work within the 24-hour window
- Cannot be used in template messages
- Users see a scrollable list when they tap the button
Tips for RPA Developers
- Use lists for menus, catalogs, and multi-option selections
- Group related items in sections
- Keep titles concise (max 24 characters)
- Use descriptions to provide additional details
- Implement consistent ID naming conventions
- Map item IDs to actions in your code
- Log selections for analytics
- Provide a way to go back or cancel
- Test list scrolling on different devices
- Consider pagination for very long lists
Common Use Cases
FAQ Menu:
{
"bodyText": "Select a topic to learn more",
"buttonText": "View FAQs",
"sections": [
{
"title": "Account",
"rows": [
{"id": "faq_signup", "title": "How to sign up"},
{"id": "faq_login", "title": "Login issues"},
{"id": "faq_password", "title": "Reset password"}
]
},
{
"title": "Orders",
"rows": [
{"id": "faq_track", "title": "Track my order"},
{"id": "faq_return", "title": "Return policy"},
{"id": "faq_shipping", "title": "Shipping info"}
]
}
]
}
Location Selection:
{
"bodyText": "Select your nearest store",
"buttonText": "View Stores",
"sections": [
{
"title": "San Francisco",
"rows": [
{"id": "store_sf_downtown", "title": "Downtown", "description": "123 Market St"},
{"id": "store_sf_mission", "title": "Mission", "description": "456 Valencia St"}
]
},
{
"title": "Oakland",
"rows": [
{"id": "store_oak_broadway", "title": "Broadway", "description": "789 Broadway"}
]
}
]
}
Service Selection:
{
"bodyText": "Select the service you need",
"buttonText": "View Services",
"sections": [
{
"title": "Hair Services",
"rows": [
{"id": "svc_haircut", "title": "Haircut", "description": "$50 - 30 min"},
{"id": "svc_color", "title": "Hair Coloring", "description": "$120 - 2 hours"}
]
},
{
"title": "Nail Services",
"rows": [
{"id": "svc_manicure", "title": "Manicure", "description": "$40 - 45 min"},
{"id": "svc_pedicure", "title": "Pedicure", "description": "$60 - 1 hour"}
]
}
]
}
Character Limits Summary
- Body Text: 1024 characters
- Button Text: 20 characters
- Header Text: 60 characters
- Footer Text: 60 characters
- Section Title: 24 characters
- Row Title: 24 characters
- Row Description: 72 characters
- Row ID: 200 characters
Common Errors and Solutions
Error: Too many sections
- Maximum 10 sections allowed
- Combine related items or split into multiple messages
Error: Too many rows
- Maximum 10 rows per section
- Organize into more sections or reduce options
Error: Title too long
- Section titles: max 24 characters
- Row titles: max 24 characters
- Use abbreviations or shorter phrases
Error: Empty sections
- Each section must have at least 1 row
- Remove empty sections
Best Practices
- Use clear, descriptive section titles
- Keep row titles concise and scannable
- Use descriptions for additional context
- Order items logically (alphabetically, by popularity, etc.)
- Limit total items for better UX (avoid overwhelming users)
- Test list display on different devices
- Provide a way to cancel or go back
- Use consistent naming conventions
- Monitor which items are selected most
- Follow WhatsApp Business Policy for content
Performance Considerations
- Lists with many items may take longer to render
- Consider user scrolling effort (limit items when possible)
- Test performance on slower devices
- Cache frequently used list structures
- Generate lists dynamically based on context