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
Salesforce is one of two primary CRMs Statisfy supports (alongside HubSpot). The integration syncs accounts, contacts, opportunities, custom objects, and support cases into Statisfy on a configurable schedule, and the self-serve settings wizard lets admins control exactly what gets synced and how.Overview
The Salesforce integration provides:- Bi-directional sync of accounts (companies), contacts (people), and opportunities. See Salesforce Bi-Directional Sync for the upstream side.
- Custom object support — bring any number of additional Salesforce objects into Statisfy as related records.
- Owner field mapping — map any user lookup field to Statisfy’s owner types (Account Owner, CSM, TAM, etc.).
- ARR & Renewal date sources — point Statisfy at the right Salesforce fields, or compute them from a custom object aggregation.
- Support cases — pull Salesforce Cases as Statisfy support activities with sentiment and conversation tracking.
- Self-serve configuration — admins manage everything above from Integrations → Salesforce → Settings, with live SOQL preview, field pickers sourced from the tenant’s actual Salesforce schema, and per-version history.
Prerequisites
- Admin access to both Salesforce and Statisfy.
- The Statisfy managed package installed in your Salesforce org. If you’re connecting for the first time, follow Salesforce Integration Steps.
Connection
- Navigate to Integrations → Admin Apps → Salesforce → Connect in Statisfy.
- Sign in to Salesforce on the OAuth screen and approve the permissions.
- The Salesforce app appears as Connected in Statisfy.
- Open Integrations → Salesforce → Settings to configure what gets synced.
The settings wizard
The wizard has six accordion sections. Open each section, configure, and click Save Configuration. Saved versions are kept in history; admins can roll back via the Show JSON footer if needed.Account Filtering
Define which Salesforce accounts sync to Statisfy and what type each account is. Two modes:- Single filter — sync all matching accounts as
Customer. Provide one SOQLWHEREclause (e.g.Type = 'Customer'). - Typed filters — different SOQL clauses for
Customer,Prospect, andPartner. Accounts are classified by which filter they match first.
Owner Mapping
Map Salesforce user lookup fields to Statisfy owner types. Common mappings:| Salesforce Field | Statisfy Owner Type |
|---|---|
OwnerId | Account Owner |
CSM__c | CSM |
TAM__c | TAM |
Onboarding_Manager__c | Onboarding Manager |
User.
ARR & Renewal
Set how Statisfy computes each account’s ARR and renewal date. Three modes per metric:- None — don’t sync this metric.
- Direct field — point at a Salesforce field on the Account
(e.g.
AnnualRevenuefor ARR,Contract_End_Date__cfor renewal). - Custom field aggregation — compute the metric from a child
object (e.g. sum
Amountacross closed-won Opportunities, or take thelatestContract_End_Date__cacross active Contracts).
- Object — the Salesforce object to aggregate (
Opportunity,Contract, etc.). - Field — the value field to aggregate.
- Aggregation —
sum,max, orlatest. - Filter — optional SOQL
WHEREto scope the aggregation (e.g.IsClosed = true AND IsWon = true).
Custom Objects
Add any number of Salesforce custom objects to sync as related records on Statisfy accounts. For each:| Knob | What it does |
|---|---|
| Object name | The custom object API name (e.g. Account_Health__c). |
| Display name | Human label shown in the Statisfy UI. |
| Entity type | Account or Contact — what the object relates to. |
| Matching field | The lookup field on the custom object that points back to Account/Contact. |
| Filter (optional) | SOQL WHERE to scope which records are synced. |
| Whitelisted fields | Optional. When set, only these fields are pulled. |
Support Cases
Toggle on to pull Salesforce Cases as Statisfy support activities, with sentiment analysis and conversation threading.| Knob | What it does |
|---|---|
| Case filter | SOQL WHERE clause to scope which cases are pulled (e.g. Status != 'Closed' AND CreatedDate = LAST_N_DAYS:90). |
| Last N days | Cap the lookback window. |
| Conversation source | CaseComment (default) or EmailMessage — which child object to thread. |
| Whitelisted fields | Optional. Restrict which Case fields are stored. |
Advanced
Field-level allowlists and exclusions for power users:| Knob | Purpose |
|---|---|
| Account whitelisted fields | Only sync these fields from the Account object. |
| Opportunity whitelisted fields | Only sync these fields from Opportunity. |
| Contact additional fields | Map extra Contact fields into Statisfy custom fields. |
| Contact exclude fields | Drop these Contact fields from the sync. |
Job status & manual runs
The wizard’s Sync Job card at the top of the page shows the latest bootstrap / periodic Salesforce job with its status (Running / Completed / Failed) and timestamps. Click Run Sync Job to fire a job on demand without waiting for the scheduler.Configuration history
Every save creates a new version inintegration_config. The wizard
header badge shows the current source: Database (vN) when the
admin has saved at least once, Default (Code) when running the
code-side fallback, and Not Configured when neither is set.
To roll back: contact support@statisfy.com
— version history is preserved and can be activated by support.
Bi-directional sync
For pushing Statisfy fields back to Salesforce (e.g. computed health scores, AI-generated risk flags, owner re-assignments), see the dedicated Salesforce Bi-Directional Sync Guide.Troubleshooting
Save fails with 'SOQL validation failed'
Save fails with 'SOQL validation failed'
The filter you entered doesn’t compile against your tenant’s
Salesforce schema. Check field API names (case-sensitive),
unbalanced parens, or referencing fields that don’t exist on the
target object. The wizard’s preview action runs the same query and
returns specific error text from Salesforce.
ARR / renewal date is wrong on a customer
ARR / renewal date is wrong on a customer
Open the Account in Statisfy and check Source:
- If sourced from a direct field, verify the Salesforce Account row has the expected value in the configured field.
- If sourced from a custom field aggregation, run Preview aggregation in the wizard against the same account to confirm the aggregation logic is correct.
A custom object isn't appearing on accounts
A custom object isn't appearing on accounts
- Confirm the custom object is added in the wizard’s Custom Objects section and saved.
- Verify the matching field on the custom object actually contains a reference to the Account ID for the records you expect.
- Check the optional filter — too restrictive a SOQL
WHEREwill silently exclude records. - Run the bootstrap job (Run Sync Job button) — newly added custom objects only ingest on the next pull cycle.
Support cases are missing or stale
Support cases are missing or stale
- Confirm the Support Cases section is enabled.
- Check the Case filter — if it includes a date range, cases outside the range won’t sync.
- Verify the Statisfy package has read access to
Case,CaseComment, andEmailMessagein your Salesforce org.
Sync ran 'completed' but no data shows
Sync ran 'completed' but no data shows
Check the job’s sync_message in the audit table — completed-with-zero-rows
is reported there. Common causes: account filter too narrow, package not
installed in the right org, or the connected user lacks read permission on
the object.