Set Up Salesforce Connect to Access External Data with a Custom Adapter
Let users view, search, and modify any data anywhere from within their Salesforce org.
Required Editions
| Available in: both Salesforce Classic and Lightning Experience (not for high-data-volume external objects) |
Available in: Developer Edition Available for an extra cost in: Enterprise, Performance, and Unlimited Editions |
| User Permissions Needed | |
|---|---|
| To create Apex classes: | Author Apex |
| To configure remote settings: | Modify All Data |
| To create and edit external data sources: | Customize Application |
| To create and edit external objects: | Customize Application |
| To define or change object-level help: | Customize Application |
| To create and edit custom fields: | Customize Application |
| To edit permission sets and user profiles: | Manage Profiles and Permission Sets |
| To edit another user’s authentication settings for external systems: | Manage Users |
Setting up Salesforce Connect with a custom adapter involves these high-level steps.
-
Develop the custom
adapter for Salesforce Connect.
Using the Apex Connector Framework, create the
DataSource.ConnectionandDataSource.Providerclasses that comprise the custom adapter. -
Define remote sites for Apex
callouts.
If the custom adapter involves any Apex callouts, define each callout endpoint as a remote site in your organization. However, you don’t need to define a remote site for a callout whose endpoint is specified as a named credential instead of a URL.
-
Define an
external data source of type
Salesforce Connect: Custom.If you created multiple custom adapters, make sure that the external data source’s Type field specifies the correctDataSource.Providerclass. -
Create the external objects.
Perform this task only if you don’t sync to automatically create the external objects. Create an external object for each external data table that you want to access from your Salesforce org.
-
Create help content for the external objects.
Create Visualforce pages that describe the external data. When your users click Help for this Page on an external object, they read your custom help content. Remember, your users can’t find information about the external data in Salesforce Help.
-
Add custom fields and relationships to the external objects.
Create relationships between objects. If you didn’t sync to automatically create the external objects and their fields, create a custom field for each external table column that you want to access from your Salesforce org.
-
Verify access to external object data.
Check that expected user and code interactions with the external objects work, including sorting and filtering search and query results.
Tip After you configure an external data source, run the validator tool on each external object to test and troubleshoot its connections. The tool tests for ID uniqueness and the ability to sort and filter results. -
Enable user access to
external objects.
Grant object permissions through permission sets or profiles.
-
Enable user access to
the fields on the external objects.
Grant field permissions through permission sets or profiles.
-
If the external data source uses per-user authentication:
-
Let users authenticate to the external
system.
Grant users access to authentication settings for the external data source through permission sets or profiles.
-
Set up each user’s authentication
settings.
You or your users can perform this task.
Tip Train your users on how to set up their authentication settings for external systems. Make sure that they know which credentials to enter for each external system. If you’re using OAuth 2.0, test the OAuth flow for potentially confusing prompts or redirects, and train your users as needed. OAuth flows vary, depending on your external system, authentication provider, and specified scopes.
-
Let users authenticate to the external
system.
Did this article solve your issue?
Let us know so we can improve!

