Salesforce Integration
Connect Salesforce as your CRM and keep accounts, contacts, opportunities, and support cases flowing into Statisfy automatically — no engineering help required.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
VideoCallobject 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.
Prerequisites
- Admin access in Statisfy — only admins see integration settings.
- 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.
- 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.
Approve the Statisfy connected app
If the Statisfy connected app is not installed in your org, Connect fails withOAUTH_APPROVAL_ERROR_GENERIC. The user who connects must have the Approve Uninstalled Connected Apps permission. Do these steps once:
- In Salesforce, give the user who connects the Approve Uninstalled Connected Apps permission. A permission set is the easiest way.
- In Statisfy, connect Salesforce as that user. Follow Step 1 — Connect below.
- In Salesforce Setup, open Connected Apps OAuth Usage. Find the Statisfy app and click Install.
- 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.
- Remove the Approve Uninstalled Connected Apps permission from the user. Keep the profile or permission set from step 4.
- Installing the app can revoke the token from step 2. If the Salesforce card no longer shows Connected, connect again.
Step 1 — Connect
- In Statisfy, go to Integrations → Admin Apps and find the Salesforce card.
- Click Connect. A Salesforce sign-in window opens.
- Sign in with your Salesforce admin account and click Allow.
- The card now shows Connected. Click Settings on the card to configure what syncs.
- 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.
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).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.
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.
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.
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.
- 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.
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.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.
- 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.
- 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.
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: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.
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.- Turn on Enable Email Syncing.
- Set Initial lookback (days) if you want the first sync to reach back more than 7 days.
- Click Save at the bottom of the page.
- Pick a Sync schedule. Statisfy saves it immediately.
9. Einstein Meetings
Ingest Einstein Conversation Insights calls from the SalesforceVideoCall 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.
- Turn on Enable Einstein Meeting Syncing.
- Set Initial lookback (days) if you want the first sync to reach back more than 7 days.
- Click Save at the bottom of the page.
- Pick a Sync schedule. Statisfy saves it immediately.
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, andParentId, 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, andEmail. Excluding these in the Contact settings has no effect.
__c or __r), Statisfy counts those fields per object and opens a Delete Salesforce fields? popup before saving:
- Review the field count for each object (Account, Opportunity, Contact).
- To save, type
Confirm Deletionand click Confirm Deletion from Statisfy. - To back out, click Cancel. Statisfy restores the saved allowlists and keeps your other unsaved edits.
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.
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
Saving fails with 'SOQL validation failed'
Saving fails with 'SOQL validation failed'
ARR or renewal date looks wrong on an account
ARR or renewal date looks wrong on an account
- 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.
A custom object isn't showing on accounts
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.
Support cases are missing or out of date
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.
Chatter posts aren't appearing
Chatter posts aren't appearing
The sync says 'completed' but no data appears
The sync says 'completed' but no data appears
The full sync waits or fails at the Salesforce daily API limit
The full sync waits or fails at the Salesforce daily API limit
- 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.
Connect fails with OAUTH_APPROVAL_ERROR_GENERIC
Connect fails with OAUTH_APPROVAL_ERROR_GENERIC
Einstein Activity Capture emails aren't appearing
Einstein Activity Capture emails aren't appearing
Einstein meetings aren't appearing
Einstein meetings aren't appearing
- 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
VideoCallobject. Each call appears on the account Einstein attached it to.
FAQ
Will connecting change anything in Salesforce?
Will connecting change anything in Salesforce?
Who can set this up?
Who can set this up?
Can I change my filters after the first sync?
Can I change my filters after the first sync?
How fresh is the data?
How fresh is the data?
Why can't I sync emails every hour?
Why can't I sync emails every hour?
How do I disconnect?
How do I disconnect?