Collection List settings
The API exposes Collection List elements as DynamoWrapperElement objects.
The element type string is the public, stable value "DynamoWrapper".
Use the Collection List settings methods to read and update a list’s CMS source, query mode, filters, sort order, item limit, offset, pagination, and curated items. You can also discover valid sources, fields, operators, options, and CMS items before writing settings.
Supported element
These methods are available on Collection List elements.
Check that the selected element has type === "DynamoWrapper" before calling them.
Methods
Settings
setSettings() accepts partial updates.
The method changes only the keys you include.
Read settings
Use getSettings() to get the raw Collection List settings.
Use searchSettings() when you need display metadata for settings UI.
Collection List entries use valueType: "collectionListSetting" and canBind: false.
They don’t include resolvedValue.
searchSettings() returns a record keyed by setting name: source, queryMode, filters, filterMatch, sort, limit, offset, pagination, and curatedItemIds.
For a disconnected Collection List, the source entry still has value: null.
You can also filter by setting key.
Discover valid values
Use discovery methods before writing Collection List settings. They return the valid values for the current site and selected Collection List.
searchAvailableFields() returns each field’s slug, display name, field type, filtering support, sorting support, and supported filter operators.
Option fields include an options array.
Reference fields include referenceCollectionId.
Use searchAvailableItems() to find CMS items.
Without fieldSlug, it searches the Collection List’s connected collection.
With fieldSlug, it searches the referenced collection for that field.
Only pass fieldSlug for reference fields.
This method can only retrieve CMS items in the Designer.
Outside the Designer, the Promise rejects with an invalid request error.
page is zero-based and must be a non-negative integer.
The default pageSize is 50.
pageSize must be an integer from 1 to 100.
If page is past the available results, searchAvailableItems() returns an empty items array and the same total count for the query.
searchAvailableItems() uses page and pageSize to page through discovery results.
Dynamic Collection Lists use the offset, limit, and pagination settings for rendering instead.
Update a dynamic list
Use dynamic mode for filters, sort, limit, offset, and pagination. This example assumes a Collection List with a direct CMS collection connection.
Update a curated list
Use curated mode when you want to choose an ordered list of CMS items. This example assumes a Collection List with a direct CMS collection connection.
curatedItemIds is only supported in curated mode.
Use it only on Collection Lists connected directly to a CMS collection.
Use item IDs from searchAvailableItems().
setSettings() validates that curatedItemIds is an array of strings, but doesn’t validate that each ID resolves to an item.
Webflow skips IDs that don’t resolve to CMS items when the list renders.
Filters, sort, limit, offset, and pagination are only supported in dynamic mode.
Mode and source changes
Changing the query mode clears settings from the previous mode.
- Switching to
"curated"clears existing filters,filterMatch, sort, limit, offset, and pagination. If the same validsetSettings()call includescuratedItemIds, Webflow applies those IDs after the mode change. - Switching to
"dynamic"clears the curated item list. - Webflow rejects a
setSettings()call that switches to curated mode and also includes dynamic-only settings, such asfiltersorpagination, before any settings change.
Changing source clears the current query settings and pagination because filters, sort, limits, offsets, pagination, and curated items depend on the connected source.
Filter values
Build filter rules from the field metadata returned by searchAvailableFields().
Use only operators included in the field’s filterOperators array.
For option fields, pass an option ID from searchAvailableFields().options.
For reference fields, use contains or doesNotContain with an item ID from searchAvailableItems().
For number and commerce price fields, pass numeric values as strings.
For date comparison filters, pass a date filter value.
For date filter values, unit can be "days", "weeks", "months", or "years".
direction can be "past" or "future".
amount must be a non-negative safe integer.
Use amount: 0 for today.
Some filter values support data source bindings.
Use a binding input object for equals and doesNotEqual on plain text, email, and phone fields.
For number and commerce price fields, bound values support equals, doesNotEqual, greaterThan, and lessThan.
The isSet and isOn operators can also use a binding input object as their value.
Use static IDs for option and reference filters.
A binding input object has one of these shapes:
Use searchBindableSources() to find valid binding inputs.
For sourceType: "prop", propId is the ID of a component prop available to the current element.
Validation
setSettings() validates the whole update before changing the Collection List.
If any setting is invalid, setSettings() leaves the list unchanged.
- Use
searchAvailableSources()before settingsource. - Use
searchAvailableFields()before settingfiltersorsort. limitmust be an integer from1to100.offsetmust be a non-negative safe integer. If the offset is beyond the available items, the Collection List has no items to render for that query.- Pagination is only supported for dynamic Collection Lists connected directly to a CMS collection.
curatedItemIdsis only supported for curated Collection Lists connected directly to a CMS collection.pagination.itemsPerPagemust be a finite number.setSettings()rounds it up, then clamps it to1through100. For example,12.2becomes13,0becomes1, and101becomes100.- Changing
sourcecan fail when the Collection List item template contains bindings or nested lists.