# Dynamic data

Available on the **PREMIUM** plan and above.

For use cases that require the list of options to be fetched from an API call (meaning the list is unique to each visitor), you would use the Dynamic data action block.

Using this block, you can dynamically display list items for,

* Button
* Carousel
* Option (WhatsApp and SMS)
* List (WhatsApp)
* Reply button (WhatsApp)

### Step 1: Store the response in a variable <a href="#step-1-store-the-response-in-a-variable" id="step-1-store-the-response-in-a-variable"></a>

The API response containing the list items needs to be stored in a variable. You can do this using the [HTTP request action block.](/wotsabot-help-articles/integrations/http-request.md)

Make sure you store the entire payload response in a variable. Do not append anything after the result on the object path to do this.

Mapping of response into a variable

<figure><img src="/files/YHQq9t9QyxwClfRETMJO" alt=""><figcaption></figcaption></figure>

### Step 2: Setup the Dynamic data action block <a href="#step-2-setup-the-dynamic-data-action-block" id="step-2-setup-the-dynamic-data-action-block"></a>

Add the 'Dynamic data' action block after the HTTP request action block and configure the details.

**Data variable**

Contains the entire payload response received from the API. In our example, it is the `response` variable.

**Action block to generate**

Choose the action block that you would like to generate. Dynamic data supports the following action blocks,

* Button
* Carousel
* Option (WhatsApp and SMS)
* List (WhatsApp)
* Reply button (WhatsApp)

**Question**

Configure the block for the question i.e. what question is to be shown while displaying the list items.

**Configuring list items**

Depending on which action block you have chosen, you would then map the object paths of the data you want to shown for that action block.

For example, if the payload response stored is the following,

Copy

```
[
    {
        "product_id": "123",
        "status": "pending"
    },
    {
        "product_id": "456",
        "status": "delivered"
    },
    {
        "product_id": "798",
        "status": "pending"
    }
]
```

And if we want to render the product\_id from this list as button, we would configure the object path as follows:

`result[*].product_id`

Where \[\*] denotes that we need to display all occurances of the field **product\_id**.

\ <br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.wotsabot.ai/wotsabot-help-articles/bot-builder/action-blocks/dynamic-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
