| Token | Description |
|---|---|
| displayName | Display name of the component shown in the structure panel. |
| id | Unique identifier for the component; also useful for programmatic access in testing or custom code. |
| itemSize | Height of each list item in pixels. |
| autoHeight | Automatically adjusts list height to the number of visible elements. |
| numberOfVisibleListElements | Number of items visible when autoHeight is enabled. |
| dataSourceId | ID of the data source to fetch data from. |
| dataSourcePath | **JSON path to extract list data from the response. |
| getEntityCollectionHttpRequestParametersMap | HTTP parameters map for collection requests (QUERY, PATH, BODY). |
| keyExpression | Field used as a unique key for each list item. |
| enablePagination | Enables server-side pagination for large datasets. |
| pageSize | Number of items to load per page. |
| elements | Child dynamic elements rendered for each list item. |
| visibilityPolicySetId | Determines component visibility based on user permissions and policy sets (e.g., restrict the Dynamic List to a specific team policy). |
| dataTestId | Testing hook ID for automated testing to reliably identify the Dynamic List. |
| enableAsHotspot | Enables the component as a guided tour hotspot for onboarding. |
| paddingClass | CSS utility class that controls padding around the Dynamic List (e.g., p-4). |
[
{ "type": "DynamicTextComponent", "props": { "text": "{{name}}" } }
]
(Configured in Data Source Properties)
json
{
"QUERY": { "active": true },
"PATH": {},
"BODY": {}
}
Example: dataSourcePath: "content.items" will extract the array from response.content.items. dataSourceId: "usersDataSource" keyExpression: "userId" will use the userId field as the unique identifier for each item.(Configured in General Properties)
displayName: "User List"(Configured in Visual Properties)
itemSize: 80 renders each list item at 80px and changes the vertical space each item occupies. autoHeight: true), the list automatically adjusts its height based on the number of visible elements, shrinking or growing to fit its content in flexible layouts. numberOfVisibleListElements: 5 with itemSize: 100 results in a component height of 500px. (Configured in Layout)
p-4 adds substantial padding on all sides of the Dynamic List component. (Configured in Data Source Properties)
enablePagination: true), the list loads data page by page as the user scrolls rather than all at once. pageSize: 25 loads 25 items per page. (Configured in Testing Hooks)
(Configured in Authorization)
"marketingTeamPolicy" restricts the Dynamic List to users with marketing team privileges.(Configured in Visibility)
Array of items:
[
{ "userId": 1, "name": "Alice" },
{ "userId": 2, "name": "Bob" }
]
Paginable response:
{
"content": [
{ "userId": 1, "name": "Alice" },
{ "userId": 2, "name": "Bob" }
],
"totalElements": 100,
"totalPages": 10,
"number": 0,
"size": 10
}
enablePagination and choose an appropriate pageSize; keep identity stable via keyExpression.elements.itemSize.autoHeight off when continuous scrolling within the section is desired.paddingClass.elements.id and dataTestId.visibilityPolicySetId.displayName only for authoring clarity in the structure panel.elements (the Dynamic List has no *Translations tokens).| Do | Don’t | Article setting(s) |
|---|---|---|
Use enablePagination: true with a tuned pageSize for large datasets. |
Load entire collections at once. | enablePagination, pageSize |
Define a unique keyExpression for each item. |
Rely on array index as a key. | keyExpression |
| Set a single consistent item height. | Mix variable heights without adjusting tokens. | itemSize |
Use autoHeight: true with numberOfVisibleListElements to size the list precisely. |
Hard-code heights that don’t match row height × count. | autoHeight, numberOfVisibleListElements, itemSize |
| Build each row’s UI via child elements. | Attempt to place per-item content outside the list. | elements |
| Reserve space around the list for readability. | Let list content touch container edges. | paddingClass |
| Hide content from unauthorized users. | Show restricted data and hope downstream logic blocks it. | visibilityPolicySetId |
| Opt into onboarding highlights when needed. | Simulate highlights with custom overlays. | enableAsHotspot |
elements (the list itself adds none).itemSize with autoHeight/numberOfVisibleListElements when auto-sizing.dataTestId and id.enablePagination with a reasonable pageSize.keyExpression.elements; don’t rely on displayName for users.paddingClass to preserve readable spacing around content.