This article is part of Custom screens: Server side rendering.
Overview
There are several types of supported components, each with its own specific UI & interaction model. Common to all component definitions is the field component_type which, as its name suggests, identifies the type of the component.
Letโs explore available component types below.
Labeled box
A simple row item with two values: title and content:
Data model example
{
  "component_type": "labeled_box",
  "title": "Tips this month",
  "content": "$17.23",
}
Details
- component_type=- labeled_box
- titleis optional
- contenthas to be present & non-empty
- if - contentis not set, the component will not render
- title,- contentare limited to 500 characters each
- title,- contentcan render on multiple lines, no line limit
- no supported interactions, not clickable 
List item
A simple row item that has its contents justified horizontally and is, optionally, clickable. Clicking a list item always opens a new custom screen.
Other variations
Data model structure & example
{
  "component_type": "list_item",
  "title": "Tips this month",
  "content": "$134.09",
  "parameters": {
      "page_id": "MONTH_TIPS_PAGE",
      "month": "march"            "year": "2022"
  }
}
Details
- component_type=- list_item
- titlehas to be present & non-empty. If not set, the component will not render
- titleis limited to 500 characters
- contentis optional
- contentis limited to 10 characters
- title,- contentcan render on multiple lines, no line limit
- parametersโ request parameters to be passed when this item is clicked. If present, the item is considered tappable
- If tappable, opens a new custom screen when tapped 
- When tapped, contents of - parameterswill be sent to your custom screens endpoint. your endpoint can then decide how to build the custom screen to-be-opened, based on the contents of- parameters
- If tappable, the arrow icon is shown on the right side 
Web URL
An item that opens a given URL in a web view. Visually, it's the same as the List item.
Data model structure & example
{
  "component_type": "web_url",
  "title": "Talk to an agent",
  "content": "Open",
  "url": "https://www.motiontools.com/chat_support"
}
Details
- component_type=- web_url
- title&- contentscarry the same requirements & restrictions as for the
- urlis required and must be a valid URL
- When clicked, the URL is opened in an in-app WebView. The WebView also allows the option to open the link in Chrome/ Safari, depending on whether the app runs on iOS or Android. 
- If a Custom screen contains a single WebUrl Component: When the custom screen opens, the apps will not render the single WebUrl Component but instead directly open the WebView & load the associated - url







