---
schema_version: "1"
id: 778494dce255ff2352e0becf7d5a4bddbc0ca1d04e71dc51fb4328b1c9342f80
title: Define an External Data Source for Salesforce Connect Cross-Org Adapter
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/platform/264-0-0/xorg_add_external_data_source.md
canonical_url: https://help.salesforce.com/s/articleView?id=platform.xorg_add_external_data_source.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 7961666b471e822666d3cdac495c234bc9664b98f9e83511469f858a9074a7c9
description: Set up a connection from your subscriber org to another Salesforce org so your users can access its data through external objects.
products:
  - Salesforce Platform
  - Security
release: "264"
---
# Define an External Data Source for Salesforce Connect Cross-Org Adapter

Set up a connection from your subscriber org to another Salesforce org so your users can access its data through external objects.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition">
        <colgroup>
          <col>
        </colgroup>
        <tbody>
          <tr class="">
            <td class="slds-cell-wrap" style="vertical-align:top;">Available in: both Salesforce Classic and Lightning Experience (not for
              high-data-volume external objects)</td>

          </tr>
          <tr class="">
            <td class="slds-cell-wrap" style="vertical-align:top;">
              <p>Available in: <strong>Developer</strong> Edition</p>
              <p style="margin-bottom:0;">Available for an extra
                cost in: <strong>Enterprise</strong>, <strong>Performance</strong>, and
                <strong>Unlimited</strong> Editions
              </p>
            </td>

          </tr>
        </tbody>
      </table> <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small permission">
        <colgroup>
          <col style="width:50%">
          <col style="width:50%">
        </colgroup>
        <thead class="slds-text-title_caps ">
          <tr class="">
            <th scope="colgroup" class="slds-cell-wrap" colspan="2" style="text-align:center;vertical-align:top;" id="d189001e74">User
              Permissions Needed</th>
          </tr>
        </thead>
        <tbody>
          <tr class="">
            <td data-label="User Permissions Needed" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e74 ">To create and edit external data sources:</td>

            <td class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e74 ">Customize Application</td>

          </tr>
        </tbody>
      </table>

1. From Setup, enter External Data Sources in the Quick Find box, then select **External Data Sources**.
2. Click **New External Data Source**, or click **Edit** to modify an existing external data source.
3. Complete the fields.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:25%">
              <col style="width:75%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d189001e139">Field</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d189001e142">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Exernal Data Source</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">
                  <p>A user-friendly name for the external data source. The label appears in the
                    Salesforce user interface, such as in list views.</p>
                  <p style="margin-bottom:0;">If you set Identity Type to
                    <strong class="uicontrol">Per User</strong>, this label appears when your users view or
                    edit their authentication settings for external systems.
                  </p>
                </td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Name</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">
                  <p>A unique identifier that’s used to refer to this external data source
                    definition through the API.</p>
                  <p style="margin-bottom:0;">The name can contain only underscores and
                    alphanumeric characters. It must be unique, begin with a letter, not include
                    spaces, not end with an underscore, and not contain two consecutive
                    underscores.</p>
                </td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Type</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">Select <strong class="uicontrol">Salesforce Connect: Cross-Org</strong>.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Connect to</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">Determines which URL is used to connect to the provider org.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">URL</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">If you selected <strong class="uicontrol">Connect to</strong>
                  <code>Custom URL</code>, enter the login URL for the provider org.
                </td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">API Version</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">Select an API version that the provider org supports. The API version
                  determines which of the provider org’s objects, fields, and types you can access
                  from the subscriber org.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Connection Timeout (seconds)</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">Number of seconds to wait for a response from the provider org before
                  timing out. By default, the value is set to the maximum of <span id="xorg_add_external_data_source__field_connection_timeout_max"><a name="xorg_add_external_data_source__field_connection_timeout_max"><!-- --></a>120</span> seconds.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Writable External Objects</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">The Lightning Platform and users in this org can create, update, and delete
                  records for external objects associated with the external data source. The
                  external object data is stored outside the org. By default, external objects are
                  read only.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e139 ">
                  <samp class="parmname">Enable Search</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e142 ">
                  <p>Determines whether global searches in the subscriber org also search the
                    external objects’ data, which is stored in the provider org.</p>
                  <p>When selected,
                    you can control which external objects are searchable by selecting or
                    deselecting <strong class="uicontrol">Allow Search</strong> on each external
                    object.</p>
                  <p style="margin-bottom:0;">Only text, text area, and long text area fields on external
                    objects can be searched. If an external object has no searchable fields,
                    searches on that object return no records.</p>
                </td>

              </tr>
            </tbody>
          </table>
4. Select the authentication method, which specifies how the subscriber org authenticates with the target org. We recommend that you use named credentials for robust and secure authentication.
    - If you select **Named Credential**, then select the named credential to use in the **Named Credential** field.
    - If you select **Legacy**, then select the **Identity Type**. The identity type determines whether the subscriber org uses one set or multiple sets of credentials to access the provider org. See [Identity Type for External Data Sources](https://help.salesforce.com/s/articleView?id=platform.platform_connect_identity_type.htm&release=264.0.0&type=5 "On the external data source configured for Salesforce Connect, the Identity Type field specifies whether your organization uses one set or multiple sets of credentials to access the external system. Each set of credentials corresponds to a login account on the external system.").
5. If you selected **Legacy**, select the authentication protocol.
    
    - If you select **Password Authentication**, enter the username and password to access the external system.
    - If you select **OAuth 2.0**, complete these fields.
    
    <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
            <colgroup>
              <col style="width:25%">
              <col style="width:75%">
            </colgroup>
            <thead class="slds-text-title_caps ">
              <tr class="">
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d189001e363">Field</th>
                <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d189001e366">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e363 ">
                  <samp class="parmname">Authentication Provider</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e366 ">Select a Salesforce authentication provider. See <a href="https://help.salesforce.com/s/articleView?id=sso_provider_sfdc.htm&amp;language=en_US" target="_blank">Configure a Salesforce Authentication
                    Provider</a>. On a production org, an external data source can’t use an
                  authentication provider that directs authorization or token requests to a
                  sandbox org. Similarly, on a sandbox org, an external data source can’t use an
                  authentication provider that directs authorization or token requests to a
                  production org.</td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e363 ">
                  <samp class="parmname">Scope</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e366 ">
                  <p>Specifies the scope of permissions to request for the access token. Your
                    authentication provider determines the allowed values. See <a href="https://help.salesforce.com/s/articleView?id=xcloud.sso_provider_addl_params_scope.htm&amp;type=5&amp;language=en_US" target="_blank">Use the Scope Parameter</a>.</p>
                  <p>Keep these
                    considerations in mind when you set a scope.</p>
                  <ul>
                    <li>The value that you enter replaces the Default Scopes value that’s defined
                      in the specified authentication provider.</li>

                    <li>Whether scopes are defined can affect whether each OAuth flow prompts the
                      user with a consent page.</li>

                    <li>We recommend that you request a refresh token or offline access.
                      Otherwise, when the token expires, you lose access to the external
                      system.</li>

                  </ul>
                </td>

              </tr>
              <tr class="">
                <td data-label="Field" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e363 ">
                  <samp class="parmname">Start Authentication Flow on Save</samp>
                </td>

                <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d189001e366 ">
                  <p>To authenticate to the external system and obtain an OAuth token, select
                    this checkbox. This authentication process is called an OAuth flow.</p>
                  <p>When you
                    click <strong class="uicontrol">Save</strong>, the external system prompts you to log in.
                    After successful login, the external system grants you an OAuth token for
                    accessing its data from this org.</p>
                  <p style="margin-bottom:0;">Redo the OAuth flow when you need a
                    new token—for example, if the token expires—or if you edit the Scope or
                    Authentication Provider fields. When the token expires, the external system
                    returns a 401 HTTP error status.</p>
                </td>

              </tr>
            </tbody>
          </table>
6. Click **Save**.
7. Click **Validate and Sync**, and confirm that the connection is successful.
    - If you receive an error message, refer to these resources: “Status Codes and Error Responses” in the REST API Developer Guide, and the “API Fault Element,” “ExceptionCode,” “Error,” and “StatusCode” sections of “Core Data Types Used in API Calls” in the SOAP API Developer Guide.
    - Starting in Winter ’26 (API version 65.0), the SOAP API login() method is disabled by default in new orgs. If you encounter an INVALID\_OPERATION error while using password authentication, use API version 64.0 or earlier and manually enable the SOAP API login() in Setup to resolve it. See [login()](https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_calls_login.htm).
8. Optionally, select tables and click **Sync** to do the following for each selected table.
    
    - Automatically create a Salesforce external object.
    - Automatically create a custom field for each table column that’s compatible with a Salesforce metadata field type.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-platform-extend_click-264-0-0-production-enus/5f7d9219-b7b1-4552-8891-f1aba9b289fc/images/icon_note.png)
    
    Note Review these considerations before syncing.
    
    - [Sync an External Data Source for Salesforce Connect](https://help.salesforce.com/s/articleView?id=platform.platform_connect_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source, it creates or overwrites Salesforce external objects that map to the external system’s schema. Syncing doesn’t copy any data into your Salesforce org or write data from your org to the external system.")
    - [Sync Considerations for Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_considerations_sync.htm&release=264.0.0&type=5 "When you validate and sync an external data source of type Salesforce Connect: Cross-Org, some special behaviors and limitations apply.")
    
    You can instead choose to manually create the external objects and custom fields that map to the external data. Doing so lets you customize the external object names, decide which table columns to create custom fields for, and customize the custom field names. However, this approach takes longer and requires manual maintenance.

#### See Also

- [Set Up Salesforce Connect to Access Data in Another Org with the Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_setup.htm&release=264.0.0&type=5 "Provide users with seamless access to data in your other Salesforce orgs so that they have a complete view of the business. Setting up the cross-org adapter for Salesforce Connect is quick and easy with point-and-click tools.")
- [Store Authentication Settings for External Systems](https://help.salesforce.com/s/articleView?id=platform.external_authentication.htm&release=264.0.0&type=5 "You or your administrator can set up and manage your authentication settings for external systems. With valid authentication settings, you can access external systems from within your Salesforce org.")
- [API Names for External Objects and Custom Fields in Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_api_names.htm&release=264.0.0&type=5 "If external objects and custom fields are created in the subscriber org via syncing, their API names are derived from the corresponding API names in the provider org.")
- [Subscriber and Provider Orgs in Salesforce Connect—Cross-Org Adapter](https://help.salesforce.com/s/articleView?id=platform.xorg_subscriber_provider.htm&release=264.0.0&type=5 "The provider org stores the data that the subscriber org accesses.")
- [_REST API Developer Guide_: List Available REST API Versions](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/dome_versions.htm)