When to Use Dynamic Content
Dynamic Content is the ideal solution for businesses in advanced automation scenarios:- Inventory and Catalog Integration: Look up and display live product catalogs, stock availability, and prices directly from your server or website inside the chatbot.
- AI Agent Integration: Configure AI Agents to return rich responses (Rich Responses) as visual Cards or Carousels with instant order buttons.
- Personalized Data Updates: Retrieve appointments, loyalty points, discount codes, or order tracking statuses customized for each contact.
- Automated Segmentation and Routing: Deliver visually appealing messages while simultaneously applying Tags, updating Custom Fields, or transferring chats to live support agents.
Standard JSON Data Structure Overview
Dynamic Content payloads must be wrapped inside a valid JSON object containing 2 primary arrays at the root level:- messages: Contains the list of messages displayed directly to the end user. You can send one or multiple sequential messages within this array.
- actions: Contains management commands executed immediately by ChatbotX when messages are dispatched.
Note: ChatbotX automatically attaches the user ID in the HTTP Header of every request sent to your server as X-USER-ID. You can use this value to identify the interacting contact.
Supported Message Templates (messages)
Themessages array supports all standard message formats to display to the user. Here are the detailed JSON structure templates:
Send a text message
Template to send a simple text message to the contact:Sending more than a single message
Template to send two or more sequential text messages in a single response:Sending a text message with buttons
A text message can contain up to 3 buttons. The title of each button supports a maximum length of 20 characters. There are 3 common types of buttons:web_url: Opens a website link.postback: Triggers a Flow or executes an automated action by supplying a Flow ID or a JSON Action object as the payload.phone_number: Places a call to a pre-configured phone number.
Sending a message with quick replies
Quick replies display right below the text message and disappear after the user clicks one. The platform supports a maximum of 11 quick replies per message. You can use Flow IDs or Step IDs as payloads.Send an image, video, audio, file
You can send media files by changing the value oftype inside the attachment object to image, video, audio, or file (document files like PDF/Doc).
Send a single Card
A single card (Generic Template) displays an image, a title, and a brief description. Both the title and description support a maximum length of 80 characters. The value for theimage_aspect_ratio property can be set to horizontal or square.
Send a single Card with buttons
A single product card supports attaching up to 3 interactive buttons below the content:Send a Gallery
A gallery (Carousel) is a collection of cards placed side by side, allowing users to scroll horizontally to view options. A gallery supports up to 10 product cards.Send messages supported only by WhatsApp
The WhatsApp channel supports unique message formats not available on other platforms, such as Interactive Button Messages. The JSON payload must strictly follow the format defined in the WhatsApp Cloud API documentation. ChatbotX automatically populates the recipient parameterto before sending the message.
Execute actions while sending messages
Theactions array allows you to send control commands to instruct the system to automatically process contact information as soon as the message response is sent. Below are the supported actions:
Add Tag
Assigns a classification label (Tag) to the contact:Remove Tag
Removes a classification label (Tag) from the contact:Set Custom Field
Writes a new value to a Custom Field or system field (such asphone, email, full_name, first_name, last_name):
Unset Custom Field
Clears the saved value inside a Custom Field:Send Flow
Triggers an automated script flow (Flow) by its numeric ID. You can copy this ID from the Flow link in the Flow list page:Transfer conversation to human
Transfers the conversation state from chatbot automated handling to the live agent support queue:Assign conversation to admin
Assigns the conversation directly to a specific Admin ID for management and response:Unassign conversation
Removes the currently assigned Admin and returns the conversation back to the unassigned general queue:Combine multiple actions
You can combine and execute multiple actions simultaneously in a single response payload:Use actions as a payload of buttons and quick replies
Since thepayload property of a button or Quick Reply requires a string data type, you need to serialize the object containing the actions array into a JSON string. Here is an example button structure invoking the Send Flow action upon click:
2 Implementation Methods for Dynamic Content
Via External API Request (Webhook)
Use in Flow Builder workflows when connecting to CRM, ERP, Google Sheets, or custom backend servers.
Via AI Agent (Rich Responses)
Configure directly inside the System Message (Prompt) of an AI Agent to output visual interfaces and execute actions dynamically.
Method 1: Use in Flow Builder (External API Request)
In the conversation script editor (Flow Builder), use an External API Request action block to send HTTP requests (GET or POST) to your backend server. Your server processes logic and returns a response formatted as Dynamic Content JSON.Configure Endpoint URL and Method
Enter your server Webhook URL (Endpoint URL), select method (POST or GET), and supply required Header parameters (such as API Key or Authorization token).
Enable Dynamic Content Response
Under Response settings, enable Dynamic Content mode. Your server will return a JSON object containing
messages and actions arrays.Method 2: Configure for AI Agents (Rich Responses)
Paste the Dynamic Content JSON output rules into the System Message (Prompt) field of your AI Agent. During customer conversations, the AI Agent acts as an intelligent server generating Dynamic Content JSON payloads for ChatbotX to render. For detailed instructions and production-ready Prompt templates, refer to the Rich Responses guide.Best Practices and System Limits
When using External Requests to fetch data from your custom server, ChatbotX automatically attaches the user ID in the HTTP Header as
X-USER-ID. You can use this Header to identify the specific contact interacting with your server.API Rate Limit: The default API rate limit is 100 requests per 60 seconds per bot account.