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.
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).
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.
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:- The Salesforce record id, if this company has been imported before.
- 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.
- Otherwise a new company is created.
- 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
Salesforce says an administrator needs to approve the app
Salesforce says an administrator needs to approve the app
- 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
Connection failed
Connection failed
- 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
Some records are missing
Some records are missing
- 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
Owner names show as blank
Owner names show as blank
- The connecting user needs Read on Users, and Users needs to be ticked under Objects
- Without it, owner ids cannot be resolved into names
Duplicate companies appeared
Duplicate companies appeared
- 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