FlexiPage

Represents a Lightning page. A Lightning page is a customizable page composed of regions containing Lightning components.

Includes access to the associated FlexiPage object in the Metadata API. Available from API version 31.0 or later.

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.

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.

Note

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.

Note

Version 

Introduced in API version 31.0.

Supported SOAP API Calls 

create(), delete(), describeLayout(), describeSObjects(), query(), retrieve(), update(), upsert()

Supported REST API Methods 

DELETE, GET, HEAD, PATCH, POST, Query

Fields 

Description 

  • Type: textarea

  • Required: No

  • Properties: Filter, Group, Nillable, Sort

  • Description: The page description. This field can be useful to describe the reason for creating the page or its intended use.

DeveloperName 

  • Type: string

  • Required: No

  • Properties: Filter, Group, Sort

  • Description: The API name of the Lightning page.

    Only users with View DeveloperName OR View Setup and Configuration permission can view, group, sort, and filter this field.

    Note

EntityDefinitionId 

  • Type: string

  • Required: No

  • Properties: Filter, Group, Nillable, Sort

  • Introduced: API version 39.0

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

FullName 

  • Type: string

  • Required: No

  • Properties: Create, Group, Nillable

  • Introduced: API version 31.0

  • Description: The full name of the associated FlexiPage object in Metadata API.

Query this field only if the query result contains no more than one record. Otherwise, an error is returned. If more than one record exists, use multiple queries to retrieve the records. This limit protects performance.

ManageableState 

  • Type: picklist

  • Required: No

  • Properties: Filter, Group, Nillable, Restricted picklist, Sort

  • Description: Indicates the manageable state of the specified component that is contained in a package:

  • beta

  • deleted

  • deprecated

  • deprecatedEditable

  • installed

  • installedEditable

  • released

  • unmanaged

This field is available in API version 38.0 and later.

  • Possible values:

    • beta — beta

    • deleted — deleted

    • deprecated — deprecated

    • deprecatedEditable — deprecatedEditable

    • installed — installed

    • installedEditable — installedEditable

    • released — released

    • unmanaged — unmanaged

MasterLabel 

  • Type: string

  • Required: No

  • Properties: Filter, Group, Sort

  • Description: The page’s label.

Metadata 

  • Type: complexvalue

  • Required: No

  • Properties: Create, Nillable, Update

  • Introduced: API version 31.0

  • Description: Lightning page metadata.

Query this field only if the query result contains no more than one record. Otherwise, an error is returned. If more than one record exists, use multiple queries to retrieve the records. This limit protects performance.

NamespacePrefix 

  • Type: string

  • Required: No

  • Properties: Filter, Group, Nillable, Sort

  • Description: The namespace of the package of which the FlexiPage is a part.

ParentFlexiPage 

  • Type: picklist

  • Required: No

  • Properties: Filter, Group, Nillable, Restricted picklist, Sort

  • Introduced: API version 35.0

  • Description: The name of the FlexiPage that this page inherits behavior from.

Type 

  • Type: picklist

  • Required: No

  • Properties: Filter, Group, Restricted picklist, Sort

  • Introduced: API version 32.0

  • Description: Required. The type of the Lightning page. In API versions 32.0 through 36.0, this field can only have a value of AppPage.

  • Possible values:

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

    • ObjectPage — Object Page

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

    • HomePage — Home Page — 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.

    • ForecastingPage — Forecasting Page — 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.

    • MailAppAppPage — Email Application Pane — 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.

    • CommAppPage — Communities App Page — 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.

    • CommForgotPasswordPage — Communities Forgot Password Page — 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.

    • CommLoginPage — Communities Login Page — 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.

    • CommObjectPage — Communities Object Page — 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.

    • CommQuickActionCreatePage — Communities Quick Action Create Page — 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 — Communities Record Page — 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 — Communities Related List Page — 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 — Communities Search Result Page — 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.

    • CommGlobalSearchResultPage — Communities Global Search Result Page

    • CommSelfRegisterPage — Communities Self-Register Page — 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 — Communities Theme Layout Page — 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.

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

    • RecordPreview — Record Preview — 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.

    • EmbeddedServicePage — Embedded Service Page

    • CommCheckoutPage — Communities Checkout Page — 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.

    • CommOrderConfirmationPage — Communities Order Confirmation Page

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

    • EmailTemplatePage — Email Template Page — 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.

    • ApplicationLayout — Application Layout

    • CommNoSearchResultsPage — Communities No Search Results Page — 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.

    • CommElectronicSignaturePage — Communities E-Signature Page

    • CommContractDocumentsPage — Communities Contract Documents Page

    • CommContractDetailViewPage — Communities Contract Detail View Page — This value is available in API version 64.0 and later.

    • EmailContentPage — Email Content Page — 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.

    • ServiceDocument — Service Document

    • LandingPage — Landing Page

    • CdpRecordPage — CDP Record Page — 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.

    • SlackAppHome — Slack App Home

    • SlackMessage — Slack Message

    • SlackModal — Slack Modal

    • SlackNotification — Slack Notification

    • EasyHomePage — Easy Home Page

    • CardPage — Card Page

    • VoiceExtension — Voice Extension — 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.

    • ConfiguratorAppPage — Configurator App Page

    • OmniSupervisorPage — Omni Supervisor Page

    • MobileAppPage — Mobile App Page

    • CCShellPage — CC Shell Page

    • QuickAction — Quick Action Page — 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.

    • CommOrderComfirmationPage — 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.

    • OmniSupervisorPageType— — 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.

Sample Code 

This code sample creates a Lightning page with a single Recent Items component, that shows recently used Accounts and MyCustomObject__cs

1ComponentInstance recentItems = new ComponentInstance();
2 recentItems.setComponentName("flexipage:recentItems");
3 ComponentInstanceProperty cip = new ComponentInstanceProperty();
4 cip.setName("entityNames");
5 cip.setValue("Account,MyCustomObject__c");
6 recentItems.setComponentInstanceProperties(new ComponentInstanceProperty[]{cip});
7
8FlexiPageRegion mainRegion = new FlexiPageRegion();
9mainRegion.setName("main");
10mainRegion.setType(FlexiPageRegionType.Region)
11mainRegion.setComponentInstances(new ComponentInstance[] { recentItems });
12
13FlexiPageMetadata fpMetadata = new FlexiPageMetadata();
14fpMetadata.setFlexiPageRegions(new FlexiPageRegion[]{mainRegion});
15fpMetadata.setMasterLabel("My FlexiPage");
16fpMetadata.setDescription("A FlexiPage with a recent items component");
17fpMetadata.setType(FlexiPageType.AppPage);
18
19FlexiPage flexiPage = new FlexiPage();
20flexiPage.setFullName("MyFlexiPageDevName");
21flexiPage.setMetadata(fpMetadata);
22
23// Create
24SaveResult saveResult = soapConnection.create(new SObject[] { flexiPage });

DID THIS ARTICLE SOLVE YOUR ISSUE?
Let us know so we can improve!