FlexiPage

Represents the metadata associated with a Lightning page. A Lightning page represents a customizable screen made up of regions containing Lightning components.

Where possible, we changed noninclusive terms to align with our company value of Equality. We maintained certain terms to avoid any effect on customer implementations.

These pages are known as FlexiPages in the API, but are referred to as Lightning pages in the rest of the Salesforce documentation and UI.

In API version 49.0 and later, arrays in a FlexiPage are represented as valueList. Each array element is represented as valueListItem, and the element name is represented as value. In API version 48.0 and earlier, arrays are represented as value and array elements are formatted as a comma-separated list. Any FlexiPage retrieved using API version 49.0 or later uses valueList to represent component property array values, regardless of which API version was used to create the FlexiPage.

Lightning pages are used in several places.

  • In the Salesforce mobile app, a Lightning page is the home page for an app that appears in the navigation menu.
  • In Lightning Experience, Lightning pages can be used:
  • To customize the layout of record pages, the Salesforce Home page, and the Email Application pane in the Outlook and Gmail integrations.
  • As the home page for an app.
  • As the utility bar for a Lightning app.

For more information on Lightning pages, see Salesforce Help.

The namespace prefix is important to help identify the source of items like fields, custom objects, and more. For example, when working with FlexiPages, we recommend keeping namespaces for object fields, because removing them can cause unexpected results such as name collisions.

This type extends Metadata and inherits its fields.

FlexiPage components have the suffix .flexipage and are stored in the flexipages folder.

Introduced in API version 29.0.

  • Type: string
  • Required: No
  • Description: The optional description text of the Lightning page.
  • Type: FlexiPageEvent[]
  • Required: No
  • Introduced: API version 53.0
  • Description: The list of events associated with the Lightning page.
  • Type: string
  • Required: Yes
  • Description: Required. The label for the Lightning page, which displays in Setup.
  • Type: string

  • Required: No

  • Description: Deprecated. Use this field in API versions 33.0 to 38.0 only. In later versions, use template.

    Required. The template associated with the Lightning page.

  • Type: string
  • Required: No
  • Introduced: API version 37.0
  • Description: The name of the Lightning page that this page inherits behavior from.
  • Type: PlatformActionList
  • Required: No
  • Introduced: API version 34.0
  • Description: The list of all actions, and their order, that display on a Lightning app page. In the Salesforce mobile app, the actions appear in the action bar.
  • Type: QuickActionList
  • Required: No
  • Description: The list of quick actions associated with the Lightning page.
  • Type: string

  • Required: No

  • Introduced: API version 37.0

  • Description: The object the Lightning page is associated with. For Lightning pages of type AppPage or HomePage, this field is null.

    After the value of this field is set, it can’t be changed.

  • Type: FlexiPageTemplateInstance
  • Required: Yes
  • Introduced: API version 39.0
  • Description: Required. The template associated with the Lightning page.
  • Type: FlexiPageType (enumeration of type string)
  • Required: Yes
  • Introduced: API version 32.0
  • Description: Required. The type of a page. In API versions 32.0 through 36.0, this field can only have a value of AppPage.
  • Possible values:
    • CdpRecordPage — A Lightning page that is used to override a CDPNearCoreObject record page in Lightning Experience. This value is available in API version 54.0 and later for orgs that have enabled.

    • AppPage — A Lightning page that is used as the home page for a custom app.

    • CommAppPage — A Lightning page that is used to represent a custom page, as created in the Experience Builder. This value is available in API version 37.0 and later.

    • CommContractDetailViewPage — This value is available in API version 64.0 and later.

    • CommCheckoutPage — A Lightning page that is used to create a B2B Commerce checkout, as created in the Experience Builder. This value is available in API version 46.0 and later.

    • CommFlowPage — An out-of-the-box flow page, as created in Experience Builder. This value is available in API version 45.0 and later.

    • CommForgotPasswordPage — A Lightning page that’s used to override a forgot-password page, as created in Experience Builder. This value is available in API version 39.0 and later.

    • CommGlobalSearchResultPage — A Lightning page used to override the global search result page, as created in Experience Builder. This value is available in API version 41.0 and later.

    • CommLoginPage — A Lightning page that’s used to override the login page, as created in Experience Builder. This value is available in API version 39.0 and later.

    • CommNoSearchResultsPage — An Experience Builder site page for B2B searches that return no results. The URL for this page is no-results/:term. The page starts out empty. You can add any component to it that accepts parameters to achieve the desired “no results” experience. For example, you can place an HTML Editor component or CMS components for recommendations, banners, help, and support. This value is available in API version 48.0 and later.

    • CommObjectPage — A Lightning page used to override an object page, as created in Experience Builder. This value is available in API version 38.0 and later.

    • CommOrderComfirmationPage — A Lightning page that is used to create a B2B Commerce order confirmation page in checkout, as created in the Experience Builder. This value is available in API version 46.0 and later.

    • CommQuickActionCreatePage — A Lightning page used to override the create record page, as created in Experience Builder. This value is available in API version 38.0 and later.

    • CommRecordPage — A Lightning page used to override a record page, as created in the Experience Builder. This value is available in API version 38.0 and later.

    • CommRelatedListPage — A Lightning page used to override a related list page, as created in the Experience Builder. This value is available in API version 38.0 and later.

    • CommSearchResultPage — A Lightning page used to override the search result page, as created in Experience Builder. This value is available in API version 38.0 and later.

    • CommSelfRegisterPage — A Lightning page used to override the self-registration page, as created in Experience Builder. This value is available in API version 39.0 and later.

    • CommThemeLayoutPage — A Lightning page used to override a theme layout page, as created in the Experience Builder. This value is available in API version 38.0 and later.

    • EmbeddedServicePage — This value is available in API version 45.0 and later.

    • EmailContentPage — A page that contains the builder markup for your email content. When you edit email content in the builder, the FlexiPage object remembers where you put the components.

      Because they include builder markup, you can’t retrieve or deploy FlexiPages when type is EmailContentPage.

    • EmailTemplatePage — A page that contains the builder markup for your email template. When you edit an email template in the builder, the FlexiPage object remembers where you put the components.

      Because they include builder markup, you can’t retrieve or deploy FlexiPages when type is EmailTemplatePage or EmailContentPage.

    • ForecastingPage — A Lightning page that is used to override the default forecasts page in Lightning Experience. This value is available in API version 57.0 and later.

    • HomePage — A Lightning page that is used to override the Home page in Lightning Experience. This value is available in API version 37.0 and later.

    • MailAppAppPage — An email application pane used to override the default layout in the Outlook and Gmail integrations. This value is available in API version 38.0 and later.

    • OmniSupervisorPageType— — A Lightning page used to customize the user interface on the Omni-Channel Supervisor page. This value is available in API version 60.0 and later.

    • QuickAction — A Lightning page used to customize the fields and layout for a quick action. This value is available as a Beta in API version 68.0 and later.

    • RecordPage — A Lightning page used to override an object record page in Lightning Experience. This value is available in API version 37.0 and later.

    • RecordPreview — A Lightning page used to override standard lookup previews when hovering over previewable records in Lightning Experience. This value is available in API version 45.0 and later.

    • UtilityBar — A Lightning page used as the utility bar in Lightning Experience apps. This value is available in API version 38.0 and later.

    • VoiceExtension — A Lightning page used to customize user interfaces and agent actions in the Omni-Channel widget for Service Cloud Voice. This value is available in API version 57.0 and later.

Instance of a component in a page, such as a filter list.

  • Type: string
  • Required: Yes
  • Description: Required. The name of a single instance of a component.
  • Type: ComponentInstanceType (enumeration of type string)
  • Required: No
  • Type: string
  • Required: No
  • Introduced: API version 53.0
  • Description: Required. The unique name of the ComponentInstance. Provides a way to uniquely identify an individual instance of a component on a Lightning page. This field has a maximum limit of 120 characters.
  • Type: UiFormulaRule

  • Required: No

  • Introduced: API version 41.0

  • Description: A set of one or more filters that define the conditions under which the component displays on the page.

    If the rule evaluates to true, the component displays on the page. If false, it doesn’t display. If this field is null, the component displays by default.

Value of a single property in a component instance. ComponentInstanceProperty has a maximum limit of 10,000 characters.

  • Type: string
  • Required: No
  • Description: Name of the property, unique within the component instance. For Lightning components, this value is the <aura:attribute> as defined in the .cmp file.
  • Type: ComponentInstancePropertyTypeEnum (enumeration of type string)

  • Required: No

  • Introduced: API version 38.0

  • Description: If this field value is null, then the ComponentInstanceProperty values apply to the Lightning component. If this field value is decorator, then the ComponentInstanceProperty values apply to the component decorator for the Lightning component.

    The component decorator is a wrapper around a Lightning component. The decorator can apply more capabilities to the component when it renders on a specific page in Lightning Experience. For example, you can configure a component decorator around a component on the Lightning Experience utility bar to set the component’s height or width when opened. The UtilityBar is the only page type that supports component decorators.

  • Possible values:

    • decorator
  • Type: string

  • Required: No

  • Description: Reference or value of the property.

    When defining a Related List component, to use a parent record set the parentFieldApiName value to object.field_name. If you don’t want to use a parent record, set the value to object.Id.

Tabs

When you give a standard label to a tab in a Tabs component—such as Activity, Collaborate, or Details—and when the name field is set to title, the value field uses a system-defined value instead of the label. Here are some examples of the system-defined values:

  • Standard.Tab.activity
  • Standard.Tab.collaborate
  • Standard.Tab.detail
  • Standard.Tab.feed
  • Standard.Tab.preview
  • Standard.Tab.relatedLists

For example, let’s say you have a Lightning page that contains a tab with the standard label “Activity”. If you query the definition that page, you see the system-defined name of the tab, not the label, in value.

Save Options

Save options are available on pages of type RecordPage only, when users edit an account or when they create, edit, or clone a case or lead. Save options are configured as a ComponentInstanceProperty under FlexiPageTemplateInstance.

Set the ComponentInstanceProperty name to saveOptions and use value to define the checkbox values. The value field in this case is not a ComponentInstancePropertyList, but instead is a string representation of a JSON array of name and value pairs representing each checkbox name and its value.

API NameAvailable ObjectsAvailable ValuesUI Label
UseDefaultAssignmentRuleAccount
  • NONE
  • APPLY_OPTION_WITHOUT_CHECKBOX_DISPLAY
  • SHOW_CHECKBOX_WITH_DEFAULT_OFF
  • SHOW_CHECKBOX_WITH_DEFAULT_ON
Evaluate this account against territory rules on save
UseDefaultAssignmentRuleLead
  • NONE
  • SHOW_CHECKBOX_WITH_DEFAULT_OFF
  • SHOW_CHECKBOX_WITH_DEFAULT_ON
Assign using active assignment rule
UseDefaultAssignmentRuleCase
  • NONE
  • APPLY_OPTION_WITHOUT_CHECKBOX_DISPLAY
  • SHOW_CHECKBOX_WITH_DEFAULT_OFF
  • SHOW_CHECKBOX_WITH_DEFAULT_ON
Assign using active assignment rule
triggerOtherEmailCase
  • NONE
  • SHOW_CHECKBOX_WITH_DEFAULT_OFF
  • SHOW_CHECKBOX_WITH_DEFAULT_ON
Send notification email to Contact
ValueUI Result
NONEDon’t display the checkbox and don’t apply any save options during save.
APPLY_OPTION_WITHOUT_CHECKBOX_DISPLAYDon’t display the checkbox, but apply the save option value during save.
SHOW_CHECKBOX_WITH_DEFAULT_OFFDisplay the checkbox, unchecked by default.
SHOW_CHECKBOX_WITH_DEFAULT_ONDisplay the checkbox, checked by default.

For example, you can set cases, when saved, to run the **Assign using active assignment rule ** without displaying a checkbox, and display the Send notification email to Contact checkbox, checked by default.

Set assignment rules, territory rules, and email templates before configuring them as save options.

Value of an element in an array in a component instance.

Name of an element in an array in a component instance.

  • Type: string
  • Required: No
  • Description: Name of an element in an array in a component instance.

In API version 49.0 and later, arrays in a FlexiPage are represented as valueList. Each array element is represented as valueListItem, and the element name is represented as value.

For example, if you have an array of actions with API names Clone and Edit, the array is represented as valueList, with two valueListItems. One valueListItems has the value Clone, and one valueListItems has the value Edit.

Represents a single field component that resides on a Lightning page. This subtype is available only on Lightning Pages that have enabled Dynamic Forms.

Introduced in API version 49.0.

  • Type: FieldInstanceProperty[]
  • Required: No
  • Description: Properties of the field instance. Contains a name and value pair for each property associated with the field.
  • Type: string
  • Required: Yes
  • Description: The API name of the field, prefixed with its context. For example, record fields are prefixed with Record..
  • Type: string
  • Required: No
  • Introduced: API version 53.0
  • Description: Required. The unique name of the FieldInstance. Provides a way to uniquely identify an individual instance of a field on a Dynamic Forms-enabled Lightning page. This field has a maximum limit of 120 characters.
  • Type: UiFormulaRule
  • Required: No
  • Description: A set of one or more filters that define the conditions under which the component displays on the page. If the rule evaluates to true, the component displays on the page. If false, it doesn’t display. If this field is null, the component displays by default.

Represents a single property of a field instance. This subtype is available only on Lightning pages that have enabled Dynamic Forms.

Introduced in API version 49.0.

  • Type: string (enumeration of type string)
  • Required: No
  • Description: Name of the property, unique within the field instance.
  • Possible values:
    • conditionalFormatRuleset — Available in API version 62.0 and later.
    • uiBehavior — Available in API version 49.0 and later.
  • Type: string (enumeration of type string)

  • Required: No

  • Description: Reference or value of the property.

    When the name value is uiBehavior, valid values for this field are:

  • Possible values:

    • None
    • Readonly
    • Required

An event associated with the Lightning page.

Introduced in API version 53.0.

  • Type: string

  • Required: Yes

  • Description: Required. The name of the event source item. If the source is a custom Lightning web component, this field is the name of the component.

    In API 53.0, a source can be only a Lightning web component.

  • Type: FlexipageEventSourceTypeEnum (enumeration of type string)

  • Required: Yes

  • Description: Required. The type of item assigned as the event source.

    In API version 53.0, this field can have only a value of Component.

  • Type: FlexiPageEventTarget[]
  • Required: No
  • Description: The list of targets associated with the event source.

A key-value pair for an event’s source-to-target bindings.

Introduced in API version 53.0.

  • Type: string
  • Required: Yes
  • Description: Required. Name of the target property that changes when the event is triggered.
  • Type: string

  • Required: No

  • Description: Value of the target property when the event occurs.

    For properties of type string, integer, and boolean, you can use an expression to define their value. Valid expression format is {!Event.eventPropertyName}. Event is the only context supported for expressions in interactions.

A property associated with an event.

This type extends FlexiPageEventInstanceProperty and inherits its fields.

Introduced in API version 53.0.

  • Type: string
  • Required: Yes
  • Description: Required. In API version 53.0 and later, the value of this field can be only eventName.
  • Type: string

  • Required: Yes

  • Description: Required. If the name field value is eventName, this field is the name of the event.

    If the event source is a Lightning web component, this value must be the same as the event name defined in the source component’s js-meta.xml file.

A target associated with an event source on the Lightning page.

Introduced in API version 53.0.

  • Type: string

  • Required: Yes

  • Description: Required.

    The only valid value is updateProperties.

  • Type: string (enumeration of type string)
  • Required: Yes
  • Description: Required. The name of the event target.
  • Possible values:
    • flexipage:componentService
  • Type: FlexipageEventTargetTypeEnum (enumeration of type string)
  • Required: Yes
  • Description: Required. The type of item assigned as the event target.
  • Possible values:
    • FlexipageServices — A component on the Lightning page.

A property on the event source’s target represented as a key-value pair.

This type extends FlexiPageEventInstanceProperty and inherits its fields.

Introduced in API version 53.0.

  • Type: string
  • Required: Yes
  • Description: Required. In API version 53.0 and later, the value of this field can be only componentIdentifier
  • Type: string
  • Required: Yes
  • Description: Required. The ComponentInstance identifier value for the component.

FlexiPage Region represents the properties of a region of a page. A region can contain a record list component or a recent items component that can be scoped to a set of entities.

A Lightning page region can contain up to 100 components.

A Lightning page region can contain up to 100 components.

  • Type: RegionFlagStatus (enumeration of type string)

  • Required: No

  • Introduced: API version 35.0

  • Description: This field is available in Digital Experiences in API 45.0 or later, but is reserved for future use for all other areas.

    This field is assessed in combination with replaceable and prependable

    • If all the properties are set to enabled, the region is unlocked
    • If all the properties are set to disabled, the region is locked
    • If none of the properties are specified OR any of these three properties are missing, the region is unlocked.
  • Possible values:

    • disabled
    • enabled
  • Type: ComponentInstance[]

  • Required: No

  • Version: This field was removed in API version 49.0.

  • Description: Properties and name of the component instance.

    In API version 49.0 and later, use the itemInstances field instead.

  • Type: ItemInstance[]
  • Required: No
  • Introduced: API version 49.0
  • Description: Array of item instances, which can contain components and fields.
  • Type: FlexiPageRegionMode (enumeration of type string)
  • Required: No
  • Introduced: API version 35.0
  • Description: This field is reserved for future use.
  • Possible values:
    • Append
    • Prepend
    • Replace
  • Type: string
  • Required: Yes
  • Description: Required. Unique name of the FlexiPage region.
  • Type: RegionFlagStatus (enumeration of type string)

  • Required: No

  • Introduced: API version 35.0

  • Description: This field is available in Digital Experiences in API 45.0 or later, but is reserved for future use for all other areas.

    This field is assessed in combination with appendable and replaceable.

    • If all the properties are set to enabled, the region is unlocked
    • If all the properties are set to disabled, the region is locked
    • If none of the properties are specified OR any of these three properties are missing, the region is unlocked.
  • Possible values:

    • disabled
    • enabled
  • Type: RegionFlagStatus (enumeration of type string)

  • Required: No

  • Introduced: API version 35.0

  • Description: This field is available in Digital Experiences in API 45.0 or later, but is reserved for future use for all other areas.

    This field is assessed in combination with appendable and prependable.

    • If all the properties are set to enabled, the region is unlocked
    • If all the properties are set to disabled, the region is locked
    • If none of the properties are specified OR any of these three properties are missing, the region is unlocked.
  • Possible values:

    • disabled
    • enabled
  • Type: FlexiPageRegionType (enumeration of type string)
  • Required: Yes
  • Introduced: API version 35.0
  • Description: Required. The type of FlexiPage region.
  • Possible values:
    • Background — Represents a region for background utility items, which aren’t visible in the UI. Supported for utility bars only.
    • Facet
    • Region

FlexiPageTemplateInstance represents an instance of a Lightning page template.

  • Type: ComponentInstanceType (enumeration of type string)
  • Required: No
  • Type: string
  • Required: No
  • Type: string
  • Required: Yes

Instance of a component or field on a Lightning page.

Introduced in API version 49.0.

  • Type: ComponentInstance
  • Required: No
  • Description: Properties and name of the component instance.
  • Type: FieldInstance
  • Required: No
  • Description: API name, label, and visibility rule information of the field component. This field is available only on Lightning pages that use Dynamic Forms.

PlatformActionList represents the list of actions, and their order, that display on a Lightning app page.

Introduced in API version 34.0.

  • Type: PlatformActionListContext (enumeration of type string)
  • Required: Yes
  • Description: Required. The context of the action list.
  • Possible values:
    • Assistant
    • BannerPhoto
    • Chatter
    • Dockable
    • FeedElement
    • Flexipage
    • Global
    • ListView
    • ListViewDefinition
    • ListViewRecord
    • Lookup
    • MruList
    • MruRow
    • ObjectHomeChart
    • Photo
    • Record
    • RecordEdit
    • RelatedList
    • RelatedListRecord
  • Type: string
  • Required: No
  • Description: When the ActionListContext is RelatedList or RelatedListRecord, this field represents the API name of the related list to which the action belongs.

PlatformActionListItem represents an action in the PlatformActionList.

Introduced in API version 34.0.

  • Type: string
  • Required: Yes
  • Description: Required. The API name for the action in the list.
  • Type: PlatformActionType (enumeration of type string)
  • Required: Yes
  • Description: Required. The type of action.
  • Possible values:
    • ActionLink — An indicator on a feed element that targets an API, a web page, or a file, represented by a button in the Salesforce Chatter feed UI.
    • CustomButton — When clicked, opens a URL or a Visualforce page in a window or executes JavaScript.
    • InvocableAction
    • ProductivityAction — Productivity actions are predefined and attached to a limited set of objects. Productivity actions include Send Email, Call, Map, View Website, and Read News. Except for the Call action, you can’t edit productivity actions.
    • QuickAction — A global or object-specific action.
    • StandardButton — A predefined Salesforce button such as New, Edit, and Delete.
  • Type: int
  • Required: Yes
  • Description: Required. The placement of the action in the list.
  • Type: string
  • Required: No
  • Description: The subtype of the action. For quick actions, the subtype is QuickActionType. For custom buttons, the subtype is WebLinkTypeEnum. For action links, subtypes are Api, ApiAsync, Download, and Ui. Standard buttons and productivity actions have no subtype.

A single filter that when evaluated, helps define component visibility on a Lightning page.

Introduced in API version 41.0.

  • Type: string
  • Required: Yes
  • Description: Required. The field upon which the filter is based. For example, AMOUNT.
  • Type: string (enumeration of type string)
  • Required: Yes
  • Description: Required. Defines the operator used to filter the data.
  • Possible values:
    • CONTAINS
    • EQUAL
    • NE — not equal
    • GT — greater than
    • GE — greater than or equal
    • LE — less than or equal
    • LT — less than
  • Type: string
  • Required: No
  • Description: The value by which you want to evaluate the component’s visibility. For example, 1000000.

You can use these expressions in the leftValue field when setting filters for component visibility.

  • {!$Client.FormFactor}—Use this expression to control component visibility based on the device the page is being rendered on. Valid values are Small (phone), Medium (tablet), and Large (Lightning Experience desktop). Setting the value to Small for record pages is supported only in orgs that are enabled for the new Salesforce mobile app. This expression is supported for app pages in API version 41.0 and later, and record pages in API version 47.0 and later.
  • {!$Permission.CustomPermission.permissionName}—Use this expression to control component visibility based on the custom permissions of the user viewing the Lightning page. Supported for app, Home, and record pages only.
  • {!$Permission.StandardPermission.permissionName}—Use this expression to control component visibility based on the standard permissions of the user viewing the Lightning page. Supported for app, Home, and record pages only.
  • {!Record.field}—Supported for record pages only.
  • {!$User.field}—Supported for app, Home, and record pages only.

For example, to display a component only when it renders on a phone, add this filter: {!$Client.FormFactor} EQUAL "SMALL". Or, to display a component only to the System Administrator, use {!$User.Profile.Name} EQUAL "System Administrator".

Expressions in component visibility rules can span no more than five fields. For example, {!Record.Account.Owner.Manager.Manager.Manager.LastName} has six spans and therefore isn’t supported.

A set of one or more filters that define the conditions under which a component displays on a Lightning page. For example, you could construct a filter that causes a rich text component on an opportunity page to display only when the Amount is greater than $1,000,000.

Introduced in API version 41.0.

  • Type: string
  • Required: No
  • Description: Specifies advanced filter conditions such as 1 AND 2.
  • Type: UiFormulaCriterion[]
  • Required: No
  • Description: List of one or more filters that, when evaluated, determine component visibility.

Here’s a sample XML FlexiPage component definition for a custom opportunity record page. It includes a tab set and a rich text component with visibility rules assigned to it.

As an Experience Builder site page, three initial regions in the definition show the header region as locked, the content region as unlocked, and the footer region as unlocked.

And, here’s the sample package.xml file that references the FlexiPage component definition:

This metadata type supports the wildcard character * (asterisk) in the package.xml manifest file. For information about using the manifest file, see Deploying and Retrieving Metadata with the Zip File.