---
schema_version: "1"
id: 260fce1fa7687a7fd6c5bf8b37eb18376bd61a659f884e0c70f602ed908c50df
title: ExtlClntAppPushSettings
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_extlclntapppushsettings.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_extlclntapppushsettings.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 2d2f88b3e67496cca68e962e615dd6998dc812e8556de4d00373b2501a503de0
description: Represents an external client app’s push notification settings.
---
# ExtlClntAppPushSettings

Represents an external client app’s push notification settings.

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

#### Note

The ExtlClntAppPushSettings metadata type is a pilot or beta service that is subject to the Beta Services Terms at [Agreements - Salesforce.com](https://www.salesforce.com/company/legal/agreements/ "HTML (New Window)") or a written Unified Pilot Agreement if executed by Customer, and applicable terms in the [Product Terms Directory](https://ptd.salesforce.com/ "HTML (New Window)"). Use of this pilot or beta service is at the Customer's sole discretion.

The ExtlClntAppPushSettings metadata type requires the OAuth plugin for External Client Apps. See [OAuth Plugin Enablement with Metadata API](https://help.salesforce.com/s/articleView?id=xcloud.meta_enable_oauth_plugin.htm&type=5&language=en_US) in Salesforce Help.

## Parent Type

This type extends the [Metadata](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/metadata.htm "The base class for all metadata types. You can’t edit this object. A component is an instance of a metadata type.") metadata type and inherits its fullName field.

## File Suffix and Directory Location

ExtlClntAppPushSettings components have the suffix .ecaPush and are stored in the extlClntAppPushSettings folder.

## Version

ExtlClntAppPushSettings components are available in API version 64.0 and later.

## Special Access Rules

There are no additional access requirements that are specific to this type.

## Fields

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

#### Important

You can configure the ExtlClntAppPushSettings metadata type with either androidPushConfig or applePushConfig, but not both. You can configure pushConfigLink instead to refer to an existing androidPushConfig or applePushConfig record.

Of the three push notification configuration options (androidPushConfig, applePushConfig, or pushConfigLink), you must only have one of the options within the same record. If you create a record with androidPushConfig or applePushConfig, the pushConfigLink is automatically generated and retrievable from the metadata.

If you retrieve the ExtlClntAppPushSettings metadata of an existing packageable external client app to install in another org, delete the androidPushConfig or applePushConfig information from the record, if present. To make sure that the destination org refers to the information in the source org, keep the pushConfigLink field as the only push notification configuration in the record.

If the pushServiceType is Android, you must configure ​​androidPushConfig or configure a pushConfigLink that refers to an existing androidPushConfig record. If the pushServiceType is Apple, you must configure ​​applePushConfig or configure a pushConfigLink that refers to an existing applePushConfig record.

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



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

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

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

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">androidPushConfig</td>

              <td class="entry" headers="d494896e213" data-title="Field Type"><a class="xref" href="#ExtlClntAppAndroidPushConfig">ExtlClntAppAndroidPushConfig</a></td>

              <td class="entry" headers="d494896e216" data-title="Description">Represents the push notification configuration of an Android mobile app.</td>
            </tr>

            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">applePushConfig</td>

              <td class="entry" headers="d494896e213" data-title="Field Type"><a class="xref" href="#ExtlClntAppApplePushConfig">ExtlClntAppApplePushConfig</a></td>

              <td class="entry" headers="d494896e216" data-title="Description">Represents the push notification configuration of an
                iOS mobile app. </td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">externalClientApplication</td>

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

              <td class="entry" headers="d494896e216" data-title="Description">Required. The name of the associated external client
                app.</td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">label</td>

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

              <td class="entry" headers="d494896e216" data-title="Description">Label for the external client app’s push notifications
                configuration. </td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">pushConfigLink</td>

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

              <td class="entry" headers="d494896e216" data-title="Description">Identifies the push notification credentials used by the app. Valid format is the org ID (for example, <kbd class="ph userinput">00D000000000001</kbd>) and an <span class="keyword parmname">ExtlClntAppApplePushConfig</span> or <span class="keyword parmname">ExtlClntAppAndroidPushConfig</span> record ID (for example, <kbd class="ph userinput">1Dh000000000001</kbd>) separated by a colon. For example: <kbd class="ph userinput">00D000000000001:1Dh000000000001</kbd>
                <p class="p">If you configure <span class="keyword parmname">pushConfigLink</span>, you can’t also have <span class="keyword parmname">androidPushConfig </span>or <span class="keyword parmname">applePushConfig</span> in the same record.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e210" data-title="Field Name">pushServiceType</td>

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

              <td class="entry" headers="d494896e216" data-title="Description">Required. Identifies the mobile operating system of the mobile app. Valid values are:
                <ul class="ul bulletList">
                  <li class="li"><kbd class="ph userinput">Apple</kbd></li>

                  <li class="li"><kbd class="ph userinput">Android</kbd></li>
                </ul>
              </td>

            </tr>

          </tbody>

        </table>

## ExtlClntAppAndroidPushConfig

Represents the push notification configuration of an Android mobile app.

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



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

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

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

            </tr>

          </thead>

          <tbody class="tbody">

            <tr>
              <td class="entry" headers="d494896e365" data-title="Field Name">fcmProject</td>

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

              <td class="entry" headers="d494896e371" data-title="Description">Required. The ID of the Google Firebase project associated with the mobile app. </td>
            </tr>

            <tr>
              <td class="entry" headers="d494896e365" data-title="Field Name">serviceAccount</td>

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

              <td class="entry" headers="d494896e371" data-title="Description">Required. The Base64-encoded Admin SDK private key for your Google Firebase service account. You can generate this key from the Service accounts tab in the Google Firebase console.
                <p class="p">The maximum length of the string is 8000 characters.</p>
              </td>

            </tr>

          </tbody>

        </table>

## ExtlClntAppApplePushConfig

Represents the push notification configuration of an iOS mobile app. To configure the required authentication for iOS push notifications, you submit either a private key (.p8 file) or a TLS certificate (.p12 file).

To configure push notifications with a private key (.p8 file), complete the signingKey, keyIdentifier, and teamIdentifier fields.

To configure push notifications with a TLS certificate (.p12 file), complete the certificate and password fields.

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



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

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

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

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">applicationBundle</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The bundle ID of the iOS mobile app from Apple App Store
                Connect.</td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">certificate</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The Base64-encoded TLS certificate with Apple Push Notification service (APNs)
                enabled. To generate and export this certificate, see <a class="xref" href="https://developer.apple.com/help/account/capabilities/communicate-with-apns-using-a-tls-certificate/" target="_blank">Communicate with APNs using a TLS
                  certificate</a> in Apple Developer documentation.</td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">environment</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">Required. The Apple Push Notification service environment. Valid
                values are: <ul class="ul bulletList">
                  <li class="li"><kbd class="ph userinput">Production</kbd></li>

                  <li class="li"><kbd class="ph userinput">Sandbox</kbd></li>

                </ul>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">keyIdentifier</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The key identifier for the private key entered in the <span class="keyword parmname">signingKey</span>
                field. See <a class="xref" href="https://developer.apple.com/help/account/keys/get-a-key-identifier/" target="_blank">Get a key identifier </a> in
                Apple Developer documentation.</td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">password</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The password for the TLS certificate entered in the <span class="keyword parmname">certificate</span>
                field.</td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">signingKey</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The Base64-encoded private key with Apple Push Notification service (APNs) enabled. To
                generate and download this key, see <a class="xref" href="https://developer.apple.com/help/account/keys/create-a-private-key" target="_blank">Create a private key to access a
                  service</a> in Apple Developer documentation. </td>

            </tr>

            <tr>
              <td class="entry" headers="d494896e447" data-title="Field Name">teamIdentifier</td>

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

              <td class="entry" headers="d494896e453" data-title="Description">The team ID listed in the membership details of the Apple
                Developer account associated with the iOS mobile app. </td>

            </tr>

          </tbody>

        </table>