---
schema_version: "1"
id: 20e263c711667262816e463b910ef34f25ff3afe57ce1d798b4180cbbe96735e
title: ProfileActionOverride
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_profileactionoverride.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_profileactionoverride.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: a685a130152f43370568c6c1ff47a620f2ef332e1400b111758243125d74f971
description: Represents an override of an ActionOverride by a user profile. You can use it to override an ActionOverride on a standard Home tab or object record page in Lightning Experience. When a user logs in with a profile, a matching ProfileActionOverride assignment takes precedence over existing overrides for the Home tab or record page specified in ActionOverride. In API versions 39.0 to 44.0, you can access ProfileActionOverride by accessing its encompassing CustomApplication or Profile metadata types. In API version 45.0 and later, you can access ProfileActionOverride only by accessing its encompassing CustomApplication.
---
# ProfileActionOverride

Represents an override of an ActionOverride by a user profile. You can use it to override an ActionOverride on a standard Home tab or object record page in Lightning Experience. When a user logs in with a profile, a matching ProfileActionOverride assignment takes precedence over existing overrides for the Home tab or record page specified in ActionOverride. In API versions 39.0 to 44.0, you can access ProfileActionOverride by accessing its encompassing [CustomApplication](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_customapplication.htm#meta_customapplication "CustomApplication represents a custom or standard application. In API version 29.0 and earlier, CustomApplication represents only a custom application. An application is a list of tab references, with a description and a logo. This type extends the Metadata metadata type and inherits its fullName field.") or [Profile](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_profile.htm#meta_profile "Represents a user profile. A profile defines a user’s permission to perform different functions within Salesforce. This type extends the Metadata metadata type and inherits its fullName field.") metadata types. In API version 45.0 and later, you can access ProfileActionOverride only by accessing its encompassing [CustomApplication](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_customapplication.htm#meta_customapplication "CustomApplication represents a custom or standard application. In API version 29.0 and earlier, CustomApplication represents only a custom application. An application is a list of tab references, with a description and a logo. This type extends the Metadata metadata type and inherits its fullName field.").

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

#### Note

ProfileActionOverrides aren’t supported in packaging. They’re supported in change sets, but you have to add them manually.

## File Suffix and Directory Location

Profile-based action overrides are defined as part of a custom application or profile.

## Version

ProfileActionOverrides are available in API version 39.0 and later.

ProfileActionOverride can be defined on Profile or CustomApplication for API version 39.0 to 44.0. In API version 45.0 and later, ProfileActionOverride must be defined for CustomApplication instead. Beginning with API version 45.0, Home page assignments related to user profile must also have a corresponding app assignment because more granular Home page assignments are supported. As a result, ProfileActionOverride is defined for CustomApplication rather than Profile.

## Fields

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



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

              <th class="featureTableHeader  " id="d771279e123">Field Type</th>

              <th class="featureTableHeader  " id="d771279e126">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">actionName</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">string</td>

              <td class="entry" headers="d771279e126" data-title="Description">
                <span class="ph" id="actionname_desc"><a name="actionname_desc"><!-- --></a>The name of the action. The only valid values are
                  <samp class="codeph nolang">Tab</samp> and <samp class="codeph nolang">View</samp>.</span>
                <p class="p" id="actionname_desc2"><a name="actionname_desc2"><!-- --></a>If
                  <span class="keyword parmname">pageOrSobjectType</span> is <samp class="codeph nolang">standard-home</samp>, this field must be <samp class="codeph nolang">Tab</samp>. The <samp class="codeph nolang">Tab</samp> action is supported
                  only when ProfileActionOverride is being specified as part of a Profile in API
                  version 39.0 to 44.0.
                </p>
                <p class="p" id="actionname_desc4"><a name="actionname_desc4"><!-- --></a>In API version 45.0 and later,
                  this action is supported only when ProfileActionOverride is being specified as
                  part of a CustomApplication, <span class="keyword parmname">pageOrSobjectType</span> is <samp class="codeph nolang">standard-home</samp>, and this field is <samp class="codeph nolang">Tab</samp>.</p>
                <p class="p" id="actionname_desc3"><a name="actionname_desc3"><!-- --></a>If
                  <span class="keyword parmname">pageOrSobjectType</span> is <samp class="codeph nolang">record-home</samp>, this field must be <samp class="codeph nolang">View</samp>. The <samp class="codeph nolang">View</samp> action is
                  supported only when ProfileActionOverride is being specified as part of a
                  CustomApplication.
                </p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">content</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">string</td>

              <td class="entry" headers="d771279e126" data-title="Description"><span class="ph" id="content_desc"><a name="content_desc"><!-- --></a>Read-only. Represents the name of the Lightning page
                  being used as the override.</span></td>

            </tr>

            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">formFactor</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">FormFactor (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type string)</td>

              <td class="entry" headers="d771279e126" data-title="Description">The size of the page being overridden. The <samp class="codeph nolang">Large</samp> value represents the Lightning Experience desktop
                environment.</td>

            </tr>

            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">pageOrSobjectType</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">string</td>

              <td class="entry" headers="d771279e126" data-title="Description"><span class="ph" id="pageorsobjecttype_desc"><a name="pageorsobjecttype_desc"><!-- --></a>The name of the page being overridden. The only
                  valid values are <samp class="codeph nolang">record-home</samp> and <samp class="codeph nolang">standard-home</samp>. If the
                  <span class="keyword parmname">actionName</span> is <samp class="codeph nolang">Tab</samp>,
                  this field must be <samp class="codeph nolang">standard-home</samp></span></td>

            </tr>

            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">recordType</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">string</td>

              <td class="entry" headers="d771279e126" data-title="Description">
                <span class="ph" id="recordtype_desc1"><a name="recordtype_desc1"><!-- --></a>The record type associated with the override.</span>
                <span class="ph" id="recordtype_desc2"><a name="recordtype_desc2"><!-- --></a>If <span class="keyword parmname">pageOrSobjectType</span> is <samp class="codeph nolang">standard-home</samp>, this field must be <samp class="codeph nolang">null</samp>.</span> This field is required when
                <span class="keyword parmname">actionName</span> is set to <samp class="codeph nolang">View</samp>.
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d771279e120" data-title="Field Name"><span class="keyword parmname">type</span></td>

              <td class="entry" headers="d771279e123" data-title="Field Type">ActionOverrideType (<a class="xref" href="https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_objects_intro.htm#enumeration_title">enumeration</a> of type string)</td>

              <td class="entry" headers="d771279e126" data-title="Description"><span class="ph" id="type_desc"><a name="type_desc"><!-- --></a>Read-only. The type of action override. The only valid value
                  is <samp class="codeph nolang">flexipage</samp>.</span></td>

            </tr>

          </tbody>

        </table>

## Usage

You can't delete custom app ProfileActionOverrides by deploying with destructiveChange.xml. To delete a ProfileActionOverride, retrieve the app. In the app definition file, find the <profileActionOverrides> section, and remove the <content> row. Then, change the <type> value in that same section to default instead of flexipage. Do this for every override you want to reset. After making the changes, rezip the folder and deploy.

You can remove one override at a time each with its own deploy, or you can remove multiple overrides in a single deploy. However, we recommend that you do a fresh retrieve every time you want to delete a new override. Don’t use a previously retrieved file.

Avoid creating duplicate ProfileActionOverrides in your org. Duplicate ProfileActionOverrides can cause problems, including being unable to select or deselect the **Disable end user personalization of nav items in this app** option in app settings and the **Disable Navigation Bar Personalization in Lightning Experience** User Interface setting.

## Declarative Metadata Sample Definition

You can define a ProfileActionOverride like this.

<CustomApplication xmlns="http://soap.sforce.com/2006/04/metadata">
    <profileActionOverrides\>
        <actionName\>View</actionName\>
        <content\>CustomObjectFlexiPage</content\>
        <formFactor\>Large</formFactor\>
        <pageOrSobjectType\>TestObj\_\_c</pageOrSobjectType\>
        <type\>Flexipage</type\>
        <profile\>standard</profile\>
        <recordType\>TestObj\_\_c.TestRecordType</recordType\>
    </profileActionOverrides\>
    <defaultLandingTab\>standard-home</defaultLandingTab\>
    <formFactors\>Large</formFactors\>
    <label\>My Custom App</label\>
    <tab\>standard-Account</tab\>
    <tab\>standard-Opportunity</tab\>
    <uiType\>Lightning</uiType\>
    <navType\>Standard</navType\>
</CustomApplication\>

Here’s an example package.xml.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types\>
        <members\>MyCustomApp</members\>
        <name\>CustomApplication</name\>
    </types\>
    <version\>39.0</version\>
</Package\>

## Wildcard Support in the Manifest File

This metadata type doesn’t support 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](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/file_based_zip_file.htm).