Component configuration properties

reference brazil Updated Oct 26, 2026 5 min read component-configuration-properties.md
Raw file servicenow.com

Properties in the now-ui.json file that define a component's scope, dependencies, actions, properties, and UI Builder and analytics settings.

Top-level properties

The now-ui.json file is at the root of each Next Experience UI Framework project.

Property Description
components Object that contains the configuration for each component exported by the target package. Object keys correspond to the exported components.
scopeName Scope name that the platform reserves for the component's application. Limited to 18 characters, and must use snake case. If you don't provide a scope name, the platform generates one.

Component properties

Each component is exported with the createCustomElement function from the @servicenow/ui-core module. Use this function directly, without wrapping it in helper functions. Direct use enables automatic metadata extraction.

Property Description
components.[component-name] Configuration for one component. The component name must match the name that the page uses and the name passed to the createCustomElement function.
components.[component-name].actions Array of objects that describe every action the component emits. Action names must be unique for each component.
components.[component-name].innerComponents Array of strings that lists the components that this component depends on to render. Listing an extra dependency has no negative effect. Omitting a needed dependency prevents the component from rendering correctly. Include transient dependencies, which the build process doesn't infer.
components.[component-name].properties Array of objects that describe every custom property the component supports.
components.[component-name].requiredSysProps Array of strings that lists the system properties the component requires.
components.[component-name].requiredTranslationKeys Array of strings that lists the translation keys the component requires that aren't part of the component.
components.[component-name].slots Array of strings that lists the slots of the component.

Action properties

Property Description
name String. Name of the Next Experience UI Framework action that the component dispatches.
description String. Short description of what the action does or how it's used.
label String. Human-readable name of the dispatched action.
payload Array of objects that describe the payload details of the action.

Custom property properties

Property Description
name String. Name of the property, as the Next Experience UI Framework code consumes it.
label String. Human-readable name of the property, shown in the UI Builder toolbox when applicable.
description String. Short description of what the property does or how it's used.
readOnly Boolean. Setting that prevents editing the property in the UI Builder context. Default is false.
required Boolean. Setting that requires a value for the property. Default is false.
defaultValue String or Boolean. Value used when no value is provided.
fieldType String. Data type of the property value.
typeMetadata Object. Additional configuration for types that need it, such as reference properties and choice lists.
selectable Boolean. Setting that allows other components to point to this property and map it to their local properties.

UI Builder properties

Adding the uiBuilder object makes the component appear in the UI Builder toolbox.

Property Description
uiBuilder.label String. Name of the component in the UI Builder toolbox.
uiBuilder.icon String. Name of the icon that appears in the toolbox for this component.
uiBuilder.description String. Short description of the component's functionality.
uiBuilder.associatedTypes Array. Location in the UI Builder toolbox where the component appears.
uiBuilder.internalComponent Boolean. Setting that limits the component to internal use.
uiBuilder.category String. Category of the component.
uiBuilder.scriptedConfigPolicy String. Path to a JavaScript file that further configures the component's configuration panel in UI Builder.
uiBuilder.configLayout String. Configuration for the component's configuration panel in UI Builder.
uiBuilder.tileIcon String. Path to an SVG file that appears as the icon for this component in the toolbox.
uiBuilder.searchFacets Array. Search tags for categorizing the component.
uiBuilder.externalConfigSources Array of objects. External sources of configuration for the component.

Analytics properties

Adding the parMetadata object makes the component appear in Platform Analytics, including Visualization Designer, Dashboards, and Component Builder.

Property Description
parMetadata.visibility String. Designer where the component appears. Accepts dashboard_designer, viz_designer, or component_designer.
parMetadata.supports_standard_props Boolean. Setting that indicates the component conforms to PAR standard props. Default is false.
parMetadata.supports_export Boolean. Setting that indicates the component exports correctly and handles the printerFriendlyView property. Default is false.
parMetadata.use_dashboard_header Boolean. Setting that makes the component use the dashboard header instead of its own. Default is false.
parMetadata.supports_standard_request Boolean. Setting that enables dashboard data management. When set to true, the standard request properties in this table must be provided. Default is false.
parMetadata.standard_request_script_type String. Scripting language of the standard request. Accepts java or js.
parMetadata.data_provider_class_name String. Class name of the data provider. Used only when standard_request_script_type is java.
parMetadata.standard_request String. JavaScript implementation of the standard request.
parMetadata.data_field String. Field that receives the data retrieved on behalf of the component.

now-ui.json file

JSON
{  "components": {    "snc-stock-tracker": {      "actions": [        {          "name": "SEND_MESSAGE",          "description": "Will send message in current language",          "label": "Send message",          "payload": [            {              "name": "value",              "label": "Value",              "description": "Description",              "defaultValue": false            }          ]        },        {          "name": "SEND_MESSAGE#BROAD_CAST",          "label": "Send messages to many",          "description": "Will send message in current language",          "payload": [            {              "name": "value",              "label": "Value",              "description": "Description",              "defaultValue": false            }          ]        }      ],      "innerComponents": ["myco-bar", "myco-baz"],      "uiBuilder": {        "associatedTypes": ["global.core", "global.landing-page"],        "label": "My Stock Tracker",        "icon": "chat-fill",        "description": "Stock Tracking component",        "category": "stocks",        "tileIcon": "./tile-icon/generic-tile-icon.svg",        "searchFacets": ["global.stocks:global.tracking"]      },      "properties": [        {          "name": "backgroundColor",          "label": "Background Color",          "readOnly": false,          "required": false,          "defaultValue": "purple",          "fieldType": "string",          "description": "Description"        },        {          "name": "table",          "label": "table",          "fieldType": "json",          "required": true,          "typeMetadata": {            "schema": {              "type": "array",              "items": [                { "name": "name" }              ]            }          }        },        {          "name": "from",          "label": "from",          "fieldType": "object",          "required": true,          "typeMetadata": {            "schema": {              "type": "object",              "properties": {                "country": { "type": "string" },                "timezone": { "type": "string" },                "id": { "nowUIType": "CustomType" }              }            }          }        },        {          "name": "search",          "label": "Search type",          "defaultValue": "list",          "fieldType": "choice",          "readOnly": false,          "required": true,          "selectable": false,          "typeMetadata": {            "choices": [              { "label": "None", "value": "none" },              { "label": "Contains", "value": "contains" }            ],            "schema": {              "type": "string",              "enum": ["none", "contains"]            }          }        },        {          "name": "to",          "label": "To",          "defaultValue": "{}",          "typeMetadata": {            "schema": {              "type": "object",              "properties": {                "start": { "anyOf": [{ "type": "string" }, { "type": "number" }] },                "end": { "anyOf": [{ "type": "string" }, { "type": "number" }] },                "type": { "type": "string" },                "hasConflict": { "type": "boolean" },                "tooltip": { "type": "string" }              }            }          }        }      ],      "requiredSysProps": ["abc.foo", "abc.bar"],      "requiredTranslationKeys": ["T_FOO", "T_BAR"],      "slots": ["slot-foo", "slot-bar"]    },    "snc-stock-seller": {      "uiBuilder": {        "associatedTypes": ["global.core", "global.landing-page"],        "label": "My Stock Seller",        "icon": "chat-fill",        "description": "Stock selling component",        "category": "stocks",        "searchFacets": ["global.stocks:global.selling"]      },      "actions": [        {          "name": "SEND_MESSAGE",          "description": "Will send message in current language",          "label": "Send message",          "payload": [            {              "name": "value",              "label": "Value",              "description": "Description",              "defaultValue": false            }          ]        }      ],      "properties": [        {          "name": "search",          "label": "Search type",          "defaultValue": "list",          "fieldType": "choice",          "readOnly": false,          "required": true,          "selectable": false,          "typeMetadata": {            "choices": [              { "label": "None", "value": "none" },              { "label": "Contains", "value": "contains" }            ],            "schema": {              "type": "string",              "enum": ["none", "contains"]            }          }        }      ]    }  },  "scopeName": "x_snc_stock_track"}
Search documentation
Search document titles and file paths on the brazil branch