Skip to main content

Salesforce integration - customer data sync

Sync Salesforce Accounts, Contacts, and Leads into Harvestr to measure the business impact of every discovery.

Written by Marina Salmon

Sync your Salesforce Accounts, Contacts, and Leads into Harvestr so you can measure the business impact of every discovery — ARR, churn risk, plan tier, whatever your CRM tracks. When Sales, CS, or Support submit feedback for a customer, Harvestr already knows who they are and how much they matter.

How the sync works

The Salesforce customer data sync is a one-way, scheduled connection from Salesforce to Harvestr. Two things worth understanding before you set it up.

It's an enrichment layer, not a full CRM import

Harvestr does not import your entire Salesforce Accounts and Contacts database. Instead, for each customer or company that already exists in Harvestr (created manually, imported from another source, or sent alongside feedback from Salesforce, Zendesk, Slack, or any other integration), Harvestr looks for a match in Salesforce and syncs the attributes you selected.

If a Harvestr customer has no match in Salesforce, nothing is imported for them. And Salesforce records that don't match any Harvestr customer are ignored.

Synced customer limits by plan

The number of customers (users and companies combined) that can carry Salesforce-synced attributes depends on your Harvestr plan:

Plan

Synced customers

Core

Up to 1,000

Scale

Up to 5,000

Elite

Higher — contact us

If you're near or above your plan's limit, contact us to upgrade.

Prerequisites

  • A Salesforce account with permissions to create Connected Apps, and read access to the records and metadata you want to sync.

  • A Harvestr Editor account on a Core, Scale, or Elite subscription.

Create a Harvestr Connected App in Salesforce

  1. Open the Setup settings in Salesforce.

  2. From Setup, enter External Client Apps in the Quick Find box and select External Client App Settings. Turn on Allow creation of connected apps.

  3. Click New Connected App.

  4. Give a name to your integration in the Connected App Name field.

  5. Enter your Contact Email.

  6. Check Enable OAuth Settings.

  7. In Callback URL, paste: https://api.harvestr.io/authorize/salesforce/callback

  8. In Selected OAuth Scopes, add these three scopes:

    • Manage user data via APIs (api)

    • Manage user data via Web browsers (web)

    • Perform requests at any time (refresh_token, offline_access)

  9. Untick this option:

  10. Leave the rest as default and click Save.

  11. Wait 10 minutes for the changes to propagate in Salesforce before continuing.

  12. In the left sidebar, under Platform Tools, expand Apps and click Manage Connected Apps. Click your newly created connected app. You should see a page like this:

    If not, go to the App Manager section of your Setup settings instead of Manage Connected Apps. Find your app, click the dropdown arrow on the right of the row, and click View.

  13. Under API (Enable OAuth Settings), copy your Consumer Key and your Consumer Secret. If you don't see them directly on this page, click Manage consumer details to reveal them.

That's it for Salesforce. The rest of the setup happens in Harvestr.

Set up the sync in Harvestr

  1. Open the Customer synchronization tab and click Create connection.

  2. In the connection dialog:

    • enter your Consumer Key and Consumer Secret from Salesforce

    • tick Is sandbox if you're connecting to a Salesforce sandbox

    • enter a Replication start date

  3. Click Save and enter your Salesforce admin credentials in the OAuth window that opens.

What is the replication start date? It's a filter that tells the sync which Salesforce records to consider. Any record whose last update in Salesforce is older than this date is ignored. We recommend setting it to about a year back — usually enough for active customers, small enough to skip stale records. You can broaden the range later if you notice missing records.

Match customer records

For each Salesforce object you sync, you decide how Harvestr should match it against your existing customers:

Salesforce object

Harvestr object

Match by

Account

Company

Name (not case sensitive) or a custom unique ID (case sensitive)

Contact

User

Email (not case sensitive) or a custom unique ID (case sensitive)

Lead

User

Email (not case sensitive) or a custom unique ID (case sensitive)

Use a custom unique ID when your Salesforce data contains multiple records with the same name (for Accounts) or the same email (for Contacts and Leads). That prevents Harvestr from picking the wrong match.

Heads up if you use custom IDs. The custom ID is imported with the customer only when feedback comes from Salesforce. If the same customer is later matched via feedback from another integration (Zendesk, Slack, and so on), Harvestr falls back to email or name matching. In workspaces with duplicate emails or company names, this may associate feedback with the wrong customer.

Choose which attributes to sync

For each Salesforce object, click Add attributes to pick which fields to bring into Harvestr.

If you create a new attribute in Salesforce after connecting Harvestr, it won't appear in the list right away. Contact our support team and we'll refresh the list for you.

Make Salesforce users and companies searchable when assigning feedback

When enabled, you can search across all your Salesforce Accounts and Contacts when assigning feedback to customers in the Harvestr inbox or the Chrome extension. Salesforce-only results appear with the Salesforce logo next to their names.

Automatically associate users with their companies from Salesforce

When enabled, Harvestr uses Salesforce as a source of truth to associate users with companies automatically. Only users who don't already have a company in Harvestr are associated this way — existing associations are never overwritten.

Example flow:

  • You create user A in Harvestr without associating them with any company.

  • User A belongs to company B in Salesforce.

  • Harvestr associates user A with company B automatically.

  • If company B doesn't already exist in Harvestr, it's created automatically.

Manage your sync connection

From the Salesforce integration settings, in the Customer synchronization tab, click Edit connection configuration to open the connection dialog. From there you can:

  • update the Consumer Key or Consumer Secret if you rotated them in Salesforce

  • toggle the Is sandbox setting

  • change the Replication start date to broaden or narrow the range of Salesforce records considered by the sync

To trigger a sync manually without waiting for the next scheduled run, click Sync now on the integration page.

To add or remove synced attributes for an existing connection, contact support — we'll refresh the attribute list so you can pick the new ones.

Uninstall the sync connection

To stop the sync entirely:

  1. Open the Customer synchronization tab and click Edit connection configuration.

  2. Click Delete this connection at the bottom of the dialog.

  3. Confirm.

Attributes that were already synced remain on your customer records but stop updating. To re-enable the sync later, follow the "Set up the sync in Harvestr" steps above — your existing Connected App in Salesforce can be reused.

Leveraging Salesforce customer data to prioritize discoveries

After the first sync completes, the attributes you chose appear on the corresponding customer profiles in Harvestr.

These attributes power customer attribute aggregation fields, which let you measure the business impact of your discoveries and prioritize them accordingly.

You'll be able to answer questions like:

  • How much ARR do all customers linked to this discovery represent?

  • How many users would be impacted by shipping this discovery?

  • How many churned customers had asked for this?

  • What's the average deal size of accounts requesting this feature?

FAQ

Why don't I see a new Salesforce attribute in the sync configuration?

If you added or renamed an attribute in Salesforce after setting up the sync, Harvestr's attribute list doesn't refresh automatically. Contact our support team and we'll refresh it for you.

Why aren't all my Salesforce records showing up in Harvestr?

Three common reasons:

  • Replication start date: any Salesforce record whose last update is older than the date you set is ignored. Broaden the range if needed.

  • No matching Harvestr customer: the sync only enriches customers that already exist in Harvestr. Salesforce records without a matching customer are ignored on purpose.

  • Plan limit: check whether you've hit your plan's synced-customer cap (see Synced customer limits by plan).

Can I sync more customers than my plan allows?

Not without upgrading. If you're at your Core (1,000) or Scale (5,000) limit and need more, contact us to upgrade.

Related

Did this answer your question?