> ## Documentation Index
> Fetch the complete documentation index at: https://nango.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Salesforce

> Integrate your application with the Salesforce API

## 🚀 Quickstart

Connect to Salesforce with Nango and see data flow in 2 minutes.

<Steps>
  <Step title="Create the integration">
    In Nango ([free signup](https://app.nango.dev)), go to [Integrations](https://app.nango.dev/dev/integrations) -> *Configure New Integration* -> *Salesforce*.
  </Step>

  <Step title="Authorize Salesforce">
    Go to [Connections](https://app.nango.dev/dev/connections) -> *Add Test Connection* -> *Authorize*, then log in to Salesforce. Later, you'll let your users do the same directly from your app.
  </Step>

  <Step title="Call the Salesforce API">
    Let's make your first request to the Salesforce API (fetch a list of contacts). Replace the placeholders below with your [secret key](https://app.nango.dev/dev/environment-settings), [integration ID](https://app.nango.dev/dev/integrations), and [connection ID](https://app.nango.dev/dev/connections):

    <Tabs>
      <Tab title="cURL">
        ```bash theme={null}
        curl "https://api.nango.dev/proxy/services/data/v58.0/query?q=SELECT+Id,FirstName,LastName,Email+FROM+Contact+LIMIT+10" \
          -H "Authorization: Bearer <NANGO-SECRET-KEY>" \
          -H "Provider-Config-Key: <INTEGRATION-ID>" \
          -H "Connection-Id: <CONNECTION-ID>"
        ```
      </Tab>

      <Tab title="Node">
        Install Nango's backend SDK with `npm i @nangohq/node`. Then run:

        ```typescript theme={null}
        import { Nango } from '@nangohq/node';

        const nango = new Nango({ secretKey: '<NANGO-SECRET-KEY>' });

        const res = await nango.get({
            endpoint: '/services/data/v58.0/query',
            params: { q: "SELECT Id,FirstName,LastName,Email FROM Contact LIMIT 10" },
            providerConfigKey: '<INTEGRATION-ID>',
            connectionId: '<CONNECTION-ID>'
        });

        console.log(res.data);
        ```
      </Tab>
    </Tabs>

    Or fetch credentials with the [Node SDK](/reference/sdks/node#get-a-connection-with-credentials) or [API](/reference/api/connection/get).

    ✅ You're connected! Check the [Logs](https://app.nango.dev/dev/logs) tab in Nango to inspect requests.
  </Step>

  <Step title="Implement Nango in your app">
    Follow our [Auth implementation guide](/guides/primitives/auth) to integrate Nango in your app.

    To obtain your own production credentials, follow the setup guide linked below.
  </Step>
</Steps>

## 📚 Salesforce Integration Guides

Nango maintained guides for common use cases.

* [How do I link my account?](/api-integrations/salesforce/connect)\
  Connect your Salesforce account
* [How to register your own Salesforce OAuth app](/api-integrations/salesforce/salesforce-api-oauth-app-setup)\
  Register an OAuth app with Salesforce and obtain credentials to connect it to Nango

Official docs: [Salesforce API docs](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_rest.htm)

## 🧩 Pre-built syncs & actions for Salesforce

Enable them in your dashboard. Extend and customize to fit your needs.

### Others

| Function name     | Description                                                                           | Type                                           | Source code                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `accounts`        | Sync Salesforce Account records with a practical default field set                    | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/accounts.ts)        |
| `articles`        | Sync Salesforce knowledge articles with title, content, and modified timestamps       | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/articles.ts)        |
| `cases`           | Sync Salesforce Case records with common service and status fields.                   | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/cases.ts)           |
| `contacts`        | Sync Salesforce Contact records with a practical default field set                    | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/contacts.ts)        |
| `opportunities`   | Sync Salesforce Opportunity records with amount, stage, close date, and owner fields. | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/opportunities.ts)   |
| `records-by-soql` | Sync arbitrary Salesforce records from a caller-provided SOQL query                   | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/records-by-soql.ts) |
| `tickets`         | Sync Salesforce case tickets with core fields and related conversation context.       | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/tickets.ts)         |
| `users`           | Sync Salesforce User records with profile, email, and active state fields.            | [Sync](/guides/functions/syncs/sync-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/syncs/users.ts)           |

***
