Each menu consists of rows, and each row contains one or more cells. A cell represents a visual and interactive unit on the UI. The behavior, appearance, and data flow of a cell are defined by its form
, and based on that form, certain fields within the cell become applicable or relevant.
Each cell can include:
next
action, which defines what happens after the cell is triggered โ like opening a new menu, tab, product, or URL.This hierarchical structure allows for modular and flexible UI composition, where user interaction can dynamically change the interface flow into a diagram or tied to the menu JSON schema!
Field | Type | Required | Access | Description |
---|---|---|---|---|
cell_id |
String | Conditional | ๐ต Read-only | Unique identifier for the cell. Used to reference and manage the cell independently. cell ID has priority over callback if provided. |
callback |
String | Yes | ๐ต Read-only | User-defined identifier triggered when the cell is interacted with. Must be provided when creating a cell. However, the form itself becomes read-only once the cell is saved, meaning it cannot be changed in future updates. |
cell_order |
Number | Yes | ๐ต Read-only | Defines the horizontal order of the cell within the row. Must be provided when creating a cell. However, the form itself becomes read-only once the cell is saved, meaning it cannot be changed in future updates. |
form |
String | Conditional | ๐ต Read-only | Type of cell UI (e.g., dropdown , radio , button ). Must be provided when creating or updating a cell. However, the form itself becomes read-only once the cell is saved, meaning it cannot be changed in future updates. |
style |
String | Conditional | ๐ต Read-only | Style of cell UI. Must be provided when creating a cell. However, the form itself becomes read-only once the cell is saved, meaning it cannot be changed in future updates. |
version |
String | Optional | ๐ต Read-only | System-generated random version after each cell update. |
headline |
String | Optional | ๐ก Conditionally Writable | Headline of the cell, if supported by the form. |
subhead |
String | Optional | ๐ก Conditionally Writable | Subhead or secondary heading. |
label |
String | Optional | ๐ก Conditionally Writable | Field label used for forms or inputs. |
sublabel |
String | Optional | ๐ก Conditionally Writable | Field sublabel used for forms or inputs |
body |
String | Optional | ๐ก Conditionally Writable | Content body text within the cell. |
helper |
String | Optional | ๐ก Conditionally Writable | Helper or supporting text to guide users. Usually displayed beneath the cell for additional context or instructions. |
error |
String | Optional | ๐ก Conditionally Writable | Error message shown when validation fails. Usually displayed beneath the cell, replacing the helper/supporting text. |
prefix |
String | Optional | ๐ก Conditionally Writable | Text displayed at the beginning of the input field. |
suffix |
String | Optional | ๐ก Conditionally Writable | Text displayed at the end of the input field. |
placeholder |
String | Optional | ๐ก Conditionally Writable | Placeholder text for input fields. |
bg_image |
String | Optional | ๐ก Conditionally Writable | Background image (light mode). |
bg_image_dark |
String | Optional | ๐ก Conditionally Writable | Background image (dark mode). |
image |
String | Optional | ๐ก Conditionally Writable | Image displayed in the cell (light mode). |
image_dark |
String | Optional | ๐ก Conditionally Writable | Image for dark mode. |
icon |
String | Optional | ๐ก Conditionally Writable | Leading icon in the cell. |
trailing_icon |
String | Optional | ๐ก Conditionally Writable | Icon shown at the end of the cell. |
trailing_text |
String | Optional | ๐ก Conditionally Writable | Text shown after cell content. |
second_trailing_icon |
String | Optional | ๐ก Conditionally Writable | Optional secondary trailing icon. |
max |
Number | Optional | ๐ก Conditionally Writable | Maximum allowed value for inputs. |
min |
Number | Optional | ๐ก Conditionally Writable | Minimum allowed value for inputs. |
step |
Number | Optional | ๐ก Conditionally Writable | Step value for numeric or range inputs. |
divider |
Boolean | Yes | ๐ก Conditionally Writable | If true, a divider line will be displayed beneath the cell. Defaults to false. Applicable only to forms that support visual separation. |
font_size |
fontsize | Optional | ๐ก Conditionally Writable | Font size settings for text elements. |
text_align |
text_align | Optional | ๐ก Conditionally Writable | Alignment settings for content inside the cell. |
submit |
String | Conditional | ๐ต Read-only | Target API scope to determine which values are submitted when the cell is triggered. Must be provided when creating a cell. Cannot be changed after the cell is saved. |
โข cell
โ sends only the current cellโs value.
โข menu
โ sends values of all cells in the current menu.
โข all
โ sends all values filled or triggered across all menus. |
| next
| Array of Actions | Optional | ๐ต Read-only | Defines next action: open component/menu, or execute function. Must be provided when creating a cell. Cannot be changed after the cell is saved. |
| value_type
| String | Optional | ๐ก Conditionally Writable | Expected type of the value (e.g., string
, number
). Must be provided when creating a cell. Cannot be changed after the cell is saved. |
| option
| Array of Options | Optional | ๐ก Conditionally Writable | Available selectable input options for the cell (e.g., dropdown, multi-choice, radio). Required only for forms that involve user selection from predefined values. |
| value
| Array of Options | Optional | ๐ก Conditionally Writable | Current or default values depending on the form (e.g., dropdown, multi-choice). |
| cache
| Boolean | Yes | ๐ก Conditionally Writable | If true
, persists cell state until explicitly updated. Defaults to false
. |
| cell_query
| Cell Query | Optional | ๐ก Conditionally Writable | The app's query field accepts one of two values:Location
: to ask the user to share a location or map point.Contact
: to ask the user to share their contact number. |
| nav_type
| String | Optional | ๐ก Conditionally Writable | null
(default) shows the navigation button for Channel, Group, or Contact. Use 'admin'
to show the admin navigation button in the chat setting. |