> 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/admin-guide/integrations/salesforce/configuring-salesforce-integration-+-writeback.md).

# Configuring Salesforce Integration + Writeback

Rox periodically pulls Salesforce data into a managed warehouse. The integration user's permissions determine which data Rox can access. An Organization Admin configures the fields and activities Rox writes back.

Complete the setup in three stages: prepare the Salesforce integration user, complete onboarding in Rox, then manage mappings and activity writeback in **Settings → Integrations → Salesforce**. **Test sync** is available during onboarding only.

### Before you begin

You need:

* A Rox Organization Admin to complete setup in Rox.
* A Salesforce administrator who can manage users, licenses, and permission sets.
* A Salesforce user with API access enabled. Use a dedicated integration user so Rox activity is easy to audit.

For the simplest setup, use a dedicated user with a full **Salesforce** license and the **System Administrator** profile. For restricted access, configure a custom permission set before connecting.

Activity writeback requires a full Salesforce license under the setup described here. The API-only Salesforce Integration license is supported for read sync or core entity writeback, but not activity writeback.

### Create or confirm the integration user

1. In Salesforce, go to **Setup → Administration → Users → Users**.
2. Create a dedicated integration user or select the user you will connect.
3. Use the **Salesforce** license if you need activity writeback.
4. Assign the **System Administrator** profile for the full-access setup, or configure the restricted permissions below.
5. Complete the user's account details and confirm **API Enabled** is selected.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252Fk57ChZtiIWhWbWl3Ks5B%252Fimage.png%3Falt%3Dmedia%26token%3Da8c449cf-5012-4398-8ca1-e28aa7d2d1e7&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=515f4d2e&#x26;sv=2" alt="Create Salesforce integration user"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FBXW8ok4bY08DtAyDKiUC%252Fimage.png%3Falt%3Dmedia%26token%3Da64c69ab-81af-4918-8618-c651c96ac5b5&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=6d3c4545&#x26;sv=2" alt="Confirm Salesforce user details"></div>

### Objects and required fields

Rox supports Account, Contact, Lead, Opportunity, Opportunity Contact Role, Opportunity Stage, Campaign, and Campaign Member. Rox also syncs User and Task data to support functionality such as account assignment and activity writeback.

During onboarding, map Salesforce fields to the corresponding Rox fields. After onboarding, use CRM Mappings to add custom mappings.

<div data-with-frame="true"><figure><img src="https://2986926806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUBzWA2LkfjbdaffIaGlN%2Fuploads%2Fl8wm5LqUbGZW7xG57Ud0%2Fimage.png?alt=media&amp;token=7be7c141-9fb1-402d-861c-05d776cfe3dc" alt=""><figcaption><p>General Settings</p></figcaption></figure></div>

For each object you sync, the integration user needs Read access to the object and its required fields.

| **Object**                                                              | **Required fields**                                                                                                                      |
| ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| Account (Required)                                                      | `ID`, `NAME`, `WEBSITE`, `OWNER_ID`, `SYSTEM_MODSTAMP`, `CREATED_DATE`                                                                   |
| Contact (Optional)                                                      | `ID`, `NAME`, `EMAIL`, `ACCOUNT_ID`, `CREATED_DATE`, `SYSTEM_MODSTAMP`                                                                   |
| Lead (Optional)                                                         | `ID`, `CREATED_DATE`, `SYSTEM_MODSTAMP`                                                                                                  |
| Opportunity (Optional)                                                  | `ID`, `NAME`, `STAGE_NAME`, `OWNER_ID`, `ACCOUNT_ID`, `CREATED_DATE`, `SYSTEM_MODSTAMP`                                                  |
| Opportunity Contact Role (Optional, recommended if syncing Opportunity) | `ID`, `OPPORTUNITY_ID`, `CONTACT_ID`, `ROLE`, `IS_PRIMARY`, `CREATED_DATE`, `SYSTEM_MODSTAMP`                                            |
| Opportunity Stage (Optional, recommended if syncing Opportunity)        | `ID`, `API_NAME`, `SORT_ORDER`, and `IS_CLOSED` or `DEFAULT_PROBABILITY`. Prefer syncing both, along with `IS_WON`.                      |
| Campaign (Optional)                                                     | `ID`, `NAME`, `CREATED_DATE`, `SYSTEM_MODSTAMP`                                                                                          |
| Campaign Member (Optional, recommended if syncing Campaign)             | `ID`, `CAMPAIGN_ID`, `CONTACT_ID` and/or `LEAD_ID`, `STATUS`, `HAS_RESPONDED`, `FIRST_RESPONDED_DATE`, `CREATED_DATE`, `SYSTEM_MODSTAMP` |

Additional fields, such as industry, revenue, contact phone numbers, and opportunity amounts, can be mapped according to your team's needs.

### Restrict access before connecting

Skip this section if you are using the System Administrator profile.

Create or configure a custom permission set for the integration user. Grant Read access to the objects and fields Rox should sync, including the required fields above. Check Salesforce sharing rules so the intended records are visible to that user.

Grant write permissions only for the objects and fields you intend Rox to create or update. Read sync and writeback require different permissions; configuring read access alone does not enable writeback.

Use the permissions for the actual integration user. If you need activity writeback, use the full Salesforce license described above. Complete the additional activity permissions in **Enable writeback**.

Validate the setup by confirming that the integration user can query the intended objects and fields.

### Step 1 Connect Salesforce and Fivetran

1. Sign in to [Rox](https://run.rox.com) as an Organization Admin.
2. Go to **Settings → Integrations**.
3. Find Salesforce and select **Connect**, or **Action Required** if shown.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FJBo2JZVaz2vAAdUzNsbC%252Fimage.png%3Falt%3Dmedia%26token%3Dbeccea7a-3227-446d-b747-3cef1eea5e33&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=452d7f8&#x26;sv=2" alt="Open Settings and Integrations"></div>

4. Confirm your Salesforce edition and the integration user's permissions.
5. Select **Continue**, then sign in to Salesforce as the integration user.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FehqsY9KWwn5MyeTVYAa4%252Fimage.png%3Falt%3Dmedia%26token%3D6aeaaf90-d83e-4877-8efc-85d6563e56ab&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=46e441dd&#x26;sv=2" alt="Select Salesforce Connect"></div>

6. After returning to Rox, select **Connect Fivetran**.
7. In Fivetran, select **Continue**, **Authorize**, then **Save and Test**. Use the same Salesforce credentials and custom domain, if applicable.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FwO3dAmuebMxXSWuaYrnP%252Fimage.png%3Falt%3Dmedia%26token%3D2caa42e3-e138-46c4-b665-42f7e70581a5&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=57598555&#x26;sv=2" alt="Connect Fivetran"></div>

<div data-with-frame="true"><figure><img src="https://2986926806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUBzWA2LkfjbdaffIaGlN%2Fuploads%2F73BIoaZ3g5fA8816ylvj%2FScreenshot%202026-08-17%20at%203.37.49%E2%80%AFPM.png?alt=media&amp;token=269f2ac8-1376-4bdd-ad37-6f45e4566433" alt=""><figcaption><p>Authorize Fivetran</p></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="https://2986926806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUBzWA2LkfjbdaffIaGlN%2Fuploads%2FMW8OpplhunyRFLxOF2uR%2FScreenshot%202026-08-17%20at%203.39.24%E2%80%AFPM.png?alt=media&amp;token=ca5dfa60-6fbd-4811-be60-332cd623c735" alt=""><figcaption><p>Save, Test, and Finalize Fivetran Connection</p></figcaption></figure></div>

8. Continue to **Select objects**.

Fivetran ingests Salesforce data into the warehouse used by Rox.

For a sandbox connection, choose **Log In with a Different Username**, select **Use Custom Domain**, enter the Salesforce custom domain, and continue.

### Step 2 Select objects

Select the Salesforce objects your team needs, such as Contact, Lead, and Opportunity. Account and User are required.

You can enable additional objects after onboarding in Settings.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FiGVeeDBk23pLyytQ3OOa%252Fimage.png%3Falt%3Dmedia%26token%3D56317711-7767-4956-849d-2c689984e042&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=eb03a009&#x26;sv=2" alt="Select objects to sync"></div>

### Step 3 Configure field mappings

1. Select an object tab.
2. Review the default Salesforce-to-Rox mappings.
3. Select the appropriate Salesforce field for each Rox field.
4. Keep required mappings in place and adjust optional mappings as needed.
5. Continue to **Account assignment**.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FTkp8UhrwS8VjjXiftBRk%252Fimage.png%3Falt%3Dmedia%26token%3D2e468558-f403-4778-98bc-5c190639e4ee&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=866f7568&#x26;sv=2" alt="Configure field mappings"></div>

After onboarding, use **CRM Mappings** to create or refine custom mappings.

### Step 4 Configure account assignment

Account assignment determines which Salesforce Accounts each Rox user can access.

1. Review the assignment rule for each user.
2. On **Owner fields**, select the Salesforce Account-to-User fields used to assign Accounts. Most organizations use Account Owner; select a supported custom owner field if needed.
3. On **Account filters**, optionally configure an additional filter. A user can have multiple owner fields and one additional filter.
4. On **Default rule**, configure the rule for users without owner fields or filters.
5. Use **Preview** to check the resulting Account set, then save.

Users without a matching assignment rule do not see Accounts. Continue to **Enable writeback**, or go to **Test sync** if you do not need writeback.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252Fp929F98LYmqNmzAzBNlS%252FGemini_Generated_Image_33pda133pda133pd.png%3Falt%3Dmedia%26token%3D31957fe3-0906-418c-98f0-cd68d4f36e9a&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=f36b0df1&#x26;sv=2" alt="Configure account assignment rules"></div>

After onboarding, update rules in **Settings → Integrations → Salesforce → Account Assignment**.

### Step 5 Enable writeback

Writeback is optional. Rox writes only the fields and activities configured by an Organization Admin and permitted by the Salesforce integration user's access.

#### Install the managed package

Install the Rox managed package. Select **Install for All Users**, then **Install**.

The package creates:

* **ID Mapping** (`RoxAI__ID_Mapping__c`), which resolves Rox and Salesforce entities during bidirectional sync.
* **Rox Integration User Access**, a permission set that grants access to the ID Mapping object.

<div data-with-frame="true"><figure><img src="https://2986926806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUBzWA2LkfjbdaffIaGlN%2Fuploads%2FOD6KILtyKio9Ku1W7ALm%2Fimage.png?alt=media&amp;token=5acf3acb-963d-45ee-85e2-4ba6bd5e628f" alt=""><figcaption><p>Install the Rox Managed Package</p></figcaption></figure></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FvTaoinyrJkCDqDDOtG8v%252Fimage.png%3Falt%3Dmedia%26token%3D121b5417-803d-48d3-a7da-25f6a672e6f5&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=8f986831&#x26;sv=2" alt="Grant package access to all users"></div>

#### Configure write permissions

If the integration user has a full Salesforce license and the System Administrator profile, Salesforce-side permission setup is complete. Continue with the Rox-side mappings and activity configuration after onboarding.

For a restricted integration user:

1. Assign **Rox Integration User Access**.
2. In your custom permission set, grant the object and field access needed for the records Rox should create or update.
3. Assign the custom permission set to the integration user.

For activity writeback, also configure:

* **Access Activities**, **Edit Tasks**, and **Edit Events** in System Permissions.
* The Task permissions needed by the integration, including the documented **Create**, **Edit**, and **Delete Tasks** permissions.
* Access to the Task and Event objects and the activity fields Rox uses.

Review access to these Task fields: `Subject`, `Description`, `Status`, `ActivityDate`, `OwnerId`, `WhoId`, `WhatId`, `Type`, `TaskSubtype`, `Priority`, `CallType`, and `CallDisposition`. Grant write access to fields Rox must populate where Salesforce allows it.

Wait for the next sync, which may take about 30 minutes, then confirm that the intended fields are write-enabled in CRM Mappings.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252Fjk7mhOGzyvR5C1lzqkmI%252Fimage.png%3Falt%3Dmedia%26token%3D7ada4b92-a087-4822-95c0-7cca8f95f3ea&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=274bf8ce&#x26;sv=2" alt="Assign Rox Integration User Access"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FdrW9YaOjCOsxFoBhsLoj%252Fimage.png%3Falt%3Dmedia%26token%3Da5853d26-c29a-42d9-82ef-6457656aa0fa&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=9bcbc10d&#x26;sv=2" alt="Assign both permission sets"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FLV1Jhp2nsB3J56yF6n9F%252Fimage.png%3Falt%3Dmedia%26token%3D54711fbf-917b-4a86-88f2-f32ac6e47099&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=31aca8&#x26;sv=2" alt="Enable Access Activities"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252Fx09deePh76ym2Jp3CI7q%252Fimage.png%3Falt%3Dmedia%26token%3D2c96e5a6-1bf3-42da-a413-d8018a0f4929&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=c5c02dcb&#x26;sv=2" alt="Enable Task permissions"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FErZ1ExyL0zMN1ggNSR2o%252Fimage.png%3Falt%3Dmedia%26token%3Df893cbf4-68dd-4552-82c5-9d871d743345&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=5c8ec5e5&#x26;sv=2" alt="Grant Task field access"></div>

For integrations connected before May 31, 2025, re-authenticate after granting write permissions. See **Re-authenticate Salesforce and Fivetran**.

### Step 6 Test sync

1. Run **Test sync**.
2. Review errors or warnings and return to the relevant onboarding step to correct them.
3. When the test succeeds, select **Submit** to finalize the connection.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FhHVxodWqlIzs5OXeqoAd%252Fimage.png%3Falt%3Dmedia%26token%3Daf8a6233-ac08-4854-8abe-8eb50615f734&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=9c1b86d9&#x26;sv=2" alt="Test sync"></div>

After onboarding, configure the writeback mappings and activity types your team needs.

### Manage CRM Mappings

After the first sync, go to **Settings → Integrations → Salesforce**.

CRM Mappings includes Accounts, Contacts, Opportunities, Leads, and Activities. Configure settings and mappings for each object.

For Contacts and Leads:

| **Mapping section** | **Purpose**                                                                                                            |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Read                | Maps Salesforce fields into Rox during sync.                                                                           |
| Write (Activity)    | Configures fields used when writing activities and creating Salesforce Contacts or Leads referenced by a Rox activity. |

Enable writeback for new entities only after completing the managed-package and permissions setup.

<div data-with-frame="true"><figure><img src="https://2986926806-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUBzWA2LkfjbdaffIaGlN%2Fuploads%2F87dsbwXizFedcF85cPgK%2F2026-10-01_13-40-11.png?alt=media&amp;token=79375213-b8d4-4dad-8ff5-8ab979f8b5ed" alt=""><figcaption><p>Configure Write Activity mappings</p></figcaption></figure></div>

#### Add a custom mapping

1. Select **+ Add Mapping** to create a custom Rox field for the entity type.
2. Set its name, compatible data type, access controls, and visibility.
3. Make the field **Editable in Rox** and **Organization-Wide**.
4. Under **Inactive Fields**, select the Salesforce custom field and the new Rox field.
5. Choose the applicable **Read** or **Write** sync rule.

The new field appears under **Custom Rox Fields**. Confirm that the selected Rox data type supports the Salesforce field before saving the mapping.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FdgRioLPDKWdvGdmoKp9q%252Fimage.png%3Falt%3Dmedia%26token%3D3b65b946-68c8-4b7e-bf1b-5afbedd0ca40&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=d039c8dc&#x26;sv=2" alt="Add a custom field mapping"></div>

#### Formula fields

Changes to a calculated value may not update the Salesforce record's modification timestamp, so an incremental sync may not pick up the change.

If you need these values synced reliably, have your Salesforce administrator configure automation to copy the calculated value into a stored field and keep it current. Design the automation around the formula's dependencies, then map the stored field in Rox. For new Salesforce automation, use Flow Builder rather than Process Builder or Workflow Rules.

### Configure activity writeback

After onboarding and permission setup, open the activity writeback configuration in **Settings → Integrations → Salesforce**.

Configure the activity types your team wants Rox to write to Salesforce:

* **Email Writeback**
* **Phone Call Writeback**
* **LinkedIn Message Writeback**
* **LinkedIn Connection Writeback**

#### Map activity types to Salesforce values

For each Rox activity type, select the values Rox should write to the existing Salesforce Task **Type** and **Task Subtype** fields. These settings control how activities created by Rox are categorized in Salesforce.

Rox loads the available picklist values from Salesforce. The selected values do not need to have the same names as Rox’s activity types. For example, a Rox Phone Call activity could map to a Salesforce Type of `Outbound Call` and a Task Subtype of `Call`, provided those values are available in your Salesforce configuration.

**Type and Task Subtype support different customization.** Task Subtype (`TaskSubtype`) is a restricted picklist managed by Salesforce with a limited, predefined set of values. You cannot add custom subtype values. If you need a custom activity category, such as `LinkedIn Outreach`, add it to the Salesforce Task **Type** picklist, refresh the Salesforce field metadata in Rox, and select it in the Type mapping. For Task Subtype, choose an appropriate existing Salesforce value.

Choose from the available Salesforce values for both restricted and unrestricted picklists. If the value you need is missing:

1. Ask your Salesforce administrator to confirm that it is active and available to the integration user.
2. If the field supports custom values, have your administrator add the desired value in Salesforce.
3. Refresh the Salesforce field metadata in Rox, then select the value.

Salesforce controls which values each field supports. You do not need to create a new Salesforce field or rename Salesforce values to match Rox’s activity types.

Use **Mark Rox-created Activities** to write the word `Rox` to the selected Salesforce Task field.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FeB83zCSl47uJ13Qf69MS%252Fimage.png%3Falt%3Dmedia%26token%3D816e6c2e-28e5-4a2c-986e-fd041111dcb5&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=5082e04b&#x26;sv=2" alt="Configure activity writeback"></div>

Use **Additional Mappings** to translate other activity field values into values accepted by your Salesforce configuration. These mappings must satisfy the destination field’s picklist constraints and any Salesforce validation rules.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FR1LRDR9APURoMMjjwIUM%252Fimage.png%3Falt%3Dmedia%26token%3D47558f3b-6bdc-483a-8b4a-d621fad88714&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=38f2c394&#x26;sv=2" alt="Configure additional mappings"></div>

### Re-authenticate Salesforce and Fivetran

Re-authenticate if the integration requires action, its token has expired or been revoked, or updated permissions require a new authorization.

1. Go to **Settings → Integrations** and find Salesforce.
2. Select the settings icon, regardless of whether the integration shows **Error**, **Action Required**, or **Ready**.
3. On **Authentication**, select **Re-authenticate** and sign in as the integration user.
4. Return to Rox and refresh if needed.
5. Select **Action Required**, then **Map Key Values** to re-authenticate Fivetran.
6. Select **Re-authorize connection**, then **Save and Test**.
7. Return to Rox and refresh. Confirm the connection shows **Connected**.

#### OAuth approval error

If you see `OAUTH_APPROVAL_ERROR_GENERIC`, check whether Salesforce is blocking the Rox Connected App. In Salesforce, open **Connected Apps OAuth Usage** and confirm **RoxAI** is installed or approved alongside Fivetran, then retry.

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FBtz950QX7oTK8Mud1cUD%252Fimage.png%3Falt%3Dmedia%26token%3Dda75d80d-5b6e-4dd0-8ea6-371bd286a954&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=d0385f39&#x26;sv=2" alt="OAuth approval error"></div>

<div data-with-frame="true"><img src="https://docs.rox.com/development/~gitbook/image?url=https%3A%2F%2F2986926806-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FUBzWA2LkfjbdaffIaGlN%252Fuploads%252FkOPWVH3KHi8mjJ5qWIin%252Fimage.png%3Falt%3Dmedia%26token%3D40b8387b-ffba-427d-8074-19941395f3b1&#x26;width=768&#x26;dpr=3&#x26;quality=100&#x26;sign=68eacec1&#x26;sv=2" alt="Verify RoxAI in Connected Apps OAuth Usage"></div>

### How the integration works

| **Component**            | **Service** | **Location**  |
| ------------------------ | ----------- | ------------- |
| Warehouse                | Snowflake   | United States |
| Ingestion                | Fivetran    | United States |
| Rox application frontend | Vercel      | United States |
| Rox application backend  | AWS         | United States |

Rox accesses the objects and fields permitted for the Salesforce integration user and configured for sync. Writeback is limited by both Salesforce permissions and the Organization Admin's configuration in Rox.

Synced data supports account research, insights, and opportunity management. Data retention and removal follow Rox's applicable data-lifecycle policies.
