> For the complete documentation index, see [llms.txt](https://docs.rox.com/development/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rox.com/development/product/organization-level-configurations/configuring-salesforce-integration-+-writeback.md).

# Configuring Salesforce Integration + Writeback

## Connecting Salesforce to Rox

This guide walks you through connecting Salesforce to Rox so the two systems stay in sync automatically.

We recommend using the same Salesforce account you already use for tools like Gong or Outreach. If you need a brand new account, reach out to your Rox contact and we'll help.

### What you'll need

A Salesforce user account with:

1. A Salesforce or Salesforce Integration user license
2. The System Administrator profile
3. API access turned on

### Step 1: Connect Salesforce to Rox

1. Sign in to [run.rox.com](http://run.rox.com).
2. Go to **Settings**.
3. Click **Integrations**.
4. Find **Salesforce** and click **Connect** (or **Action Required**).
5. Confirm your Salesforce Edition and the user in Salesforce who is creating the integration has the correct roles and permission in Salesforce
6. Sign in to Salesforce when redirected with the user profile who will be creating the integration
7. When re-directed to Rox after connecting the Rox Connected App, then connect Fivetran (the secure service we use to move your data into our data warehouse and build our knowledge graph)
8. Configure basic field mappings between Salesforce and Rox. You create custom custom field mappings after finishing setup in Settings
9. If you want Rox to write updates back to Salesforce, install the SFDC writeback package and follow the onboarding guide in Step 2
10. Optionally, test the Salesforce sync mapping and press Submit once you are ready to finalize the connection

<figure><img src="/files/qB3d6748ggnwUiapW4fK" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xGqXWInTtG7umNXUquY6" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/N1gK2GnGHSQox8nEwoOC" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/w0duaglsNoRrdXtLpdMa" alt=""><figcaption></figcaption></figure>

### Step 2: Install the Rox package in Salesforce

1. Click [this link to install the Rox package](https://login.salesforce.com/packaging/installPackage.apexp?p0=04tUr000000Sg17IAC).
2. When asked who should have access, choose **Install for All Users**.
3. Click **Install** and wait for Salesforce to confirm.

This adds a permission set called **Rox Integration** to your Salesforce account.

### Step 3: Add a field for tracking activities

1. In Salesforce, open **Object Manager**.
2. Click **Activity**.
3. Click **Fields & Relationships**.
4. Click **New**.
5. Choose **Text** as the field type.
6. Use these settings:
   * **Name:** RoxActivityId
   * **Length:** 100 characters
7. Save the field.

### Step 4: Give Rox access to your Salesforce data

1. In Salesforce, open the **Rox Integration** permission set.
2. Click **Object Settings**.
3. For each object below, give Rox **Read** and **Edit** access:
   1. **Account** (company name, website, industry, revenue, employee count, address)
   2. **Contact** (name, email, phone, title, account)
   3. **Opportunity** (name, amount, stage, close date, next step, account)
   4. **Opportunity Line Item**
   5. **Product**
   6. **Lead**
   7. **Task** (include the new RoxActivityId field)
   8. **Event** (include the new RoxActivityId field)
   9. Any custom objects you want Rox to use
4. Save your changes.

If you're not sure which fields to include, your Rox contact can share the full list.

### Step 5: Configure CRM Mappings

After your first sync completes, go to **Settings → Integrations → Salesforce**. This is where you control how each object syncs.

#### The four object tabs

CRM Mappings has one tab per object type: **Accounts, Opportunities, Activities, Leads**. Each tab has its own settings. Writebac and field mappings are configured *per object*, not globally.

#### General settings (per object)

* The per-object sync can be toggled on or off on the top-right of the page
* You can also enable new entity writeback into your SFDC instance under **General Settings.** This requires Step 2 to have been completed successfully

<figure><img src="/files/dDfpKEx9qgQWHqQDnu4c" alt=""><figcaption></figcaption></figure>

#### Field-level mappings

The lower section shows each Rox field paired with a CRM field. **Basic fields** are the minimum set of fields Rox needs to dedupe on writeback. **Custom fields** are where new custom fields can be mapped from SFDC to Rox and read and write sync rules can be defined for these fields. Between each field mapping, you can choose how you want data to flow to/from SFDC and Rox:

* **Read Only**: Data is read from SFDC into Rox, but new data is not written back to SFDC from Rox
* **Read and Write**: Data is read from SFDC into Rox and updates to those fields in Rox will be written back to SFDC. Rox and SFDC data will be in-sync with the most recently updated value between both systems showing in both Rox and SFDC.

<figure><img src="/files/gtQwmevTCnvM9t1pKS9K" alt=""><figcaption></figcaption></figure>

**Other controls:**

* **+ Add Field** — creates a new custom field in Rox for this entity type. You can define the field name, data type, access controls, and visibility of these fields. Once created, it appears in the Custom Rox Fields section and can be mapped to a CRM field. If you want to **map a custom field from Salesforce to Rox**, please do the following:
  * **Create a New Rox Field** of the corresponding data type to the Salesforce custom field type. It should be **Editable in Rox** and **Organization-Wide**.
  * In the **Custom Fields** section, create a new mapping by selecting the custom field from SFDC you want to map in on the left-hand drop-down and the Rox field you just created on the right-hand drop-down. Then, define the sync rule for this field (Read-only or Read and Write)

<figure><img src="/files/o9Rn1Q54PA9cjytRiEfb" alt=""><figcaption></figcaption></figure>

#### Activities-specific settings

In addition to the general settings above, the **Activities** tab has a few extras because Rox writes calls, emails, meetings, and LinkedIn touches back to your CRM as Tasks/Events (requires **Step 3** to have been completed):

* **Email Writeback** — when on, emails sent from Rox are written back to your CRM as Tasks.
* **Phone Call Writeback** — when on, phone calls made or logged in Rox are written back to your CRM as Tasks.
* **LinkedIn Message Writeback** — when on, LinkedIn messages handled in Rox are written back to your CRM as Tasks.
* **LinkedIn Connection Writeback** — when on, LinkedIn connection requests sent from Rox are written back as Tasks.
* **Lead Resolution** — when on, Rox will automatically resolve (match) leads in your CRM during activity writeback. Email-only — applies when an email activity references a lead's address.

<figure><img src="/files/V1DcMyJfKMNFbSMTi3E1" alt=""><figcaption></figcaption></figure>

#### Static value mappings

At the bottom of the **Activites** tab, **Static value mappings** lets you write a **fixed value** into a CRM field for every record Rox writes back, regardless of what's in Rox.

How it works:

* Pick a CRM field on the left, type the static value on the right.
* Every record Rox writes back to that CRM object will have that field set to that value.
* Click **+ Add new row** to add more.

Common uses:

* Tag every Rox-written activity with `Subject = "Demo"` (as in the screenshot) so you can filter on Rox-sourced activities in Salesforce reports.
* Set a `Source = "Rox"` field on accounts or opportunities created via Rox writeback.
* Apply a default `Status` or `Type` on tasks Rox creates so they land in the right queue.

Static values are useful when you want the *fact that Rox created the record* to be visible in your CRM without changing the per-record data.

<figure><img src="/files/I8wJjvTBR0FnUR2ijLkM" alt=""><figcaption></figcaption></figure>

### *A Note on Formula Fields*

Calculated/formula fields from Salesforce have some nuances with the way we ingest updates to those fields from Salesforce as the last modified date is not updated when those field types are updated on an opportunity.

If you'd like to pull in Formula Fields from your Salesforce instance to sync into Rox and be eligible for writeback from Rox back to your Salesforce, we recommend using "Process Builder" or creating a Workflow in Salesforce to automatically populate a new field on the object to match the current calculated/formula field whenever it’s updated. This will allow for us to pick the updated values when they are made since this will update the last modified date of that column.&#x20;

### You're done

Salesforce and Rox are now connected and syncing both ways. If anything looks off, or you want to sync more objects, your Rox contact is happy to help.

<figure><img src="/files/3dpxJwh6u7FVjL8F5pdD" alt=""><figcaption></figcaption></figure>


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.rox.com/development/product/organization-level-configurations/configuring-salesforce-integration-+-writeback.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
