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

# Salesforce Integration

> Connect Salesforce as your CRM and keep accounts, contacts, opportunities, and support cases flowing into Statisfy — a self-serve guide for admins, no engineering support required.

# Salesforce Integration

Connect Salesforce as your CRM and keep accounts, contacts, opportunities, and support cases flowing into Statisfy automatically — no engineering help required.

<Note>
  New to Statisfy integrations? [Integration Concepts](/integrations/self_serve_configuration) explains the shared building blocks — previews, sync schedules, job status, and configuration history — in one place. This page covers what's specific to Salesforce.
</Note>

## What this integration does

* **Two-way sync** — accounts, contacts, and opportunities sync from Salesforce into Statisfy, and edits you make in Statisfy can sync back. See [Salesforce Bi-Directional Sync](/integrations/salesforce_bi_directional_sync_guide) for the write-back side.
* **Bring any object** — pull additional Salesforce objects (contracts, entitlements, success plans — anything) into Statisfy as related records.
* **Owner mapping** — tell Statisfy which Salesforce field holds each owner (Account Owner, CSM, and so on) so the right people see the right accounts.
* **ARR & renewal dates** — point at the Salesforce fields you trust, or have Statisfy calculate them from related records like subscriptions.
* **Support cases & Chatter** — pull Salesforce Cases in as support activity with AI sentiment analysis, and optionally sync [Chatter posts](/integrations/salesforce_chatter).

You configure all of this yourself in a settings page inside Statisfy, with live previews so you can check your work before saving.

## Prerequisites

1. **Admin access in Statisfy** — only admins see integration settings.
2. **Admin access in Salesforce** — the person connecting must be able to approve a connected app and should have visibility into the objects you want to sync. If you can install apps from the Salesforce AppExchange, you have enough access.
3. **The Statisfy managed package installed in your Salesforce org** — if you're connecting for the first time, follow [Salesforce Integration Steps](/integrations/salesforce_integration_steps) for the one-time install.

<Note>
  **What's OAuth?** When you connect, Salesforce shows a standard sign-in and permission screen — the same flow you've seen when connecting other apps. You never share your Salesforce password with Statisfy, and you can revoke access from Salesforce at any time.
</Note>

## Step 1 — Connect

1. In Statisfy, go to **Integrations → Admin Apps** and find the **Salesforce** card.
2. Click **Connect**. A Salesforce sign-in window opens.
3. Sign in with your Salesforce admin account and click **Allow**.
4. The card now shows **Connected**. Click **Settings** on the card to configure what syncs.

## Step 2 — Configure the settings wizard

The settings page has seven sections. Only **Account Filtering** is required — you can leave the rest at their defaults and come back any time. Click **Save** when you're done; every save is versioned (see [Configuration history](/integrations/self_serve_configuration#configuration-history)).

<Tip>
  **What's a SOQL filter?** A few sections ask for a "filter" written in SOQL — Salesforce's query language. It's just a condition like `Type = 'Customer' AND ARR__c > 0`, the same logic you'd put in a Salesforce report filter. Every filter box has a **Validate** button that tests your filter against your real Salesforce data and shows how many records match, plus a few examples — so you'll know it works before you save. If you're unsure what to write, copy the filter from an existing Salesforce report, or ask your Statisfy CSM.
</Tip>

### 1. Account Filtering (required)

Decide which Salesforce accounts come into Statisfy.

* **Single filter** — one filter; every matching account is brought in as a **Customer**.
* **Typed filters** — separate filters for **Customer**, **Prospect**, and **Partner**. Each account gets the type of the first filter it matches. Accounts matching no filter are not synced.

Click **Validate** to see the match count and five sample accounts before saving. If it says "0 accounts match," your filter is valid but too narrow — loosen it.

### 2. Owner Mapping

Tell Statisfy which Salesforce field identifies each kind of owner. The dropdown shows only fields on your Account object that point to a Salesforce user, so you can't pick an invalid field.

| Salesforce field (example) | Statisfy owner type       |
| -------------------------- | ------------------------- |
| `OwnerId`                  | Account Owner             |
| `CSM__c`                   | CSM                       |
| `Sales_Rep__c`             | Sales Rep                 |
| `Support_Owner__c`         | Support Owner             |
| `TAM__c`                   | Technical Account Manager |
| `Success_Manager__c`       | Success Manager           |

<Note>
  **What's a field "API name"?** Every Salesforce field has a display label ("CSM") and an internal name ("CSM\_\_c"). The dropdowns here show both, so you don't need to look anything up.
</Note>

### 3. ARR & Renewal

Choose where Statisfy gets each account's annual recurring revenue (ARR) and renewal date. Three options for each:

* **None** — don't sync it.
* **Direct field** — pick the Account field that already holds the value (ARR fields must be number/currency fields; renewal must be a date field).
* **Calculated from related records** — have Statisfy compute it from a child object, e.g. "sum the Amount on all active Subscription records." You choose the object, the value field, how to combine values (**sum**, **max**, or **latest**), and an optional filter to scope which records count.

For calculated values, click **Validate** to see the computed result for sample accounts — check those numbers against Salesforce before saving.

### 4. Custom Objects

Bring any other Salesforce object into Statisfy as related records on an account or contact. Click **Add Custom Object** and fill in:

| Setting                   | What it means                                                         |
| ------------------------- | --------------------------------------------------------------------- |
| Object API name           | The Salesforce object to pull in (pick from the list)                 |
| Display name              | What it's called in Statisfy (e.g. "Contracts")                       |
| Parent entity             | Whether records attach to an Account or a Contact                     |
| Matching field            | The field on that object that links it back to the account or contact |
| Filter (optional)         | A condition to limit which records sync                               |
| Fields to sync (optional) | Pick specific fields, or leave empty to sync all                      |

You can add as many custom objects as you need.

### 5. Support Cases

Turn this on to pull Salesforce Cases into Statisfy as support activities, with AI sentiment analysis on the conversation.

| Setting                 | What it means                                                                        |
| ----------------------- | ------------------------------------------------------------------------------------ |
| Case filter             | A condition to limit which cases sync (Validate shows samples)                       |
| Lookback window         | How far back to pull cases — 1 to 365 days                                           |
| Conversation source     | Where the case conversation lives: **Case Comments** (default) or **Email Messages** |
| Extra fields (optional) | Core fields (subject, status, priority, dates) sync automatically; add more here     |

### 6. Chatter

Optionally sync Salesforce Chatter posts and comments from Accounts and Opportunities into the activity timeline.

Chatter is the one section with its own **Sync Frequency** control — choose **Hourly**, **Daily**, or **Weekly** and click **Save Schedule**. Two things to know:

* **No schedule means no syncing.** Turning the Chatter toggle on isn't enough — you must also save a Sync Frequency, or Chatter will never run.
* **The schedule saves separately.** "Save Schedule" applies immediately and is independent of the main **Save** button at the bottom of the page (which saves the rest of your Chatter settings). Use **Disable Schedule** to stop scheduled runs.

The page warns you if a schedule is active while the Chatter toggle is off — clear the schedule or turn the toggle back on. For filters and field options, see the [Salesforce Chatter guide](/integrations/salesforce_chatter).

### 7. Advanced

Most teams never touch this section. It lets you restrict exactly which fields sync ("allowlists" — only the fields you list are synced) for Accounts and Opportunities, map extra Contact fields, or exclude specific Contact fields. Use it to trim sync size on very large orgs or to bring in non-standard fields without a custom object.

## Step 3 — Run your first sync and check the results

* After connecting, Statisfy automatically runs a first full sync that pulls your recent Salesforce history; ongoing syncs then run **daily**. Support cases also refresh daily. (Details: [your first sync](/integrations/self_serve_configuration#your-first-sync-and-what-runs-after).)
* The **Sync Job** banner at the top of the settings page shows the latest run and its status. Changed a setting and don't want to wait? Click **Run Sync Job** to sync now.

**Verify it worked:** open **Accounts** in Statisfy and spot-check a few accounts you know — confirm the owners, ARR, and renewal dates match Salesforce.

<Note>
  Dropdown (picklist) fields synced from Salesforce automatically show the same display labels your team sees in Salesforce, while the stored values stay unchanged for filtering and write-back. See [Display Labels for Picklist Options](/custom-fields/option_display_labels).
</Note>

## Changing settings later

Edit any section and save — changes take effect on the next sync (use **Run Sync Job** to apply them immediately). Every save is kept as a version you can see in the page header; to restore a previous version, contact [support@statisfy.com](mailto:support@statisfy.com). See [Configuration history](/integrations/self_serve_configuration#configuration-history).

## Syncing changes back to Salesforce

Edits made in Statisfy — to accounts, contacts, opportunities, and synced custom objects — can be written back to Salesforce so both systems stay in step. See the [Salesforce Bi-Directional Sync Guide](/integrations/salesforce_bi_directional_sync_guide) to set this up.

## Troubleshooting

<Accordion title="Saving fails with 'SOQL validation failed'">
  Your filter doesn't match your Salesforce setup — usually a misspelled field name, a field that doesn't exist on that object, or an unbalanced parenthesis. Click **Validate** on the filter; the error message names the exact problem. Tip: copy field names from the dropdowns rather than typing them.
</Accordion>

<Accordion title="ARR or renewal date looks wrong on an account">
  Check which mode you chose in the **ARR & Renewal** section:

  * **Direct field** — open that account in Salesforce and confirm the field actually holds the value you expect.
  * **Calculated** — click **Validate** and compare the sample results against Salesforce; the filter or the combine rule (sum/max/latest) usually needs adjusting.
</Accordion>

<Accordion title="A custom object isn't showing on accounts">
  * Confirm the object is added and saved in the wizard's **Custom Objects** section.
  * Verify the matching field really links back to the Account (or Contact) for the records you expect.
  * Check the optional filter — too restrictive a condition silently excludes records.
  * Newly added objects appear after the next sync — click **Run Sync Job** instead of waiting.
</Accordion>

<Accordion title="Support cases are missing or out of date">
  * Check that the **Support Cases** toggle is on.
  * Make sure the lookback window covers the cases you expect — it maxes out at 365 days.
  * Check the case filter isn't too narrow.
  * If cases sync but conversations are empty, try switching the conversation source between Case Comments and Email Messages — different orgs store case conversations in different places.
</Accordion>

<Accordion title="Chatter posts aren't appearing">
  Two switches have to be on: the Chatter toggle *and* a saved Sync Frequency. If either is missing, nothing runs. Check the "Currently scheduled" line in the Chatter section to confirm a schedule is active.
</Accordion>

<Accordion title="The sync says 'completed' but no data appears">
  Almost always the account filter: click **Validate** in **Account Filtering** — if it shows 0 matches, your filter is excluding everything. If the count looks right but data still doesn't appear, contact support with the approximate time of the sync run.
</Accordion>

<Accordion title="The Connect button fails or loops">
  Make sure you're signing in to the correct Salesforce org (production vs sandbox) with an admin account, and that pop-ups aren't blocked in your browser. If your org restricts which apps users can authorize, a Salesforce admin may need to approve the Statisfy connected app first.
</Accordion>

## FAQ

<Accordion title="Will connecting change anything in Salesforce?">
  No. Connecting and configuring only *reads* from Salesforce. Writing back is a separate, deliberate setup — see the [Bi-Directional Sync Guide](/integrations/salesforce_bi_directional_sync_guide).
</Accordion>

<Accordion title="Who can set this up?">
  A Statisfy admin who also has Salesforce admin access. No developers needed — everything happens in the settings page.
</Accordion>

<Accordion title="Can I change my filters after the first sync?">
  Yes, any time. Save, then click **Run Sync Job** to apply immediately. Accounts that no longer match your filter stop updating.
</Accordion>

<Accordion title="How fresh is the data?">
  Sync runs daily; the first sync after connecting pulls recent history. Chatter follows its own schedule (hourly, daily, or weekly — whatever you saved).
</Accordion>

<Accordion title="How do I disconnect?">
  On the Salesforce card under **Integrations → Admin Apps**, choose Disconnect. You can also revoke Statisfy's access from Salesforce's Connected Apps settings. Already-synced data remains in Statisfy until you ask support to remove it.
</Accordion>

## Support

Still stuck? Email [support@statisfy.com](mailto:support@statisfy.com) or reach out to your Customer Success Manager — include a screenshot of the settings section and the error if there is one.
