Salesforce Feeds v2
Salesforce is the industry-leading CRM platform for managing sales, service, marketing, and customer data across standard and custom objects. The Salesforce Feeds v2 connector is a source-only ELT connector that ingests Salesforce objects (sobjects) as feeds. Nexla discovers the standard and custom objects available in your Salesforce org, lets you select which objects to ingest, and reads each selected object as its own feed using either an incremental (auto-increment) or full-refresh sync strategy.
Power end-to-end data operations for your Salesforce Feeds v2 API with Nexla. Our bi-directional Salesforce Feeds v2 connector is purpose-built for Salesforce Feeds v2, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Salesforce Feeds v2 or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Salesforce Feeds v2 workflows fast, secure, and fully governed.
Features
Type: API
- Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
- Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
- API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
- Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
Prerequisites
Nexla connects to Salesforce over OAuth 2.0. You sign in to Salesforce and approve access — Nexla never asks for or stores a Salesforce password. Before you begin, check that:
-
Your Salesforce edition includes API access. Enterprise, Unlimited, Performance, and Developer editions include it. Professional Edition requires the API add-on. If you aren't sure, ask your Salesforce administrator.
-
Your Salesforce user has the API Enabled permission. This is standard on most profiles, but restricted profiles sometimes have it turned off. An administrator can enable it under Setup > Users, on the user's profile or an assigned permission set, under System Permissions.
-
That user can see the objects you want to ingest. This connector reads through the permissions of whoever authorizes the connection, so object- and field-level security in Salesforce directly controls which feeds Nexla can discover and read. For repeatable pipelines, authorize with a dedicated integration user rather than a personal account.
Set up Salesforce
Nexla connects either through an app you create in your own Salesforce org, or through Nexla's Salesforce app. Each needs a one-time action from a Salesforce administrator. After that, creating credentials in Nexla is the same either way.
| Your own Salesforce app | Nexla's Salesforce app | |
|---|---|---|
| One-time Salesforce setup | An administrator creates an external client app | An administrator approves Nexla for your org |
| Scopes, token policies, and IP restrictions | Set by you, in your org | Set by Nexla |
| Choose this if | Your security team wants control over the app's permissions and policies | You want to connect without creating an app |
- Your own Salesforce app
- Nexla's Salesforce app
Ask your Salesforce administrator to follow these steps and send you the resulting Consumer Key and Consumer Secret. Everything happens in Salesforce Setup — no Nexla access is needed.
-
Go to Setup. In the Quick Find box, enter
External Client, select External Client App Manager, and click New External Client App. -
Enter a name that identifies the integration, such as
Nexla, and a Contact Email. Set Distribution State to Local, which keeps the app private to your org. -
Expand the API (Enable OAuth Settings) section and select Enable OAuth.
-
In the Callback URL field, enter both of these, one per line:
https://dataops.nexla.io/oauth2Auth
https://dataops.nexla.io/nexla-api/oauth/callbackEach has to match exactly, or Salesforce rejects the authorization with a
redirect_uri_mismatcherror. If your organization runs a dedicated Nexla installation, replacehttps://dataops.nexla.iowith your own Nexla address. -
From Available OAuth Scopes, move these three to Selected OAuth Scopes:
- Manage user data via APIs (
api) — reads your Salesforce records over the REST API. - Perform requests at any time (
refresh_token,offline_access) — keeps scheduled flows running without anyone re-authorizing. - Access the identity URL service (
id,profile,email,address,phone) — confirms which user and org the credential is connected to.
These cover the standard and custom objects this connector discovers and ingests. Other Salesforce products need their own scope on top — CRM Analytics (
wave_api) or Data Cloud (cdp_query_api), for example. - Manage user data via APIs (
-
In the same section, set the three security options:
- Require Proof Key for Code Exchange (PKCE) Extension for Supported Authorization Flows — enable. Nexla sends a PKCE challenge on every authorization.
- Require Secret for the Web Server Flow — leave disabled. Nexla uses PKCE instead of a client secret at this step, so enabling this stops the authorization from completing.
- Require Secret for Refresh Token Flow — enable. Nexla does send the client secret when it refreshes a token.
-
Click Create. Salesforce may ask you to verify your identity by email.
-
Open the new app, select the Settings tab, expand OAuth Settings, and click Consumer Key and Secret. These are the two values to send back — in Nexla they're entered as Client ID and Client Secret.
Optional hardening. On the app's Policies tab, you can also:
- Set Permitted Users to Admin approved users are pre-authorized, then assign the profiles or permission sets allowed to connect Nexla.
- Enable Refresh Token Rotation, and set Refresh Token Policy to expire the refresh token if it isn't used for 30 days. Nexla refreshes tokens continuously, so an active credential is never affected.
- Set IP Relaxation to Enforce IP restrictions, and add Nexla's addresses —
34.231.167.112,54.209.27.1, and35.245.202.207— to the login IP ranges of the profiles permitted to use the app.
A sandbox has its own external client apps. To connect a sandbox, repeat these steps in the sandbox org — a consumer key from your production org won't work there.
Since September 2025, Salesforce requires an administrator to approve Nexla's app for your org before anyone can use it. Until that's done, the first person to connect sees an authorization error.
-
Go to Setup. In the Quick Find box, enter
Connected Apps, and select Connected Apps OAuth Usage. -
Find Nexla in the list and click Install.
-
Click Manage App Policies and set Permitted Users to control who can connect, assigning the profiles or permission sets allowed to use it.
If Nexla isn't in the list, it's because nobody has tried to connect yet. Have someone start the authorization from Nexla once — the app then appears and can be installed.
This method works for both production and sandbox orgs; you choose which one when you create the credential.
Authenticate
Credentials required
- Nexla's Salesforce App
- Your Own Salesforce App (Production)
- Your Own Salesforce App (Sandbox)
Connect using Nexla's shared Salesforce app — no app setup required. A Salesforce admin must approve Nexla for your org once.
| Field | Required | Secret | Description |
|---|---|---|---|
| Salesforce Feeds Instance Type | No | No | Salesforce Instance you wish to connect to. Allowed values: Production; Sandbox |
Connect to a production org using an external client app created in your own Salesforce org. Requires the app's consumer key and secret.
| Field | Required | Secret | Description |
|---|---|---|---|
| Client ID | Yes | No | Consumer Key from your Salesforce external client app |
| Client Secret | Yes | Yes | Consumer Secret from your Salesforce external client app |
Connect to a sandbox org using an external client app created in your Salesforce sandbox. Requires the app's consumer key and secret.
| Field | Required | Secret | Description |
|---|---|---|---|
| Client ID | Yes | No | Consumer Key from your Salesforce external client app |
| Client Secret | Yes | Yes | Consumer Secret from your Salesforce external client app |
Create a credential in Nexla
-
After selecting the data source type, click the Add Credential tile to open the Add New Credential overlay.
-
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Resource descriptions are recommended but are not required. Use them to identify the Salesforce org, instance type, or integration user represented by this credential.
-
Select the authentication method from the Authentication Type pulldown menu, and follow the corresponding instructions below.
Configure Authentication Settings
- Your Own Salesforce App (Production)
- Your Own Salesforce App (Sandbox)
- Nexla's Salesforce App
Connect to a production org using the external client app created in your Salesforce org.
- Enter the Consumer Key of your external client app in the Client ID field, and the Consumer Secret in the Client Secret field. Your Salesforce administrator obtains both when they create the app.
- Click the Authorize button, sign in to Salesforce, and approve access. Sign in as the user whose permissions this connection should operate under.
- Click Save. Nexla checks the connection before saving, so any configuration problem surfaces now rather than when a flow first runs.
Connect to a sandbox org using the external client app created in your Salesforce sandbox.
- Enter the Consumer Key and Consumer Secret of the external client app in your sandbox org in the Client ID and Client Secret fields.
- Click the Authorize button, sign in with your sandbox credentials, and approve access.
- Click Save.
Connect using Nexla's Salesforce app. No client ID or secret is needed.
- Select Production or Sandbox from the Salesforce Feeds Instance Type pulldown menu. This determines whether Nexla authorizes against
login.salesforce.comortest.salesforce.com. - Click the Authorize button, sign in to Salesforce, and approve access.
- Click Save. If authorization fails because the app isn't installed for your org, a Salesforce administrator needs to approve Nexla once.
- The credential now appears as a tile on the Authenticate screen and can be selected for Salesforce Feeds v2 flows.
Nexla refreshes Salesforce access tokens automatically, so scheduled flows keep running without anyone re-authorizing. If a credential does stop working — because an administrator revoked access, or the refresh token expired under your org's policy — Nexla flags it, and reconnecting is a matter of opening the credential and clicking Authorize again. The flows using it are unaffected.
Use as a data source
How This Connector Works
The Salesforce Feeds v2 connector is a source-only, multi-object ELT connector. Rather than configuring one endpoint at a time, you select the Salesforce objects you want from the set of objects discovered in your org, and Nexla ingests each selected object as its own feed.
-
Discovery: When you create the source, Nexla queries the Salesforce REST API to list the sobjects available in your org — standard objects such as Account, Contact, Lead, and Opportunity, along with any custom objects — and presents them for selection. Nexla also discovers the fields for each object so it can build the correct schema.
-
Sync strategies: Each selected object is ingested with one of two strategies. Auto-increment (the default) reads only records created or modified since the last run, using a timestamp cursor for efficient incremental loads. Full ingest reads the complete current set of records for the object on every run. Records are uniquely identified by the Salesforce
Idfield. -
Parallel ingestion: Selected feeds are read in parallel, so a single source can pull many Salesforce objects on the same schedule.
Create a New Data Flow
-
To create a new data flow, navigate to the Integrate section, click the New Data Flow button, select the ELT flow type, and click Create.
-
Select the Salesforce Feeds v2 connector tile from the list of available connectors. Then, select the credential that will be used to connect to your Salesforce org and click Next; or, create a new Salesforce Feeds v2 credential for use in this flow.
Select the Objects to Ingest
After authenticating, Nexla lists the Salesforce objects discovered in your org. Select one or more objects to ingest. Each selected object becomes its own feed, and the fields available for that object are read from Salesforce automatically.
The following source settings control how each feed is read:
-
Sync strategy — Choose Auto-increment to load only records changed since the previous run (incremental), or Full ingest to load all records on every run. Auto-increment is the default.
-
Start Date — The earliest date from which to load data. Leave the default (
1970-01-01T00:00:00Z) to load all history, or enter a date in the formatYYYY-MM-DDTHH:mm:ssZ(for example,2023-01-01T00:00:00Z) to begin from a later point. This is most useful with the auto-increment strategy to bound the initial backfill. -
Salesforce API Version — The Salesforce REST API version used for extraction (default
v59.0). Use the version supported by your org; the latest stable version is recommended unless you need compatibility with an older feature.
Salesforce query responses are paginated. Nexla follows the Salesforce nextRecordsUrl links automatically while reading each feed, so a run ingests all available pages for the selected objects.
Schedule and Activate
Use the default sync schedule or adjust the schedule in the source settings before activating the flow. On each run, auto-increment feeds load records changed since the last successful run, and full-ingest feeds reload the complete object.
Reference
For object schemas, field definitions, and query syntax, see the Salesforce REST API Developer Guide and the Salesforce Object Reference.