Feature in preview mode
This feature is in preview mode. To enable it, you must turn it on in the Previews menu on your team settings. Features in preview mode are experimental and may be volatile. Proceed with caution when using experimental features in apps with users.
The Dynamic Content component renders UI elements based on JSON. This enables programmatic control over what content appears in an app, making it ideal for displaying AI-generated responses, API results, or data-driven layouts.
In the Layout Editor, select the screen where the component should appear.
Click the plus symbol in the Components panel.
Select Dynamic Content from the Custom section.
Configure the Descriptions field to point to a column containing JSON, or enter JSON manually.
Configuring Dynamic Content
The Descriptions field accepts a column containing JSON that defines which components to render. The JSON can be a single component object or an array of multiple components.
Single component example:
{ "kind": "text", "text": "Hello" }
Multiple components example:
[ { "kind": "text", "text": "Hello" }, { "kind": "image", "image": "https://example.com/photo.png" } ]
Visibility Conditions control when the component appears. Add conditions based on column values or user properties to show the component only when specific criteria are met.
Use the Notes field to add internal documentation about the component's purpose or the expected JSON format.
Component types
The Dynamic Content component supports seven element types, each with specific properties and requirements.
text
text displays plain text with optional styling. The JSON has the following requirements:
kindmust betext.textcontent should be a string.Use
styleto change the text appearance. Valid options are:
largeregularsmallfootnotemetaTextheadlineXSmallheadlineSmallheadlineMediumheadlineLargeheadlineXLarge
{ "kind": "text", "text": "Welcome to Glide", "style": "headlineLarge" }
rich-text displays formatted text using HTML or Markdown. The JSON has the following requirements:
kindmust berich-text.textshould contain your HTML or Markdown content.
{ "kind": "rich-text", "text": "<b>Bold</b> and <i>italic</i>" }
image
image displays an image from a URL. The JSON has the following requirements:
kindmust beimage.imageshould be the image URL.
There are several optional parameters you can add. style, size (S, M, or Full), aspectRatio, and imageFill can all be specified as a string. fullWidthOnMobile and zoomable can be specified as a true/false boolean value.
{ "kind": "image", "image": "https://example.com/banner.png", "size": "M", "aspectRatio": "16:9", "zoomable": true }
hint
hint displays a callout message. The JSON has the following requirements:
kindmust behint.textshould be a string containing the message content.Optionally, use
moodto set the tone style of the hint (Default, neutral, success, warning, or danger).
{ "kind": "hint", "text": "This action cannot be undone.", "mood": "warning" }
big-numbers
big-numbers displays prominent numeric values. The JSON has the following requirements:
kindmust bebig-numbers.itemsshould be an array of objects. Each item can include more detail as a string:name: the label for the valuevalue: the displayed number or valuedescription: additional context
Optionally, use
titleto add a section heading.
{ "kind": "big-numbers", "title": "Monthly Stats", "items": [ { "name": "Users", "value": "1,204", "description": "+12% from last month" }, { "name": "Revenue", "value": "$45K" } ] }
list
list displays a list of items. The JSON has the following requirements:
kindmust belist.itemsshould be an array of objects. Each item can include more detail as a string:title: the item titlesubtitle: the item subtitleimage: an image URLemphasis: highlighted text
Optionally, use
titleto add a heading to the list.
{ "kind": "list", "title": "Team Members", "items": [ { "title": "Alice", "subtitle": "Engineering", "image": "https://example.com/alice.png" }, { "title": "Bob", "subtitle": "Design" } ] }
table
table displays tabular data as rows of key-value records. The JSON has the following requirements:
kindmust betable.itemsshould be an array of objects where keys are column names and values are strings or numbers.Optionally, use
titleto add a table heading.
{ "kind": "table", "title": "Inventory", "items": [ { "Product": "Widget", "Price": 9.99, "Stock": 142 }, { "Product": "Gadget", "Price": 24.99, "Stock": 38 } ] }