Skip to main content

Salesforce Integration

Connect Salesforce as your CRM and keep accounts, contacts, opportunities, and support cases flowing into Statisfy automatically — no engineering help required.
New to Statisfy integrations? Integration Concepts explains the shared building blocks — previews, sync schedules, job status, and configuration history — in one place. This page covers what’s specific to Salesforce.

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 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.
  • Einstein Activity Capture emails — ingest emails that Einstein Activity Capture logs as Salesforce Task records, on a schedule you choose. See Email.
  • Einstein meetings — ingest Einstein Conversation Insights calls from the Salesforce VideoCall object onto each account’s AI timeline. See Einstein Meetings.
  • Meeting activity push — send meetings captured in Statisfy to Salesforce as Events or Tasks, with AI meeting insights (recap, key takeaways, sentiment) mapped to fields you choose and, optionally, the meeting participants attached. Configured in Object Manager — see Pushing meeting activities to Salesforce.
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 connected app installed in your Salesforce org — Salesforce blocks connected apps that are not installed in the org. Install the Statisfy package (Salesforce Integration Steps), or approve the Statisfy connected app.
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.

Approve the Statisfy connected app

If the Statisfy connected app is not installed in your org, Connect fails with OAUTH_APPROVAL_ERROR_GENERIC. The user who connects must have the Approve Uninstalled Connected Apps permission. Do these steps once:
  1. In Salesforce, give the user who connects the Approve Uninstalled Connected Apps permission. A permission set is the easiest way.
  2. In Statisfy, connect Salesforce as that user. Follow Step 1 — Connect below.
  3. In Salesforce Setup, open Connected Apps OAuth Usage. Find the Statisfy app and click Install.
  4. Optional: click Manage Policies on the installed app. Set Permitted Users to Admin approved users are pre-authorized, then add the profile or a permission set of the user who connects. Do not use the permission set from step 1: the user must keep this assignment.
  5. Remove the Approve Uninstalled Connected Apps permission from the user. Keep the profile or permission set from step 4.
  6. Installing the app can revoke the token from step 2. If the Salesforce card no longer shows Connected, connect again.

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.
Once connected, the Salesforce card also shows:
  • Connected by: the Statisfy user who made the connection.
  • Connected user: the Salesforce identity that authorized Statisfy.
  • Instance URL: the Salesforce org Statisfy syncs from.
Use these to confirm Statisfy is connected to the right org with the right Salesforce user. If you connected before these fields were added, they don’t appear until you reconnect Salesforce.
Statisfy connects Salesforce in one of two ways, and you usually see one Salesforce card, for the way your workspace uses. You see two cards only while both connections are active. All Salesforce cards open the same settings page and share one saved configuration, so your account filters, including any Churned filter, live on one screen. If you switch from one connection method to the other, your settings carry over and you don’t need to re-enter them.

Step 2 — Configure the settings wizard

The settings page has ten 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).
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.

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, Partner, Churned, and Custom. Each account gets the type of the first filter it matches. Custom filters always match last. Accounts matching no filter are not synced.
Churned filter. Add a Churned filter when you want to decide yourself which accounts count as churned, for example Type = 'Former Customer'. Matching accounts sync with the type Churned.
  • A Churned filter can’t be your only filter. You need at least one Customer, Prospect, or Partner filter with a condition, or Statisfy won’t save the configuration.
  • Churned must be its own filter. If you have only one other filter, you can’t switch it to Churned; the menu shows Churned (add as a separate filter). Click Add Account Filter and set the new filter’s type to Churned instead.
Adding a Churned filter changes how Statisfy handles churn:
  • Statisfy stops marking accounts as churned automatically. Your Churned filter becomes the only source of churn.
  • Every account that matches none of your filters (Customer, Prospect, Partner, or Churned) is marked deleted and removed from Statisfy, and its opportunities are archived. This includes accounts that would previously have been marked churned.
Before saving, validate each filter and make sure together they cover every account you want to keep. If you don’t add a Churned filter, churn works as it did before.
Custom filter. Add a Custom filter to bring in accounts that aren’t customers, prospects, or partners but that your team still wants to see, such as locations or subsidiaries. For example, use Type = 'Location' with the label Location.
  • A Custom filter needs a Label (up to 40 characters). The label becomes the account’s type in Statisfy: the Type column shows it, and the Accounts page lists these accounts on their own tab named after it.
  • Custom accounts show in the product, but no health, workflow, or report runs on them.
  • Custom filters match last. An account that a Customer, Prospect, Partner, or Churned filter also returns gets that filter’s type. When you validate a Custom filter, Statisfy shows how many of its accounts also match each of your other filters, for example “12 Location accounts also match Customer. They will be Customer.”
  • A Custom filter can’t be your only filter, and it doesn’t count toward the Customer, Prospect, or Partner filter you need to save.
  • Custom accounts sync in their own run once a month. It reads the account fields you sync for your other accounts, but not their contacts, opportunities, or custom objects.
  • When a Custom account no longer matches any Custom filter, Statisfy marks it Churned. It isn’t deleted. A Custom filter that returns no accounts churns nothing.
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. Sync frequency

How often Salesforce changes reach Statisfy. Every schedule here is saved as soon as you pick it; you don’t need the Save button. The Sync frequency section: Scheduled, Sync partial updates, Full sync, and the Support cases and Chatter schedules
  • Scheduled and Sync partial updates — reads only the accounts, contacts and opportunities that changed since the last run, and finds new accounts. Pick every 2 hours to daily, or Off (daily full sync).
  • Full sync — reads every account again with all its contacts and opportunities. Daily or Weekly; it always runs.
  • Support cases and Chatter — their own schedules. You can also set them in their own sections below; both places change the same schedule.
With Salesforce connected through the native connection, this section also offers Real-time (CDC). See Salesforce sync modes for how the options combine.

3. Owner Mapping

Tell Statisfy which Salesforce field identifies each kind of owner. The dropdown shows only User and Contact lookup fields on your Account object — the two kinds Statisfy can resolve to a real person — so you can’t pick an invalid field.
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.

Manager Mapping

Optionally sync each person’s reporting manager from the Salesforce User object so notifications and rollups can walk up the reporting chain in Statisfy.
  • Enable Manager Mapping — off by default. When on, Statisfy reads a User → User lookup field from every active Salesforce user and sets that person’s manager in Statisfy to match.
  • Manager Field — required when the toggle is on. Defaults to Salesforce’s standard ManagerId. Pick a custom User lookup instead (for example, Secondary_Manager__c) if your org tracks the reporting line elsewhere. Only User → User lookup fields on the User object appear in the dropdown. Saving fails if the toggle is on and no field is selected.
A few things to know while this is enabled:
  • Only active Salesforce users participate. Deactivated users are skipped.
  • Salesforce is authoritative: a user whose manager field is empty (or points at themselves) has their existing manager cleared in Statisfy.
  • If a referenced manager can’t be resolved — for example, the manager is deactivated and can’t be looked up, or has no email — the existing manager link is preserved rather than wiped. Clearing only happens when Salesforce genuinely reports no manager.

4. ARR & Renewal

Choose where Statisfy gets each account’s revenue and renewal date. The revenue field holds whichever metric you choose in the account revenue metric setting: ARR (the default) or MRR. Statisfy stores the Salesforce value as-is and never converts between the two, so map a field that already holds the metric you selected. With MRR selected, this section and its labels say MRR instead of ARR. You have three options for each value:
  • 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 (the Aggregation Method), and an optional filter to scope which records count.
The Aggregation Method options depend on which value you’re calculating: For the renewal date:
  • Latest date uses the last date across all matching records.
  • First future date uses the earliest date on or after today (UTC). If every date is in the past, Statisfy uses the latest past date. If there are no dates, the renewal date stays empty. Records with a blank date are skipped.
Use First future date when an account has several subscriptions or contracts with different end dates and you want the renewal date to show the next upcoming renewal, not the furthest one out. For example, if today is 20 Oct 2026 and an account’s subscriptions end on 29 Aug 2025, 28 Oct 2026, and 27 Nov 2026, Latest date gives 27 Nov 2026 and First future date gives 28 Oct 2026.
Statisfy recalculates the renewal date only when the account is enriched again during the daily full sync. With First future date, the stored date moves forward to the next upcoming date after that sync runs, not at the moment a date passes. A renewal date config saved earlier with Sum or Maximum is treated as Latest date.
For calculated values, click Validate to see the computed result for sample accounts — check those numbers against Salesforce before saving. Validate applies the same aggregation rule as the sync, including First future date.
Multi-currency Salesforce orgs. If your Salesforce org has multi-currency turned on, Statisfy automatically converts each account’s ARR to your org’s corporate currency, so totals and per-account values match what you see in your own Salesforce reports instead of mixing raw amounts from different currencies. The conversion runs on Salesforce’s side (via the SOQL convertCurrency() function) and applies to both the Direct field and Calculated from related records options. Single-currency orgs are unaffected.Two things to know:
  • If you sync the ARR source field as a custom field on the account, that field also shows the converted value in Statisfy, not the original per-record amount.
  • Opportunity amounts are not converted yet — this currently applies to Account ARR only.

5. Custom Objects

Bring any other Salesforce object into Statisfy as related records on an account or contact. Click Add Custom Object and fill in: You can add as many custom objects as you need, with two exceptions: Salesforce’s activity objects (Task, Event and EmailMessage), which hold too many records, and objects that share a name with one of Statisfy’s own (Account, Contact, Opportunity and User).

6. Support Cases

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

7. Chatter

Optionally sync Salesforce Chatter posts and comments from Accounts and Opportunities into the activity timeline. Chatter has its own Sync Frequency control — choose Hourly, Daily, or Weekly and click Save Schedule. The same schedule also appears in Sync frequency (section 2), where a pick saves at once. 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.

8. Email

Ingest emails captured by Einstein Activity Capture. Statisfy reads them from Salesforce Task records. Email syncs on its own schedule and never runs until you pick one. To set up email sync:
  1. Turn on Enable Email Syncing.
  2. Set Initial lookback (days) if you want the first sync to reach back more than 7 days.
  3. Click Save at the bottom of the page.
  4. Pick a Sync schedule. Statisfy saves it immediately.
Both the switch and a schedule are needed. With the switch on and no schedule, email never runs. With a schedule and the switch off, no emails are ingested. The schedule picker is unavailable while the switch is off. If a schedule is saved while Enable Email Syncing is off, the section shows a Heads up banner. Click Disable to clear the schedule, or turn the switch back on and click Save. Loading older email history. The initial lookback only applies to the first sync. To backfill older emails, go to Integrations, click View monitoring, and click Run now on the Salesforce email sync. Give it a date range to load.

9. Einstein Meetings

Ingest Einstein Conversation Insights calls from the Salesforce VideoCall object. Each call lands on the AI timeline of the account Einstein attached it to. The first run reads back only as far as Initial lookback (days), 7 days by default. Every run after that picks up only new or changed calls. To set up Einstein meeting sync:
  1. Turn on Enable Einstein Meeting Syncing.
  2. Set Initial lookback (days) if you want the first sync to reach back more than 7 days.
  3. Click Save at the bottom of the page.
  4. Pick a Sync schedule. Statisfy saves it immediately.
Both the switch and a schedule are needed. Either one alone syncs nothing. Because the switch and the schedule save at different moments, the section warns you about each half-finished state: Loading older meeting history. The initial lookback only applies to the first sync. To backfill older calls, go to Integrations, click View monitoring, and click Run now on the Einstein meeting sync. Give it a date range to load.

10. Advanced

Most teams never touch this section. It lets you restrict which fields sync for Accounts and Opportunities (“allowlists”), 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. An empty allowlist syncs every Account or Opportunity field. Fields the sync always keeps. An allowlist narrows what the sync pulls, but Statisfy still pulls the fields it needs to build your accounts and people:
  • Accounts: Id, Name, Website, and ParentId, plus the ARR field, renewal date field, and owner fields you set in ARR & Renewal and Owner Mapping. You don’t need to add these to the Account allowlist.
  • Contacts: Id, Name, and Email. Excluding these in the Contact settings has no effect.
Narrowing an allowlist doesn’t delete fields. When you remove a field from an allowlist, the sync stops pulling it. The sync doesn’t delete fields that still exist in Salesforce. Statisfy only removes a synced field when it no longer exists in Salesforce. Confirming allowlist changes. When you save an allowlist change that drops custom Salesforce fields (API names ending in __c or __r), Statisfy counts those fields per object and opens a Delete Salesforce fields? popup before saving:
  1. Review the field count for each object (Account, Opportunity, Contact).
  2. To save, type Confirm Deletion and click Confirm Deletion from Statisfy.
  3. To back out, click Cancel. Statisfy restores the saved allowlists and keeps your other unsaved edits.
Emptying an allowlist doesn’t open the popup. If Statisfy can’t count the fields, it shows Could not count the fields to delete. Click Save again to retry.

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 follow Sync frequency (section 2): by default a daily full sync. Support cases refresh daily unless you pick another schedule. (Details: your first sync.)
  • 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.
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.

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. See 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 to set this up.

Pushing meeting activities to Salesforce

Statisfy can push each meeting activity to Salesforce as an Event or a Task, with AI meeting insights mapped to fields you choose and, optionally, the meeting participants attached. An admin sets this up in Settings > Object Manager > Activity under Meeting Activity — see Meeting Activity Push to Salesforce for the full walkthrough.

Troubleshooting

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.
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.
  • 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.
  • 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.
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.
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.
Salesforce caps how many API calls your org can make over a rolling 24-hour window. Before a full sync, Statisfy checks your org’s usage:
  • At 90% or more of the limit, the sync continues and logs a warning.
  • At 100% of the limit, the sync waits 15 minutes and checks again. If the limit is still exhausted, the sync fails.
Salesforce doesn’t reset the limit at a fixed time, so retry later. To free up capacity, check which other apps use your org’s API calls in Salesforce Setup > Company Information (API Requests, Last 24 Hours). You can also reduce how often Statisfy syncs in Sync frequency.
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.
This error usually means that the Statisfy connected app is not installed in your org, and the user who connects does not have the Approve Uninstalled Connected Apps permission. Install the Statisfy package (Salesforce Integration Steps), or follow Approve the Statisfy connected app. If the error continues, contact support@statisfy.com with the full error message.
Two things have to be in place: Enable Email Syncing turned on and saved, and a saved Sync schedule in the Email section. If either is missing, nothing runs. If you see a Heads up banner, follow it. The first sync only reaches back as far as Initial lookback (days). For older emails, use Run now on the email sync in Integration Monitoring with a date range.
  • Check that Enable Einstein Meeting Syncing is on and saved, and that a Sync schedule is picked. Either one alone syncs nothing.
  • Read any Heads up banner in the Einstein Meetings section. It names which half is missing.
  • Statisfy only ingests calls stored in the Salesforce VideoCall object. Each call appears on the account Einstein attached it to.

FAQ

No. Connecting and configuring only reads from Salesforce. Writing back is a separate, deliberate setup — see the Bi-Directional Sync Guide.
A Statisfy admin who also has Salesforce admin access. No developers needed — everything happens in the settings page.
Yes, any time. Save, then click Run Sync Job to apply immediately. Accounts that no longer match your filter stop updating.
It depends on Sync frequency: partial updates every 2 hours to daily, a daily or weekly full sync, and with the native connection, real-time for the objects you tick. The first sync after connecting pulls recent history. Support cases, Chatter, email, and Einstein meetings follow their own schedules.
Email and Einstein meeting syncs run every 2 hours at most. Pick every 2, 4, 6, or 12 hours, or daily.
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.

Support

Still stuck? Email 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.