Knowledge base

Live CRM sync

Set up live sync with Salesforce

Connect Salesforce via OAuth to stream closed-lost opportunities into Thawly. Bulk-API path for large orgs, sandbox-aware.

Set up live sync with Salesforce

Salesforce live sync replaces the manual closed-lost report export with a continuous background pull from your Salesforce org, so lost opportunities show up in Thawly automatically.

What live sync does

  • Thawly watches your Salesforce org for new and updated closed-lost opportunities (IsClosed = true AND IsWon = false) across every record type you give it access to.
  • Lost opportunities you mark in Salesforce appear in Thawly automatically — no re-running of Advanced Find, no CSV ping-pong.
  • Re-engagement signals fire when one of your monitored companies' UK public-data triggers lines up with a closed-lost opportunity in your Salesforce org.

What data Thawly reads

Read-only access by default. The Salesforce OAuth consent screen will show the following scopes:

  • api — read access to the REST and SOQL APIs (Opportunity, Account, OpportunityContactRole, ContentNote).
  • refresh_token — required so Thawly can keep syncing without you re-authenticating every hour.
  • offline_access — alias for refresh_token retained for backward compatibility with older Connected App configurations.

Through that api scope Thawly only queries:

  • Opportunity — name, amount, close date, stage, IsClosed/IsWon, and LossReason__c if you've defined one.
  • Account — name + website only.
  • OpportunityContactRole → primary contact's Title only (no name, no email, no phone).
  • ContentNote → the most recent note body, fetched via ContentDocumentLink join.

Thawly never sees contact-level personal data — no email addresses, no phone numbers, no contact names. Only job title and company-level opportunity context.

What Thawly never does

  • Never writes back to your Salesforce org unless you explicitly opt in to the optional activity write-back feature (default off).
  • Never deletes records.
  • Never reads internal notes, files, or private contact data beyond the scopes listed above.
  • Never modifies stages, owners, amounts, or close dates.

Set up

Click below to connect. You'll be redirected to Salesforce's sign-in page (production or sandbox, depending on your environment configuration), then asked to grant Thawly the read-only permissions listed above. After approval, you're back in Thawly with sync active.

Connect Salesforce →

Or follow these manual steps if you prefer:

  1. In Thawly, open Settings → Integrations.
  2. On the Salesforce card, click Connect with OAuth.
  3. Sign in to the Salesforce org that owns your sales pipeline (a System Administrator seat is required for the first connection so the Connected App can request its scopes).
  4. Review the permissions screen. Tick Allow.
  5. You'll be returned to Thawly with a green "Connected" pill on the Salesforce card. The first sync runs immediately. For orgs with more than 2,000 opportunities the sync engine switches to the Bulk API automatically.

Using a sandbox? Set SALESFORCE_LOGIN_HOST=https://test.salesforce.com before clicking Connect — see your support contact for sandbox enablement.

If you'd rather skip OAuth and do a one-off CSV export instead, the manual route still works: Migrate from Salesforce.

After setup

  • Sync runs every 15 minutes in the background.
  • See sync status, last-sync time, and total opportunities imported on the integrations page.
  • Disconnect any time from Settings → Integrations — revokes the OAuth token and stops all future syncs. Already-imported opportunities stay in Thawly.
  • If your Salesforce admin rotates the Connected App secret or revokes the token, the card flips to a red "Reconnect" state and you'll get an in-app banner. Sync resumes the moment you reconnect.