---
schema_version: "1"
id: 7f275e17133553c96aa8afd9608a1d3d64d9778e28d9710daebe8d49a5dd5191
title: FlexiPage
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_tooling/tooling_api_objects_flexipage.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_flexipage.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2485f887236f79647a564a3d241047d2448a8fda55b7d8c79f8c4e9edfac4a11
description: Represents a Lightning page. A Lightning page is a customizable page composed of regions containing Lightning components.
---
# 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.

![Note](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/images/icon_note.png)

#### Note

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](https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/images/icon_note.png)

#### 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.

## Supported SOAP Calls

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

## Supported REST HTTP Methods

DELETE,GET, HEAD,PATCH,POST

## Fields

<table class="featureTable sort_table" summary="">


          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d164029e163">Field</th>

              <th class="featureTableHeader  " id="d164029e166">Details</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">Description</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The page description. This field can be useful to describe the reason for
                    creating the page or its intended use.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">DeveloperName</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The API name of the Lightning page.</dd>

                  <dd class="dd">
                    <div class="box message info">
                      <div class="inner">
                        <div class="bd">
                          <div class="media">
                            <img class="img mtm" src="https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/images/icon_note.png" alt="Note">
                            <div class="mediaBd">
                              <h4 class="mbs">Note</h4>
                              <p>Only users with View DeveloperName OR View Setup and Configuration
                                permission can view, group, sort, and filter this field.</p>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>

                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">EntityDefinitionId</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">
                    <span class="ph" id="EntityDefinitionId_desc"><a name="EntityDefinitionId_desc"><!-- --></a>The name of the standard object or ID of
                      the custom object that the Lightning page is associated with. For Lightning
                      pages of type <samp class="codeph nolang">AppPage</samp> or <samp class="codeph nolang">HomePage</samp>, this field is <samp class="codeph nolang">null</samp>.</span>
                    <p class="p">This field is available in API
                      version 39.0 and later.</p>
                  </dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">FullName</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Group, Nillable</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The full name of the associated FlexiPage object in Metadata API.</dd>

                  <dd class="dd">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.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">ManageableState</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">ManageableState enumerated list</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Restricted picklist, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Indicates the manageable state of the specified component that is contained
                    in a package: <ul class="ul bulletList">
                      <li class="li"><samp class="codeph nolang">beta</samp></li>

                      <li class="li"><samp class="codeph nolang">deleted</samp></li>

                      <li class="li"><samp class="codeph nolang" id="d4195e337-d4254e373"><a name="d4195e337-d4254e373"><!-- --></a>deprecated</samp></li>

                      <li class="li"><samp class="codeph nolang">deprecatedEditable</samp></li>

                      <li class="li"><samp class="codeph nolang">installed</samp></li>

                      <li class="li"><samp class="codeph nolang">installedEditable</samp></li>

                      <li class="li"><samp class="codeph nolang">released</samp></li>

                      <li class="li"><samp class="codeph nolang">unmanaged</samp></li>

                    </ul>
                  </dd>


                </dl>

                <p class="p">This field is available in API version 38.0 and later.</p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">MasterLabel</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The page’s label.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">Metadata</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">FlexiPageMetadata</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Create, Nillable, Update</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Lightning page metadata.</dd>

                  <dd class="dd">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.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">NamespacePrefix</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The namespace of the package of which the FlexiPage is a part.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">ParentFlexiPage</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The name of the FlexiPage that this page inherits behavior from. Available
                    in API version 37.0 or later.</dd>


                </dl>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">SobjectType</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">string</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Nillable, Sort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">The object the Lightning page is
                    associated with. For Lightning pages of type <samp class="codeph nolang">AppPage</samp> or <samp class="codeph nolang">HomePage</samp>,
                    this field is <samp class="codeph nolang">null</samp>.</dd>


                </dl>

                <p class="p">Available in API version 37.0 and 38.0. Deprecated as of API version 39.0. Use
                  <span class="keyword parmname">EntityDefinitionId</span> instead.
                </p>

              </td>

            </tr>

            <tr>
              <td class="entry" headers="d164029e163" data-title="Field"><span class="keyword parmname">Type</span></td>

              <td class="entry" headers="d164029e166" data-title="Details">
                <dl class="dl detailList">

                  <dt class="dt dlterm">Type</dt>

                  <dd class="dd">picklist</dd>



                  <dt class="dt dlterm">Properties</dt>

                  <dd class="dd">Filter, Group, Restricted picklistSort</dd>



                  <dt class="dt dlterm">Description</dt>

                  <dd class="dd">Required. The type of the Lightning page. Valid values are: <ul class="ul bulletList">
                      <li class="li">
                        <samp class="codeph nolang">CdpRecordPage</samp>—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 <span class="ph">Data 360</span>
                        enabled.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">AppPage</samp>—A Lightning page that
                        is used as the home page for a custom app.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommAppPage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommContractDetailViewPage</samp>—This value is available in API
                        version 64.0 and later.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e370"><a name="d4195e589-d4208e370"><!-- --></a><samp class="codeph nolang">CommCheckoutPage</samp>—A Lightning page that is used to
                          create a B2B Commerce checkout, as created in the Experience
                          Builder.</span> This value is available in API version 46.0 and
                        later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommFlowPage</samp> A Lightning page
                        used to override a flow page, as created in the Experience Builder.
                        This value is available in API version 45.0 and later.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e383"><a name="d4195e589-d4208e383"><!-- --></a><samp class="codeph nolang">CommForgotPasswordPage</samp>—A Lightning page that’s used
                          to override a forgot-password page, as created in Experience
                          Builder.</span> This value is available in API version 39.0 and
                        later.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e390"><a name="d4195e589-d4208e390"><!-- --></a><samp class="codeph nolang">CommFlowPage</samp>—An out-of-the-box flow page, as
                          created in Experience Builder</span>. This value is available in
                        API version 45.0 and later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommGlobalSearchResultPage</samp> 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.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e402"><a name="d4195e589-d4208e402"><!-- --></a><samp class="codeph nolang">CommLoginPage</samp>—A Lightning page that’s used to
                          override the login page, as created in Experience Builder.</span>
                        This value is available in API version 39.0 and later.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e409"><a name="d4195e589-d4208e409"><!-- --></a><samp class="codeph nolang">CommNoSearchResultsPage</samp>—An Experience Builder site
                          page for B2B searches that return no results. The URL for this
                          page is <span class="ph filepath">no-results/:term</span>. 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.</span>
                        This value is available in API version 48.0 and later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommObjectPage</samp>—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.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e425"><a name="d4195e589-d4208e425"><!-- --></a><samp class="codeph nolang">CommOrderComfirmationPage</samp>—A
                          Lightning page that is used to create a B2B Commerce order
                          confirmation page in checkout, as created in the Experience
                          Builder.</span> This value is available in API version 46.0 and
                        later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommQuickActionCreatePage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommRecordPage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommRelatedListPage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommSearchResultPage</samp>—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.
                      </li>

                      <li class="li">
                        <span class="ph" id="d4195e589-d4208e453"><a name="d4195e589-d4208e453"><!-- --></a><samp class="codeph nolang">CommSelfRegisterPage</samp>—A Lightning page used to
                          override the self-registration page, as created in Experience
                          Builder.</span> This value is available in API version 39.0 and
                        later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">CommThemeLayoutPage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">EmbeddedServicePage</samp> This
                        value is available in API version 45.0 and later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">EmailContentPage</samp> — 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. <p class="p">Because they include builder
                          markup, you can't retrieve or deploy FlexiPages when type is
                          EmailContentPage.</p>
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">EmailTemplatePage</samp> — 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. <p class="p">Because they include
                          builder markup, you can't retrieve or deploy FlexiPages when
                          type is EmailTemplatePage or EmailContentPage.</p>
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">ForecastingPage</samp> —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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">HomePage</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">MailAppAppPage</samp>—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.
                      </li>
                      <li class="li">
                        <samp class="codeph nolang">OmniSupervisorPageType—</samp>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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">QuickAction</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">RecordPage</samp>—A Lightning page
                        used to override an object record page in Lightning Experience.
                        This value is available in API version 37.0 and later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">RecordPreview</samp>—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.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">UtilityBar</samp>—A Lightning page
                        used as the utility bar in Lightning Experience apps. This value is
                        available in API version 38.0 and later.
                      </li>

                      <li class="li">
                        <samp class="codeph nolang">VoiceExtension</samp>—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.
                      </li>

                    </ul>
                  </dd>


                </dl>

                <p class="p">Available in API version 32.0 or later. In API versions 32.0 through 36.0, this
                  field can only have a value of <samp class="codeph nolang">AppPage</samp>.</p>

              </td>

            </tr>

          </tbody>

        </table>

## Sample Code

This code sample creates a Lightning page with a single Recent Items component, that shows recently used Accounts and MyCustomObject\_\_cs

 ComponentInstance recentItems = new ComponentInstance();
 recentItems.setComponentName("flexipage:recentItems");
 ComponentInstanceProperty cip = new ComponentInstanceProperty();
 cip.setName("entityNames");
 cip.setValue("Account,MyCustomObject\_\_c");
 recentItems.setComponentInstanceProperties(new ComponentInstanceProperty\[\]{cip});

FlexiPageRegion mainRegion = new FlexiPageRegion();
mainRegion.setName("main");
mainRegion.setType(FlexiPageRegionType.Region)
mainRegion.setComponentInstances(new ComponentInstance\[\] { recentItems });

FlexiPageMetadata fpMetadata = new FlexiPageMetadata();
fpMetadata.setFlexiPageRegions(new FlexiPageRegion\[\]{mainRegion});
fpMetadata.setMasterLabel("My FlexiPage");
fpMetadata.setDescription("A FlexiPage with a recent items component");
fpMetadata.setType(FlexiPageType.AppPage);

FlexiPage flexiPage = new FlexiPage();
flexiPage.setFullName("MyFlexiPageDevName");
flexiPage.setMetadata(fpMetadata);

// Create
SaveResult saveResult = soapConnection.create(new SObject\[\] { flexiPage });