> ## 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 Sandbox

> Integrate your application with the Salesforce Sandbox API

## 🚀 Quickstart

Connect to Salesforce Sandbox 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 Sandbox*.
  </Step>

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

  <Step title="Call the Salesforce Sandbox API">
    Let's make your first request to the Salesforce Sandbox API. 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/v60.0/sobjects" \
          -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/v60.0/sobjects',
            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 Sandbox Integration Guides

Nango maintained guides for common use cases.

* [How to register your own Salesforce Sandbox OAuth app](/api-integrations/salesforce-sandbox/how-to-register-your-own-salesforce-sandbox-api-oauth-app)\
  Register an OAuth app with Salesforce Sandbox and obtain credentials to connect it to Nango

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

## 🧩 Pre-built syncs & actions for Salesforce Sandbox

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

### Composite

| Function name             | Description                                                                                                                                                     | Type                                         | Source code                                                                                                                        |
| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `composite-batch-request` | Execute multiple independent Salesforce REST subrequests in one batch call                                                                                      | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/composite-batch-request.ts) |
| `composite-graph-request` | Execute a dependent graph of subrequests in one composite graph call. Supports up to 500 subrequests across multiple graphs with automatic rollback on failure. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/composite-graph-request.ts) |
| `composite-request`       | Execute multiple Salesforce REST subrequests in one composite call.                                                                                             | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/composite-request.ts)       |

### Identity

| Function name      | Description                                                    | Type                                         | Source code                                                                                                                 |
| ------------------ | -------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `get-current-user` | Retrieve the current Salesforce user and org identity context. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-current-user.ts) |

### Limits

| Function name | Description                                        | Type                                         | Source code                                                                                                           |
| ------------- | -------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `get-limits`  | Retrieve current org API usage and platform limits | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-limits.ts) |

### Metadata

| Function name            | Description                                                                                                                    | Type                                         | Source code                                                                                                                       |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `describe-global`        | List available sObject types and global metadata for the org.                                                                  | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/describe-global.ts)        |
| `describe-sobject`       | Retrieve schema metadata for a specific sObject type                                                                           | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/describe-sobject.ts)       |
| `get-sobject-basic-info` | Retrieve basic metadata for a specific sObject type including object properties, recent items, and URIs for related resources. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-sobject-basic-info.ts) |

### Query

| Function name         | Description                                                       | Type                                         | Source code                                                                                                                    |
| --------------------- | ----------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `query-all-records`   | Run a SOQL query that also includes deleted and archived records. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/query-all-records.ts)   |
| `query-records`       | Run a SOQL query and return matching records                      | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/query-records.ts)       |
| `retrieve-query-more` | Continue a SOQL query using a nextRecordsUrl locator              | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/retrieve-query-more.ts) |

### Quick Actions

| Function name        | Description                                              | Type                                         | Source code                                                                                                                   |
| -------------------- | -------------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `list-quick-actions` | List quick actions available in the org or on an sObject | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/list-quick-actions.ts) |

### Recent Items

| Function name       | Description                                                    | Type                                         | Source code                                                                                                                  |
| ------------------- | -------------------------------------------------------------- | -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `list-recent-items` | List recently viewed records visible to the authenticated user | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/list-recent-items.ts) |

### Records

| Function name                  | Description                                                        | Type                                         | Source code                                                                                                                             |
| ------------------------------ | ------------------------------------------------------------------ | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `create-record`                | Create a Salesforce sObject record for a specified object type.    | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/create-record.ts)                |
| `delete-record`                | Delete a Salesforce sObject record by type and record ID.          | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/delete-record.ts)                |
| `get-record-by-external-id`    | Retrieve a record by external ID field and value.                  | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-record-by-external-id.ts)    |
| `get-record`                   | Retrieve a Salesforce record by object type and record ID          | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-record.ts)                   |
| `update-record-by-external-id` | Update a record by external ID field and value.                    | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/update-record-by-external-id.ts) |
| `update-record`                | Partially update a Salesforce record by object type and record ID. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/update-record.ts)                |
| `upsert-record`                | Create or update a Salesforce record using an external ID field.   | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/upsert-record.ts)                |

### Resources

| Function name              | Description                                                         | Type                                         | Source code                                                                                                                         |
| -------------------------- | ------------------------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
| `list-available-resources` | Discover supported Salesforce REST resource versions and root URLs. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/list-available-resources.ts) |

### SObject Collections

| Function name               | Description                                                | Type                                         | Source code                                                                                                                          |
| --------------------------- | ---------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `create-sobject-collection` | Create multiple sObject records in one collection request. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/create-sobject-collection.ts) |

### Search

| Function name                  | Description                                                   | Type                                         | Source code                                                                                                                             |
| ------------------------------ | ------------------------------------------------------------- | -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `parameterized-search-records` | Run a parameterized search request across Salesforce objects. | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/parameterized-search-records.ts) |
| `search-records`               | Run a SOSL search across searchable Salesforce objects        | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/search-records.ts)               |

### sObject Collections

| Function name               | Description                                                          | Type                                         | Source code                                                                                                                          |
| --------------------------- | -------------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `delete-sobject-collection` | Delete multiple records in one sObject collection request.           | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/delete-sobject-collection.ts) |
| `update-sobject-collection` | Update multiple records in one sObject collection request            | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/update-sobject-collection.ts) |
| `upsert-sobject-collection` | Upsert multiple records using external IDs in one collection request | [Action](/guides/functions/action-functions) | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/upsert-sobject-collection.ts) |

### Others

| Function name               | Description                                                                           | Type                                           | Source code                                                                                                                          |
| --------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `get-quick-action-defaults` | Retrieve default field values for a quick action                                      | [Action](/guides/functions/action-functions)   | [🔗 Github](https://github.com/NangoHQ/integration-templates/blob/main/integrations/salesforce/actions/get-quick-action-defaults.ts) |
| `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)                       |

***
