You are here:
Salesforce External Connections
Use a Salesforce external connector to sync data from another Salesforce org to CRM Analytics. External connectors require OAuth 2.0 for server to server communication.
As of Summer '27, the SOAP API login() call in SOAP API versions 31.0 through 64.0 will no longer be supported and no longer be available. For more information, see SOAP API login() Call in SOAP API Versions 31.0 Through 64.0 Is Being Retired.
The Username and Password authentication settings in external connectors will no longer be supported starting in Winter '27.
New external connectors require OAuth with Client ID and Client Secret for authentication. Existing connectors using Username and Password can still function if the SOAP API login() is enabled in your org permissions. However, if you need to update the credentials for an existing Username and Password connector, you must convert it to use OAuth settings.
Restricted API access isn’t supported for Salesforce output and external connectors. Enable the Use Any API Client permission for the user creating the connector. For more information, see Manage API Access.
To push data from CRM Analytics to a Salesforce org, use a Salesforce Output Connection.
Set Up an External Client App for OAuth
External client apps (ECA) provide single sign-on (SSO) and use OAuth protocols to authorize external connections.
- To create an ECA for your organization, from the Salesforce Setup page, enter External in the Quick Find box, and then select External Client App Manager.
- Click New External Client App.
- Enter the basic information.
- Enter the name for the ECA to display in the External Client App Manager.
- Enter the API name to be used when referring to your app from a program. This field defaults to a version of the app’s name with underscores in place of the spaces.
- Enter the contact email for Salesforce to use in case we want to contact you or your support team.
- Select Local for the Distribution State.
- Click Enable OAuth to configure the OAuth policy.
- Enter the app settings.
- Enter the Callback URL. The callback URL is the app URL where you’re embedding the code and the URL can accept the authentication returned from the Salesforce ECA.
An example of a callback URL is
https://<3p-domain>/callback.html. - For OAUTH Scopes, select Manage user data via APIS (api) and Access Analytics REST API resources (wave_api). If you have other OAuth needs, select other scopes as needed. For more information, see OAuth Tokens and Scopes
- Enter the Callback URL. The callback URL is the app URL where you’re embedding the code and the URL can accept the authentication returned from the Salesforce ECA.
An example of a callback URL is
- For Flow Enablement, select Enable Client Credentials Flow. This flow allows for server to server interactions. For more information, see OAuth 2.0 Client Credentials Flow for Server-to-Server Integration
- For Security, disable Require Proof Key for Code Exchange (PKCE) extension for Supported Authorization Flows.
- Click Create.
- On the Policies tab, click Edit. For OAuth Flows and External Client App Enhancements, ensure Enable Client Credentials Flow is enabled. Enter a user email for Run As. This user must be a valid execution user.
- On the Settings tab, click Consumer Key and Secret to copy and save the values. You need the consumer key value for the Client Id and the consumer secret value for the Client Secret.
Create the Connection
- On the Data Manager Connections tab, click New Connection.
- Select Salesforce External Connector, and click Next.
- Enter the connector settings.
- To verify your settings, click Save & Test. If the connection fails, CRM Analytics shows possible reasons.
All settings require a value, unless otherwise indicated.
| Connection Setting | Description |
|---|---|
| Connection Name | Use a convention that lets you easily distinguish between different connections. |
| Developer Name | API name for the connection. This name can’t include spaces. The API name is used in your recipes to reference data extracted through this connection. You can’t change the developer name after you create the connection. |
| Description | The connector description. |
| Authentication Type | The supported authentication type. Valid value is OAuth. |
| Username | No longer supported after Winter '27. User name used to connect to external Salesforce org. Required if the authentication type is Password. |
| Password | No longer supported after Winter '27. Password for the user specified in Username. Depending on your security settings, append the user’s security token to the end of the password. For information about obtaining a security token, see Reset Your Security Token. Required if the authentication type is Password. |
| Client Id | The required client ID for your OAuth connection. This value is the consumer key from your External Client App. |
| Client Secret | The required client secret for your OAuth connection. This value is the consumer secret from your External Client App. |
| API Type | The API to use. The options are SOAP for SOAP API or BULKV2 (default) for Salesforce Bulk API 2.0. Use Salesforce Bulk API 2.0 if you encounter issues with larger data objects timing out with SOAP API. |
| Service URL | No longer supported after Winter '27. The login URL for the external org. The default value uses the generic Salesforce login URL for your org. For an added layer of security, update this field to use your org’s My Domain login URL. For a production org, use the format:https://<MyDomainName.my .salesforce.com/services/Soap/Identifier/VersionNumber.0 For example: |
| Domain URL | The required My Domain URL for your external Salesforce org. In the external Salesforce org, go to My Domain in Setup. The URL format must be https://*.salesforce.com |
Filter Data Synced to CRM Analytics
Use filters to exclude unnecessary or sensitive data from syncing to CRM Analytics filters. Filters speed up data sync by pulling only the data you need into CRM Analytics.
- From Data Manager, click the Connections tab.
- Select the connection associated with the object to filter.
- Click the name of the object to filter.
- Click Data Sync Filter.
- Enter the filter.
- Click Save.
For the Salesforce External connector, enter a filter using a SOQL WHERE clause expression
as described in the SOQL and SOSL
Reference. For example, "(FiscalQuarter = 2 OR
FiscalQuarter = 3) AND Amount > 1000 AND Amount <= 20000".
Salesforce External Connector Considerations
Keep these behaviors in mind when working with the Salesforce External connector.
- Connected object names must start with a letter and contain only letters, digits, or underscores. The name can’t end with an underscore.
- A field name can contain only alphanumeric characters, dots, underscores, or dashes. If a field name contains other characters, such as spaces or brackets, the sync fails.
- The connector can sync up to 100 million rows or 50 GB per object by default, whichever limit is reached first. The limits can be increased to a maximum of 2000 million rows or 1000 GB with a request to Salesforce support. When using the connector, Salesforce Government Cloud org data is protected in transit with advanced encryption and can sync up to 10 million rows or 5 GB for each connected object, whichever limit is reached first.
- To improve data sync time, use incremental sync (beta).
- The security settings of the user you use to connect with determine the objects and fields available to sync in the external org.
- You can sync standard objects available in API versions 34.0 and later.
- You can use the API Type BULKV2 only with API version 50.0 and later.
- To troubleshoot connectivity issues between Salesforce orgs, review your org IP address restrictions and consider disabling the "Lock sessions to the IP address from which they originated" setting in both orgs. You can also search knowledge articles and known issues for more information.
- When importing fields that contain a currency, the imported value isn’t converted. Take the example of an org that records values in British pounds that you’re importing into a local org that records values in US dollars. A value of 10 (GBP) is imported into the local org as a value of 10.

