> For the complete documentation index, see [llms.txt](https://docs.sola.security/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sola.security/integrations/data-sources/salesforce.md).

# Salesforce

Connect Sola and Salesforce to get security insights

## Overview <a href="#overview" id="overview"></a>

The Salesforce integration connects data from your Salesforce org to your Sola workspace, making it easy to search and find answers to your specific use cases.

With the Salesforce integration, you can:

* Gain visibility into users, profiles, roles, permission sets, and sharing settings.
* Monitor connected apps, External Client Apps, OAuth tokens, and installed packages.
* Track login history and administrative changes made in Setup.
* Assess security configuration, including the Health Check score, session and password settings, SSO, MFA registration, and login IP restrictions.
* Review Apex classes for unsafe sharing declarations and SOQL injection risks, and review Apex triggers, scheduled jobs, and active flows.
* Identify public-facing sites, Experience Cloud sites, and public file sharing links.
* Review callout endpoints and allowlists, including named credentials, remote site settings, CORS and CSP trusted sites, and certificates.

{% hint style="info" %}
Sola only reads data from Salesforce and never writes to it. Setup includes required and optional permissions. Some optional permissions are write-capable in Salesforce, but Sola uses them only to read data, never to make changes.
{% endhint %}

{% hint style="warning" %}
**Your data can only be retrieved, never modified.**

Once connected, your data is securely stored, and access is restricted to retrieving configurations and metadata only. Authentication methods ensure secure delegation of permissions while maintaining data integrity.
{% endhint %}

## Set up Salesforce data source integration with Sola <a href="#set-up-wiz-data-source-integration-with-sola" id="set-up-wiz-data-source-integration-with-sola"></a>

{% columns %}
{% column width="75%" %}
Go to ***Integrations*** > [***Data Sources***](https://app.sola.security/integrations/data-sources) > click ***New data source*** > select Salesforce.

*The Sola wizard will take you through the steps.*
{% endcolumn %}

{% column width="25%" %} <a href="https://app.sola.security/integrations/data-sources?integration=salesforce" class="button primary">Set up Salesforce -></a>
{% endcolumn %}
{% endcolumns %}

### Connect Salesforce to Sola

To connect Salesforce, you'll need admin access to your Salesforce org.

{% tabs %}
{% tab title="OAuth" %}
This method uses an External Client App with the OAuth 2.0 Client Credentials flow to securely grant Sola access to your Salesforce org.
{% endtab %}
{% endtabs %}

<details>

<summary><strong>How do I set up a Salesforce integration using OAuth?</strong></summary>

Complete the following steps to set up and configure your Salesforce org and connect it to Sola.

#### **1. Sign in to Salesforce with an admin account**

#### **2. Create the integration profile**

* Go to ***Setup*** > ***Profiles***, find ***Minimum Access - API Only Integrations***, and click ***Clone***. Name the clone `Sola Integration Profile`.
* Go to ***System Permissions***, click ***Edit***, enable API Enabled and API Only User, and click ***Save***.

#### **3. Create the permission set**

* Go to ***Setup*** > ***Users*** > ***Permission Sets*** and click ***New***.
  * **Label:** `Sola Integration Read-Only`
  * **API Name:** `Sola_Integration_Read_Only` (auto-filled)
  * **License:** None
* Click ***Save***.

#### **4. Add the required permissions**

* On the permission set page, go to ***System Permissions*** and click ***Edit***.
* Enable the following permissions: `View All Data`, `View Health Check`, `View All Profiles`, `View All Users`, `View Event Log Files`, `View External Client App Consumer Secrets in Metadata`, `View all External Client Apps and Edit Their Policies`, `View Access Policies`, `View All Policy Center Policies`, `View Restriction and Scoping Rules`, `View All Custom Settings`, `View All Lookup Record Names`, and `View Developer Name`.
* Also enable `View Trust Measures` and `View License Utilization` if they are shown. Skip either one if it is not available in the org.
* Click ***Save*** and accept all dependency prompts.

#### **5. Add optional permissions**

* To sync additional tables, go to ***System Permissions***, click ***Edit***, and enable any of the following:
  * **Customize Application**: connected apps and CSP trusted sites
  * **Modify All Data**: CORS allowlist
  * **Manage Certificates**: org certificates
  * **Download AppExchange Packages**: installed packages. Salesforce also enables Customize Application, View All Data, and Modify All Data.
  * **Manage MFA in API**: may enable MFA registration data
* Click ***Save*** and accept all dependency prompts.
* **Note:** Sola never writes to Salesforce. Salesforce requires these permissions only to read the data listed above.

#### **6. Create the integration user**

* Go to ***Setup*** > ***Users*** > ***Users*** and click ***New User***.
* Set **User License** to **Salesforce Integration** and **Profile** to `Sola Integration Profile`. Click ***Save***.

#### **7. Assign the license and permission set**

* Open the integration user. Under ***Permission Set License Assignments***, click ***Edit Assignments***, enable **Salesforce API Integration**, and click ***Save***.
* Under ***Permission Set Assignments***, click ***Edit Assignments***, move `Sola Integration Read-Only` to **Enabled**, and click ***Save***.

#### **8. Create the External Client App**

* Go to ***Setup***, search for **apps**, and open ***External Client App Manager***. Click ***New External Client App***, then:
  * Enter a **Name** and **Contact Email**, and set **Distribution State** to **Local**.
  * Enable **Enable OAuth**.
  * Set **Callback URL** to `https://localhost/callback`.
  * Add the **Manage user data via APIs (api)** scope.
  * Under ***Flow Enablement***, enable **Enable Client Credentials Flow**.
* Click ***Create***.

#### **9. Set the Run As user**

* Open the app and click ***Edit***. Go to ***OAuth Policies***, enable **Enable Client Credentials Flow**, and set **Run As (Username)** to the integration user.
* Click ***Save***.

#### **10. Copy the credentials**

* Open the app, go to ***Settings*** > ***OAuth Settings***, and click ***Consumer Key and Secret***.
* Reveal and copy the **Consumer Key** and **Consumer Secret**.

#### **11. Enter the credentials in Sola**

* Paste the **Consumer Key**, the **Consumer Secret**, and your **Salesforce URL** in the Sola wizard.

#### **12. Click&#x20;*****Test Connection*****&#x20;to validate the details and continue**

New app settings can take a few minutes to activate. If ***Test Connection*** fails right away, wait a moment and retry.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sola.security/integrations/data-sources/salesforce.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
