---
schema_version: "1"
id: 102a2b87bcb0c7c3f41c9299307dfa1d46d05fcb439d915e6f5ae57f76857a67
title: ExternalClientApplication
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/api_meta/meta_externalclientapplication.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/meta_externalclientapplication.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 4a32dea1eeb8b357822fca661bed316d51fe8fe6811617a6f06b12c47175818a
description: Represents the header file for an external client application configuration.
---
# ExternalClientApplication

Represents the header file for an external client application configuration.

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

ExternalClientApplication components have the suffix .eca and are stored in the externalClientApps folder.

## Version

ExternalClientApplication components are available in API version 59.0 and later.

## Special Access Rules

Access to the ExternalClientApplication type requires orgs to enable the Opt in to External Client Apps permission in Setup.

## Fields

| Field Name | Description |
| --- | --- |
| contactEmail | 
Field Type

string

Description

The email address that Salesforce uses to contact the external client app admin for the subscriber org.



 |
| contactPhone | 

Field Type

string

Description

The phone number that Salesforce uses to contact the external client app admin for the subscriber org.



 |
| description | 

Field Type

string

Description

A description for the app.



 |
| distributionState | 

Field Type

ExtlClntAppDistState (enumeration of type string)

Description

The distribution state of an external client app.

Values are:

- AutoInstalled. For internal use only.
- Local.
- Managed. For internal use only.
- Packaged.





 |
| iconUrl | 

Field Type

string

Description

The URL for the icon image.



 |
| infoUrl | 

Field Type

string

Description

Reserved for future use.



 |
| isProtected | 

Field Type

boolean

Description

A package construct that developers use to control the visibility of components in subscriber orgs. Default is false.



 |
| label | 

Field Type

string

Description

The label for the external client app.



 |
| logoUrl | 

Field Type

string

Description

The URL for the logo image.



 |
| managedType | 

Field Type

ExtlClntAppManagedType (enumeration of type string)

Description

For internal use only.



 |
| orgScopedExternalApp | 

Field Type

string

Description

A unique ID consisting of the org ID and the name of this external client app. Either defined by the developer or auto-generated during the first deployment. The expected value uses this format: \[Organization\_ID\]:\[External Client App Name\].



 |

## Declarative Metadata Sample Definition

This example shows an ExternalClientApplication component.

<?xml version="1.0" encoding="UTF-8"?>
<ExternalClientApplication xmlns="http://soap.sforce.com/2006/04/metadata">
    <contactEmail\>johndoe@example.com</contactEmail\>
    <description\>Test external client app</description\>
    <distributionState\>Local</distributionState\>
    <iconUrl\>https://icon.example.com</iconUrl\>
    <infoUrl\>https://info.example.com</infoUrl\>
    <logoUrl\>https://logo.example.com</logoUrl\>
    <label\>myeca</label\>
    <isProtected\>false</isProtected\>
    <orgScopedExternalApp\>Org\_ID:External\_Client\_App\_Name</orgScopedExternalApp\> 
</ExternalClientApplication\>

This example package.xml references the previous definition.

<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
    <types\>
        <members\>\*</members\>
        <name\>ExternalClientApplication</name\>
    </types\>
    <types\>
        <members\>\*</members\>
        <name\>ExtlClntAppOauthSettings</name\>
    </types\>
    <types\>
        <members\>\*</members\>
        <name\>ExtlClntAppGlobalOauthSettings</name\>
    </types\>
    <types\>
        <members\>\*</members\>
        <name\>ExtlClntAppOauthConfigurablePolicies</name\>
    </types\>
    <types\>
        <members\>\*</members\>
        <name\>ExtlClntAppConfigurablePolicies</name\>
    </types\>
    <version\>60.0</version\>
</Package\>

## Wildcard Support in the Manifest File

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](https://developer.salesforce.com/docs/atlas.en-us.api_meta.meta/api_meta/file_based_zip_file.htm "The deploy() and retrieve() calls are used to deploy and retrieve a .zip file. Within the .zip file is a project manifest (package.xml) that lists what to retrieve or deploy, and one or more XML components that are organized into folders.").