How it works
Overview
When the builder starts, you can feed to it multiple lists of custom rows, which will display in the rows selector:
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FCDPJ7ROso9yyFhVl2TBt%252FCR_config_list-1024x405.jpg%3Falt%3Dmedia%26token%3D600a2eb5-cf10-4184-83b8-407eeeab177f&width=768&dpr=4&quality=100&sign=4eee3fa9&sv=1)
Each list is an array of objects (JSON) describing the rows and must be returned by a URL that the builder will call when the user selects its name. These objects may be Saved Rows or Simplified Rows (a JSON schema that allows you to generate rows from existing contents through an API).
When the user selects the list name, the builder will call the given URL to retrieve the rows and display them:
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FOFjFnEQ6WRedlCx2WSbO%252F2rows_displaying-442x1024.jpeg%3Falt%3Dmedia%26token%3D72f3c2ef-12fe-4b85-b4a8-abcd01340a79&width=768&dpr=4&quality=100&sign=2709689&sv=1)
If the URL is not available, a warning message will be displayed in the bottom right, and the builder will display the next set of rows or fallback to empty rows or default rows(depending on your configuration):
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FAl66aWUIgURcx3eQd5k5%252F3Error-warning-300x61.jpeg%3Falt%3Dmedia%26token%3D7414a0d7-115e-4592-8a31-7071d8eb2e1c&width=768&dpr=4&quality=100&sign=f2069d1c&sv=1)
List limits
There is no limit to the number of rows passed to the builder in each array of custom rows.
However, the builder UI will only display the first 30 items (i.e., the first 30 rows in the array).
The rest of them will not show until the user performs a search that matches them. If the search matches over 30 items, the first 30 are displayed.
This filtering is applied to prevent performance degradation in the browser.
Search
The search field allows users to narrow down the content shown after they select a list of custom rows.
The search is performed against all elements of the array (i.e., both visible and hidden), and the first 30 items (i.e., the first 30 rows in the array that match the search criteria) are shown.
All textual content included in the selected array – including image file names – is used to find a match.
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FkThABDJNSrBf65eGewUP%252F4CR_search.png%3Falt%3Dmedia%26token%3Dc1047f53-0806-4669-ae14-3207b4c66edc&width=768&dpr=4&quality=100&sign=66ecff69&sv=1)
Rows configuration
Defines the usage of custom rows in the beeConfig object when you start the builder:
Parameters
emptyRows
Set of empty rows. The same rows available when no rowsConfiguration is included.
Allowed values: true / false
Default value: true
Will always be included as the last element if omitted in the configuration.
They are presented as follows in the builder’s default theme (the screenshot shows the first 4 empty rows):
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FuVeV6D6mzm8YhVzV436c%252F5rows_empty.png%3Falt%3Dmedia%26token%3Da472bdb4-104f-4804-a099-20db7ca58c58&width=768&dpr=4&quality=100&sign=46d0c999&sv=1)
defaultRows
A set of rows that contain sample contents. That’s why we also call them sample rows. They may be used as a supporting feature for starting templates or to speed up the process of building a message from scratch.
Allowed values: true / false
Default value: false
They are presented as follows in the builder’s default theme (the screenshot shows the first 2 default rows):
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FrtcF6QKySIwpoIwJKmqL%252F6rows_default.png%3Falt%3Dmedia%26token%3D5e799c5e-8065-4d08-8593-5d312b494f94&width=768&dpr=4&quality=100&sign=b1bf1b15&sv=1)
externalContentURLs
Each item in this list defines an option available in the Rows drop-down.
name: the text displayed in the Rows drop-down
value: URL that will be called by the builder when the user selects the corresponding name in the drop-down. The URL must return a set of rows as a JSON object.
Here is an example of how the Rows drop-down looks when the application configuration includes:
Empty rows (see above)
Default rows (see above)
Saved rows (learn about displaying Saved rows)
3 additional arrays for Custom rows
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FFe4qy0sUwelqFbN90pYt%252F7rows_custom.png%3Falt%3Dmedia%26token%3D9ff24720-782a-418a-9af8-2b9dfc5b9030&width=768&dpr=4&quality=100&sign=43884355&sv=1)
Display order
The order of the JSON nodes in rowsConfiguration defines the order in which the lists of custom rows will display in the drop-down. It also determines which list of rows will be used as default (selected) when the user clicks on the Rows tab for the first time during the session.
Row type order
The first ordering factor refers to the type of row (empty, default, custom). That’s defined by how the following parameters are listed in rowsConfiguration:
emptyRows
defaultRows
externalContentURLs
So obtain the order shown in this screenshot…
![](https://docs.beefree.io/~gitbook/image?url=https%3A%2F%2F806400411-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252F8c7XIQHfAtM23Dp3ozIC%252Fuploads%252FrqfnZHGZTqJZSs0w0AN1%252F8rows_custom.png%3Falt%3Dmedia%26token%3Dc35c7295-42dd-42c4-9f56-cc60488c7c12&width=768&dpr=4&quality=100&sign=406adc93&sv=1)
… you would list defaultRows before emptyRows:
defaultRows
emptyRows
externalContentURLs
External content order
The order inside the externalContentURLs node defines the order of the Custom rows.
In the above example configuration:
emptyRows will be the first item in the drop-down and the default selection when clicking on the Rows tab
defaultRows will be the second item in the drop-down
The lists of rows defined in externalContentURLs will follow their ordering in the drop-down
It’s up to you – the host application – to decide what’s available and in which order.
Row type requirements
emptyRows and defaultRows are not required
this allows you to load just Custom rows, if needed, controlling which content users can drag and drop into the builder
Last updated