Skip to main content
Connecting your CRM is how Emanate learns who your customers are. Companies, contacts, deals and past meetings come across into Accounts and Contacts, so Ray is working from your real relationships instead of a blank slate. Find it under Integrations → CRM in the sidebar.

Supported CRMs

Other platforms are available on request. If yours is not listed, ask your Emanate contact. A workspace has one CRM connected at a time. If another CRM is connected today, disconnect it from the same page before connecting a new one.

Create the Emanate app in your Salesforce

Emanate signs in to Salesforce through an app that lives in your own Salesforce org, so your admin controls it and can revoke it at any time. Creating it takes about ten minutes and needs a System Administrator (or anyone with the Customize Application permission). Do this once, before connecting. The values your admin needs, all in one place:
1

Open External Client App Manager

In Salesforce, open Setup, type External Client App Manager in Quick Find, and choose New External Client App.
2

Name it

External Client App Name: Emanate. Contact Email: your own. Leave Distribution State as Local. The app only needs to work in this org.
3

Turn on OAuth

Expand API (Enable OAuth Settings) and tick Enable OAuth. Then:
  • Callback URL: https://app.emanate.ai/api/crm/salesforce/callback
  • OAuth Scopes, move these three into Selected OAuth Scopes:
    • Manage user data via APIs (api)
    • Perform requests at any time (refresh_token, offline_access)
    • Access the identity URL service (id, profile, email, address, phone)
  • Under Security, tick Require secret for Web Server Flow and Require secret for Refresh Token Flow. The PKCE, refresh token rotation and 30-day idle limit boxes are ticked and greyed out by Salesforce; Emanate works with all three.
Emanate uses the OAuth 2.0 web server flow with PKCE, which is available once OAuth is enabled. You do not need to enable the client credentials, device or authorization-code-and-credentials flows. Leave everything else at its default and choose Create.
4

Copy the keys

Salesforce opens the new app on its Policies tab. Switch to the Settings tab, expand OAuth Settings and choose Consumer Key and Secret. Salesforce emails you a verification code; enter it, then copy the Consumer Key and the Consumer Secret. You paste both into Emanate in the next section. Treat the secret like a password.
The keys belong to your org. If you ever rotate the secret in Salesforce, paste the new one into Emanate from the connection’s row menu under Update app keys. Your copied data stays as it is.

Connecting Salesforce

1

Open the CRM tab

Go to Integrations → CRM and choose Connect, then pick Salesforce.
2

Choose the org and paste the keys

Pick Production for your live Salesforce, or Sandbox for a test copy. A sandbox signs in through test.salesforce.com. Then paste the Consumer Key and Consumer Secret from the app you created above. The dialog also shows the callback URL and scopes, so your admin can check them against the app.
3

Choose what to bring over

Tick the kinds of record you want Emanate to read. The everyday ones are on already, and you can change your choices at any time afterwards. See What you can choose below.
4

Sign in to Salesforce

Choose Continue to Salesforce, sign in, and click Allow. Sign in as a user who can see the records you want Emanate to work with, because Emanate sees exactly what that user sees.
5

Let the first copy run

You land back in Emanate with the connection in the table. Emanate reads what your Salesforce publishes and starts the first full copy. Open the row to watch it progress, and leave the page whenever you like.
If this is the first time anyone connects Emanate to your Salesforce org, Salesforce may ask an administrator to approve the app first. Emanate tells you when that happens. Send the link on that screen to your admin, and connect again once they have approved it.

What you can choose

Emanate reads a copy of the records you tick and keeps that copy fresh. You choose the scope twice: once when you connect, and again any time afterwards under Objects in the connection panel. Unticking something stops it being read and removes it from the copy. Nothing else changes. Custom objects in your Salesforce are found when you connect and listed under Objects as well, each with how many fields it has. They start off. Tick the ones you want copied, and Ray can read them like anything else. Everything Emanate reads is read-only unless your team turns on a write-back switch (see Writing back to Salesforce).
Not sure which fields come across for a record type? In the connection panel, hover a badge under Publishes. It lists the Salesforce fields behind that record type and what each one is used for.

Salesforce permissions

This section covers what the connecting user needs. The app’s own settings, its callback URL, OAuth flow, scopes and keys, are under Create the Emanate app in your Salesforce above. Emanate reads through the Salesforce user who approves the connection, so that user’s visibility is Emanate’s visibility. Records they cannot see never reach Emanate. The connecting user needs: For the everyday set that is on by default, that means Read and View All on Accounts, Contacts, Leads, Opportunities, Products (for opportunity lines), Tasks, Events and Email Messages, plus Read on Users. Ticking Products, Price book entries, Campaigns, Cases or a custom object adds Read and View All on that object. Turning on a write-back switch adds Create and Edit on the objects that switch writes to: A System Administrator profile covers all of this. If you would rather not use one, a dedicated integration user with a permission set granting the rows above works just as well, and is easier to audit later.
Create a named integration user rather than connecting as a person. When someone leaves, their Salesforce account is usually deactivated, and a connection made under it stops working until someone reconnects.

What you see afterwards

Open the connection row on the Integrations page to see:
  • Connection: the Salesforce org, whether it is production or a sandbox, who connected it and when, and how much of your daily Salesforce API allowance Emanate has used today.
  • Publishes: each kind of record Emanate found, with how many rows it holds. Hover one to see the fields.
  • Objects: the switches from the picker, plus your custom objects. Change them whenever you like.
  • Write-back: the four switches for what Emanate may write into Salesforce. They start off.
  • Sync: the last run, live progress while a run is going, the nightly full check, and a Sync now button.
  • Data: a browser over the copied records, so you can check what Emanate sees.

How records are matched

Emanate is careful not to create a second copy of a customer you already have. Companies are matched in this order:
  1. The Salesforce record id, if this company has been imported before.
  2. The website domain, against a company in Emanate that is not yet linked to any CRM. This is what keeps a customer you imported from a spreadsheet or your ERP from turning into a duplicate.
  3. Otherwise a new company is created.
Contacts are matched the same way: Salesforce record id first, then email address within that company, then created new. Two rules protect what your team has already done:
  • Nothing filled in is overwritten. If a company in Emanate already has an address and Salesforce has a different one, yours stays. Imports only fill blanks.
  • Merged accounts are left alone. If you merged two accounts in Emanate, the Salesforce record that was absorbed is skipped rather than re-created.
Up to 25 contacts are brought onto each company’s record. Salesforce accounts sometimes carry hundreds of contacts from old form fills and list imports, and bringing all of them across would bury the few people who actually buy. The full set is still in the copy, so Ray can read them when you ask.

Sync behaviour

Salesforce into Emanate

Changes are picked up throughout the day, and a full check runs once a night at a time you choose in the Sync section (2:00 AM UTC until you change it). Click Sync now to run one immediately. Emanate reads in small batches, asks only for records that changed since the last check, and leaves a share of your daily Salesforce allowance untouched for your own users and other tools.

Writing back to Salesforce

Emanate never changes anything in Salesforce unless you turn on a write-back switch. Each switch writes only what it says, and can be turned off again at any time.

Reconnecting and disconnecting

If a Salesforce password changes, an administrator revokes the app, the app’s secret is rotated, or the connection sits unused for a long time, the row shows Sign-in expired. Choose Reconnect from the row menu, sign in again, and the copy carries on from where it stopped. Nothing is lost. If Emanate can no longer use the keys it holds, for example because the secret was rotated, the Reconnect dialog asks for the Consumer Key and Consumer Secret again. To change the keys without reconnecting, use Update app keys in the row menu. Disconnect signs Emanate out of Salesforce and removes its copy of your Salesforce records. Accounts, contacts and deals that were already created in Emanate stay, but they stop updating from Salesforce.

Troubleshooting

  • This happens the first time your org sees Emanate. Send the link on that screen to your Salesforce admin
  • Once they approve it in Setup, connect again from the Integrations page
  • Confirm the Consumer Key and Secret were pasted in full, with no spaces around them
  • Confirm the app’s callback URL is exactly https://app.emanate.ai/api/crm/salesforce/callback
  • If Reconnect keeps asking for keys, the secret Emanate holds no longer works. Paste the Consumer Key and Consumer Secret from the app again
  • A brand new app can take up to ten minutes to become usable in Salesforce. If the sign-in fails right after creating it, wait and try again
  • Confirm the connecting user has API Enabled and the permissions listed above
  • Confirm no other CRM is connected to this workspace
  • Confirm the Salesforce org is not already connected to a different Emanate workspace
  • Disconnect and reconnect from the Integrations page
  • Check the record type is ticked under Objects
  • Check the connecting user can see those records in Salesforce. Emanate sees what they see
  • A record type marked not in this org does not exist in your Salesforce, so there is nothing to read
  • The connecting user needs Read on Users, and Users needs to be ticked under Objects
  • Without it, owner ids cannot be resolved into names
  • Duplicates usually mean the website was missing on one of the records, since domain is the fallback match
  • Fill in the website in Salesforce and run Sync now

Questions people ask

Why do I have to create an app? Salesforce only lets an app sign in to the org that created it, unless the vendor publishes it through a managed package. An app in your own org is faster to set up, and it means your admin owns it, sees it under Setup, and can revoke it without asking us. Does Emanate see my password? No. You sign in on Salesforce’s own page, and Salesforce gives Emanate a key it can use on your behalf. You can revoke that key any time from Salesforce, or by disconnecting in Emanate. Will this use up our API limit? Emanate reads in small batches and only what changed, and keeps a share of your daily allowance in reserve. The connection panel shows how much it used today. Can two people in my company connect Salesforce? The connection belongs to your workspace, not to a person, so everyone shares one. The table shows who made it.

Next steps

Accounts

Where your imported companies land

Contacts

Where your imported people land

Lead enrichment

Fill the gaps your CRM left

Data privacy

How connected data is handled