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 Metadata and inherits its fields.
Custom and standard applications have the suffix .app and are stored in the applications folder.
Retrieving a component of this metadata type in a project makes the component appear in any Profile and PermissionSet components that are retrieved in the same package.
Custom applications are available in API version 10.0 and later. Standard applications are available in API version 30.0 and later.
- Type: AppActionOverride[]
- Required: No
- Description: Represents an action override for an application. Use it to create, update, edit, or delete action overrides.This field is available for Lightning Experience in API version 38.0 and later.
- Type: AppBrand
- Required: No
- Description: The color scheme and logo used for the app.This field is available for Lightning Experience in API version 38.0 and later.
- Type: ServiceCloudConsoleConfig
- Required: No
- Introduced: API version 42.0
- Description: Represents configuration settings for a Salesforce console app.
- Type: string
- Required: No
- Description: The fullName of a standard tab or custom tab that opens when this application is selected.
- Type: string
- Required: No
- Description: The optional description text of the application.
-
Type: FormFactor (enumeration of type string)[]
-
Required: No
-
Introduced: API version 38.0
-
Description: Indicates the form factors for which the app is visible for Lightning Experience.
As of API version 38.0,
formFactorsis set toLargefor existing Salesforce Classic apps, except for Salesforce Classic consoles. Salesforce Classic apps installed from packages created before API version 38.0 also haveformFactorsset toLarge. For Salesforce Classic apps in packages created with API 38.0 or later, you must setformFactorstoLargefor Salesforce Classic apps to appear in the Lightning Experience desktop.As of API version 47.0, the
Smallvalue is supported for Lightning apps. TheformFactorsfield can be set toSmallorLargefor Lightning apps, and it can be set toNullorLargefor Salesforce Classic apps. -
Possible values:
- Null — (no value)—For a desktop using Salesforce Classic
- Small — For a mobile device using the Salesforce mobile app
- Medium — Reserved for future use
- Large — For a desktop using Lightning Experience
- Type: boolean
- Required: No
- Introduced: API version 43.0
- Description: Indicates whether the navigation automatically creates temporary tabs settings. Applies only to Lightning apps with standard navigation.
- Type: boolean
- Required: No
- Introduced: API version 43.0
- Description: Indicates whether navigation personalization is disabled. Applies only to Lightning apps.
- Type: boolean
- Required: No
- Introduced: API version 54.0
- Description: Indicates whether workspace tabs are cleared for each new console session (
true) or not (false). Applies only to Lightning apps with console navigation.
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Description: Indicates if the application is a Salesforce Classic console app. For Lightning Experience console apps, this field is
nulland thenavTypefield is set toConsole.
- Type: string
- Required: No
- Description: The name of the application.
- Type: string
- Required: No
- Description: The optional reference to the image document for a Salesforce app or Salesforce console app.
- Type: NavType (enumeration of type string)
- Required: No
- Introduced: API version 38.0
- Description: Not updateable. Indicates the type of navigation the app uses. The value
Standardis for a Lightning app with standard navigation. The valueConsoleis for a Lightning app with console navigation.
- Type: AppPreferences
- Required: No
- Introduced: API version 42.0
- Description: Represents the preferences for a Salesforce Classic console app. All of the AppPreferences fields are required.
-
Required: No
-
Description: A list of the Lightning Experience record page ProfileActionOverrides that are assigned to this custom app. When a user invokes the custom app, a matching ProfileActionOverride assignment takes precedence over existing overrides for the record page specified in ActionOverride. You can override a record page for the custom app by record type and profile.
In API version 45.0 and later, you can override a home page for the custom app by profile.
-
Type: string (enumeration of type string)
-
Required: No
-
Introduced: API version 39.0
-
Description: The type of Setup experience associated with the app.
A
nullvalue is equivalent toall.Previous valid values
AllSetup,ServiceSetup, andEssentialsSetuphave been deprecated. -
Possible values:
- all — Represents the full Setup tree.
- essentials — Represents the Essentials Setup tree, which contains a subset of Setup items configured for Essentials edition.
- service — Represents the Service Setup tree, which contains a subset of Setup items configured for Service Console.
- Type: string[]
- Required: No
- Introduced: API version 41.0
- Description: Represents the list of tabs appended by a subscriber to a Lightning app installed from a managed package. Records in a subscriber tab always open as primary tabs.
-
Type: string[]
-
Required: No
-
Description: The list of tabs included in this application. In API version 12.0, the
fullNamefor built-in tabs like Home, Account, and Reports, is the name of the tab (Home, for example). In API version 13.0 and later, built-in tabs are prefixed withstandard-. For example, to reference the Account tab you would usestandard-Account.In API version 42.0, this field was renamed from
tabtotabs.
- Type: string
- Required: No
- Introduced: API version 67.0
- Description: The fully qualified name of an interal React app, which is represented by the UIBundle metadata type, such as
c__propertymanagementapp. When configured, makes the app available in the App Launcher.
- Type: UiType (enumeration of type string)
- Required: No
- Introduced: API version 38.0
- Description: Not updateable. Identifies the type of custom app. The value is:
- Possible values:
- Aloha — for Salesforce Classic
- Lightning — for Lightning Experience
-
Type: string
-
Required: No
-
Introduced: API version 38.0
-
Description: The developer name of the utility bar associated with this app.
We recommend assigning a utility bar to only one Lightning App, because utility bars are shared. Sharing means that if you change the utility bar in one app, it automatically changes in all apps associated with it.
- Type: AppWorkspaceConfig
- Required: No
- Description: isServiceCloudConsole
is true.Represents how records open in a Salesforce console app. Required if workspaceConfigfromworkspaceMappings.
Represents an action override for an application. Use it to create, update, edit, or delete action overrides. AppActionOverride inherits from ActionOverride and extends it by one field, pageOrSobjectType. Available for Lightning Experience in API version 38.0 and later.
This type extends ActionOverride and inherits its fields.
- Type: string
- Required: No
- Description: The only valid value is
viewfor API version 43.0 and earlier. The valuetabis supported for API version 44.0 and later.
- Type: string
- Required: No
- Description: Any comments you want associated with the override.
- Type: string
- Required: No
- Description: Set this field if
typeis set toflexipage. It refers to the name of the page to use as the override. To reference installed components, use the format ofComponent_namespace__Component_name.
-
Type: FormFactor (enumeration of type string)
-
Required: No
-
Introduced: API version 37.0
-
Description: The size of the page being overridden.
If the
typefield is set toflexipage, set this field toLargeto override the View action with a Lightning page in Lightning Experience.The
Largevalue represents the Lightning Experience desktop environment and is valid only for theflexipageandlightningcomponenttypes. TheSmallvalue represents the Salesforce mobile app on a phone or tablet. TheMediumvalue is reserved for future use. Thenullvalue (which is the same as specifying no value) represents Salesforce Classic.This field is part of the feature for creating and editing record pages in Lightning Experience.
Lightning component overrides return different
FormFactorvalues depending on the API version used.- In API version 41.0 and earlier, Lightning component overrides return only the
nullvalue (no value), representing the Salesforce Classic environment. - In API version 42.0, if you specify different Lightning component overrides for Lightning Experience and mobile, one component is selected randomly for both overrides and its
FormFactorvalue is returned. If there’s a conflict between Lightning components, and a Visualforce page override is also specified for Salesforce Classic, the Visualforce page takes precedence. - In API version 43.0 and later, a Lightning component override for Lightning Experience returns the
Largevalue and a Lightning component override for mobile returns theSmallvalue, as expected.
- In API version 41.0 and earlier, Lightning component overrides return only the
-
Type: string
-
Required: Yes
-
Description: The name of the sObject type being overridden. Valid values are
standardandcustom.This value must be
standard-homewhen actionName istab.
- Type: boolean
- Required: No
- Description: Set this field to
trueif you prefer that any new records created by this action override aren’t forwarded to the record type selection page. This field is only valid if theactionNameis a “create” type (likenew), andtypeis set tovisualforce.
-
Required: No
-
Description: Required. Represents the type of action override. The valid values are
FlexipageandDefault.A
FlexipageAppActionOverride set to App Default can’t be deleted via Metadata API. Instead, remove the override using the page assignment wizard in the Lightning App Builder UI.
The color scheme and logo used for the app. Available for Lightning apps in API version 38.0 and later.
- Type: string
- Required: No
- Description: Optional. Specify the color with a hexadecimal code, such as #0000FF for blue.Determines the footer color in the app.
- Type: string
- Required: No
- Description: Optional. Specify the color with a hexadecimal code, such as #0000FF for blue.Determines the header color in the app.
- Type: string
- Required: No
- Description: The optional reference to the image document for the application.
- Type: int
- Required: No
- Description: An optional version number for the logo.
- Type: boolean
- Required: No
- Description: Indicates whether to override the global theme for the org. When
true, the color scheme and logo that the user has set are used. Whenfalse, the global theme for the org is used, even if the user has set a color scheme and logo.
Represents custom console components (Visualforce pages) assigned to a Salesforce console app. In API version 42.0, this type was renamed from CustomApplicationComponents to AppComponentList.
- Type: string
- Required: Yes
- Description: Required. Determines how custom console components are aligned in the footer of a Salesforce console app.
- Type: string[]
- Required: No
- Description: The name of a custom console component assigned to a Salesforce console app. In API version 42.0, this field was renamed from
customApplicationComponenttocomponents.
Represents the preferences for a Salesforce Classic console app. All of the AppPreferences fields are required.
Introduced in API version 42.0.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has Customize My Tabs enabled. If enabled, users can hide, display, and organize items in the navigation tab.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has keyboard shortcuts enabled. Shortcuts let users perform actions by pressing a combination of keys instead of having to use a mouse. After keyboard shortcuts are enabled, several default shortcuts are available for customization. Before you can create custom shortcuts, a developer must define the shortcut’s action with the
addEventListener()method in the Salesforce Console Integration Toolkit. You can’t create keyboard shortcuts for actions performed outside of the console. This field is required if isServiceCloudConsoleis true.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has list view hovers enabled. If set to
true, summary information is displayed about a record in a responsive list when the user hovers over a record name. For cases, hover over the subject field.
- Type: boolean
- Required: Yes
- Description: Indicates if Salesforce Classic console apps use responsive list views instead of Salesforce Classic lists views.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has multi-monitor components enabled, which lets users move portions of a console from their browsers to locations on their screens. This field is required if isServiceCloudConsole
is true.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has pinned tabs enabled, which lets users pin primary tabs to the tab bar for quick access.
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app has tab hover enabled. If enabled, summary information is displayed about a record in an overlay when the user hovers over a tab.
- Type: boolean
- Required: Yes
- Type: boolean
- Required: Yes
- Description: Indicates if a Salesforce Classic console app saves user sessions automatically. If enabled, when console users close their browsers or log out of Salesforce, any previously open tabs display when users log in again. Required if isServiceCloudConsole
is true.
Represents a ProfileActionOverride for a custom app. This type inherits from ProfileActionOverride and extends it by one field, profile. Available for Lightning Experience in API version 39.0 and later. In API version 45.0 and later, you can override a home page for the custom app by profile.
This type extends ProfileActionOverride and inherits its fields.
-
Type: string
-
Required: Yes
-
Description: Required. The name of the action. The only valid values are
TabandView.If
pageOrSobjectTypeisrecord-home, this field must beView. TheViewaction is supported only when ProfileActionOverride is being specified as part of a CustomApplication.In API version 45.0 and later, this action is supported only when ProfileActionOverride is being specified as part of a CustomApplication,
pageOrSobjectTypeisstandard-home, and this field isTab.
- Type: string
- Required: No
- Description: Read-only. Represents the name of the Lightning page being used as the override.
- Type: FormFactor (enumeration of type string)
- Required: Yes
- Description: Required. The size of the page being overridden. The
Largevalue represents the Lightning Experience desktop environment.
- Type: string
- Required: Yes
- Description: Required. The name of the page being overridden. The only valid values are
record-homeandstandard-home. If theactionNameisTab, this field must bestandard-home
- Type: string
- Required: Yes
- Description: The profile associated with the ProfileActionOverride.
- Type: string
- Required: No
- Description: The record type associated with the override. If
pageOrSobjectTypeisstandard-home, this field must benull. This field is required whenactionNameis set toView.
- Type: ActionOverrideType (enumeration of type string)
- Required: Yes
- Description: Required. Read-only. The type of action override. The only valid value is
flexipage.
Represents how records open in a Salesforce console app. Required if isServiceCloudConsole is true. Available for Salesforce Classic console apps in API version 25.0 and later. Available for Lightning console apps in API version 41.0 and later. In API version 42.0, this type was renamed from WorkspaceMappings to AppWorkspaceConfig.
- Type: WorkspaceMapping[]
- Required: No
- Description:
Represents how records for a specific tab open in a Salesforce console app. Required for each tab specified in the CustomApplication.workspaceMappingtomappings.
Represents custom keyboard shortcuts assigned to a Salesforce console app in Salesforce Classic. Before you can create custom shortcuts, a developer must define the shortcut’s action with the addEventListener() method in the Salesforce Console Integration Toolkit. You can’t create keyboard shortcuts for actions performed outside of the console.
This type extends DefaultShortcut and inherits its fields.
Introduced in API version 28.0.
- Type: string
- Required: Yes
- Description: Required. The action performed in the console when a user presses the keyboard shortcut.
- Type: boolean
- Required: Yes
- Description: Required. Indicates whether the keyboard shortcut is active (
true) or not (false).
- Type: string
- Required: No
- Description: The optional description text for the keyboard shortcut.
- Type: string
- Required: Yes
- Description: Required. Code available to developers who want to add custom shortcut functions to the console via the Salesforce Console Integration Toolkit.
-
Type: string (enumeration of type string)
-
Required: Yes
-
Description: Required. The combination of keys a user presses to trigger the keyboard shortcut. Keyboard shortcuts aren’t case-sensitive, but they display as uppercase on setup pages in the Salesforce user interface so that they’re easier to read.
Each key command can include up to four modifier keys followed by one non-modifier key. Modifier and non-modifier keys are separated by the
+key. Modifier keys can occur in any order, but you must place non-modifier keys at the end of the key command sequence. For example,SHIFT+CTRL+ALT+META +A.Valid modifier keys are:
Valid non-modifier keys are letters A through Z and numbers 0 through 9. Other valid keys are:
-
Possible values:
- SHIFT
- CTRL
- ALT
- META — (represents the COMMAND key on Macs)
- TAB
- ENTER
- PAUSE/BREAK
- CAPS LOCK
- ESC
- SPACE
- PAGE UP
- PAGE DOWN
- END
- HOME
- LEFT ARROW
- UP ARROW
- RIGHT ARROW
- DOWN ARROW
- PRINT SCREEN
- INSERT
- DELETE
- RIGHT WINDOW
- NUMPAD 0
- NUMPAD 1
- NUMPAD 2
- NUMPAD 3
- NUMPAD 4
- NUMPAD 5
- NUMPAD 6
- NUMPAD 7
- NUMPAD 8
- NUMPAD 9
- MULTIPLY
- ADD
- SUBTRACT
- DECIMAL POINT
- DIVIDE
- F1
- F2
- F3
- F4
- F5
- F6
- F7
- F8
- F9
- F10
- F11
- F12
- NUM LOCK
- SCROLL LOCK
- ;
- =
- ,
- —
- .
- /
- ‘
- [
- ]
- **
- ’
Represents default keyboard shortcuts assigned to a Salesforce console app. After you enable keyboard shortcuts for a console, several default shortcuts are available for customization. These include opening and closing tabs, moving between tabs, and saving records.
Introduced in API version 28.0.
- Type: string (enumeration of type string)
- Required: Yes
- Description: Required. The action performed in the console when a user presses the keyboard shortcut.
- Possible values:
- FOCUS_CONSOLE
- FOCUS_NAVIGATOR_TAB
- FOCUS_DETAIL_VIEW
- FOCUS_PRIMARY_TAB_PANEL
- FOCUS_SUBTAB_PANEL
- FOCUS_LIST_VIEW
- FOCUS_FIRST_LIST_VIEW
- FOCUS_SEARCH_INPUT
- MOVE_LEFT
- MOVE_RIGHT
- UP_ARROW
- DOWN_ARROW
- OPEN_TAB_SCROLLER_MENU
- OPEN_TAB
- CLOSE_TAB
- ENTER
- EDIT
- SAVE
- Type: boolean
- Required: Yes
- Description: Required. Indicates whether the keyboard shortcut is active (
true) or not (false).
- Type: string
- Required: Yes
- Description: Each key command can include up to four modifier keys followed by one non-modifier key. Modifier and non-modifier keys are separated by the
+key. Modifier keys can occur in any order, but you must place non-modifier keys at the end of the key command sequence. For example,SHIFT+CTRL+ALT+META +A.
Represents keyboard shortcuts assigned to a Salesforce console app. Required if isServiceCloudConsole is true.
Introduced in API version 28.0.
-
Type: CustomShortcut[]
-
Required: No
-
Description:
addEventListener()method in the Salesforce Console Integration Toolkit. You can’t create keyboard shortcuts for actions performed outside of the console.Represents custom keyboard shortcuts assigned to a Salesforce console app in Salesforce Classic. Before you can create custom shortcuts, a developer must define the shortcut’s action with the In API version 42.0, this field was renamed from
customShortcuttocustomShortcuts.
- Type: DefaultShortcut[]
- Required: No
- Description: Represents default keyboard shortcuts assigned to a Salesforce console app. After you enable keyboard shortcuts for a console, several default shortcuts are available for customization. These include opening and closing tabs, moving between tabs, and saving records.In API version 42.0, this field was renamed from
defaultShortcuttodefaultShortcuts.
Represents how lists display in a Salesforce console app. Required if isServiceCloudConsole is true.
Introduced in API version 25.0.
- Type: int
- Required: No
- Description: Height of the list in pixels or percentage. Required if
locationis top.
-
Type: string
-
Required: Yes
-
Description: Required. Location of the list on the screen. Valid values are:
- full
- top
- left
- Type: string
- Required: No
- Description: Required. Represents if
heightorwidthis in pixels or percentage.
- Type: int
- Required: No
- Description: Width of the list in pixels or percentage. Required if
locationis left.
Represents your organization’s settings for using Chat in the Salesforce Console.
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Type: boolean
- Required: No
- Type: string[]
- Required: No
- Type: boolean
- Required: No
Represents a set of push notifications, which are visual indicators on lists and detail pages that show when a record or field has changed during a user’s session. Available for use if isServiceCloudConsole is true.
Introduced in API version 28.0.
- Type: string[]
- Required: No
- Description: The name of the field or fields that trigger push notifications for the selected object.
- Type: string
- Required: Yes
- Description: Required. Name of the object that triggers push notifications.
Represents configuration settings for a Salesforce console app.
Introduced in API version 42.0.
- Type: AppComponentList
- Required: No
- Description: Represents custom console components (Visualforce pages) assigned to a Salesforce console app.
- Type: string (enumeration of type string)
- Required: Yes
- Description: Determines how detail pages refresh in a Salesforce console app. Required if
isServiceCloudConsoleistrue. - Possible values:
- none
- autoRefresh
- flag
- Type: string
- Required: No
- Description: Determines the footer color in a Salesforce console app. Specify the color with a hexadecimal code, such as #0000FF for blue.
- Type: string
- Required: No
- Description: Specify the color with a hexadecimal code, such as #0000FF for blue.Determines the header color in a Salesforce console app.
- Type: KeyboardShortcuts
- Required: Yes
- Description: Represents the keyboard shortcuts for a Salesforce console app. Keyboard shortcuts let users perform actions by pressing a combination of keys instead of having to use a mouse.
- Type: ListPlacement
- Required: Yes
- Description: Represents how lists display in a Salesforce console app. Required if
isServiceCloudConsoleistrue.
- Type: string (enumeration of type string)
- Required: Yes
- Description: Determines how lists refresh in a Salesforce console app. Required if
isServiceCloudConsoleistrue. - Possible values:
- none
- refreshList
- refreshListRows
- Type: LiveAgentConfig
- Required: No
- Description: Represents the configurations for using Chat in the Salesforce Console.
- Type: string
- Required: No
- Description: Determines the primary tab color in a Salesforce console app. Specify the color with a hexadecimal code, such as #0000FF for blue.
- Type: PushNotification[]
- Required: No
- Description: Represents push notifications for a Salesforce console app. Push notifications are visual indicators on lists and detail pages that show when a record or field has changed during a user’s session. For example, assume that two support agents are working on the same case. If one agent changes the
Priority, a push notification displays to the other agent so the agent notices the change and doesn’t duplicate the effort.
- Type: TabLimitConfig
- Required: No
- Type: string[]
- Required: No
- Description: Any external domains that users can access from within a Salesforce console app. For example,
www.yourdomain.com.
Represents the maximum number of primary tabs and subtabs allowed in one Salesforce console session. Required if enableTabLimits is true.
-
Type: string
-
Required: No
-
Description: The maximum number of primary tabs allowed in one console session. Valid values are:
- 5
- 10
- 20
- 30
-
Type: string
-
Required: No
-
Description: The maximum number of subtabs allowed in one console session. Valid values are:
- 5
- 10
- 15
Represents how records for a specific tab open in a Salesforce console app. Required for each tab specified in the CustomApplication. Available in API version 25.0 and later for Salesforce Classic console apps. Available in API version 41.0 and later for Lightning console apps.
Introduced in API version 25.0.
- Type: string
- Required: No
- Description: The name of the field that specifies the primary tab in which to display
tabas a subtab. If not specified,tabopens as a primary tab.
- Type: string
- Required: Yes
- Description: Required. Name of the tab.
Here’s the definition of a custom Lightning Experience app:
The following is a definition of a standard app (Chatter):
The following is the definition of a custom app where isServiceCloudConsole is true:
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.
To retrieve apps in your organization, use the CustomApplication type name in the package.xml manifest file. You can either retrieve all apps or specify which apps to retrieve in the types section of package.xml.
To retrieve all apps in your organization—custom and standard apps, specify the wildcard character (*), as follows.
In API version 29.0 and earlier, use of the wildcard returns only all custom applications but not standard applications.
To retrieve a custom app, specify the app name.
To retrieve a standard app, add the standard__ prefix to the app name. For example, to retrieve the Chatter standard app, specify standard__Chatter.
To retrieve an app that is part of an installed package, add the package namespace prefix followed by two underscores and the app name. For example, if the package namespace is myInstalledPackageNS and the app name is PackageApp, specify myInstalledPackageNS__PackageApp, as follows.
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.