Salesforce is an organization-wide CRM integration. A Doris admin connects it from Sources > CRM > Salesforce.
Before you start
You need two things before opening the Doris connection flow:- A Doris admin account for your workspace
- A Salesforce user who can create an External Client App and authorize API access for the org
- API access enabled
- Read access to User, Account, Contact, and Opportunity
- Read access to opportunity stages, owners, and standard opportunity fields
- Write access to Account, Contact, and Opportunity if Doris will update CRM fields
- Create access to Task if Doris will write notes or follow-up records back to Salesforce
1. Create the Salesforce app
Salesforce requires your organization to create its own External Client App before Doris can run OAuth.Create an External Client App
Create a new app for Doris and enable OAuth. Doris uses the OAuth authorization-code flow with PKCE.
Add OAuth scopes
Add the Salesforce OAuth scopes Doris needs:
| Scope | Why Doris needs it |
|---|---|
api | Read and write CRM records through the Salesforce API |
refresh_token / offline_access | Keep the connection active without requiring a new login every session |
id | Identify the Salesforce org and user that authorized the connection |
2. Connect from Doris
After the Salesforce app exists, complete the connection in Doris.Enter app credentials
Paste the Salesforce Consumer Key and Consumer Secret from the External Client App, then click Save & Connect.
Authorize in Salesforce
Salesforce opens in a new authorization flow. Sign in as the Salesforce integration user and approve the requested access.
3. Select reps and import
The Salesforce source has three setup sections in Doris:| Section | What to do |
|---|---|
| Connection | Save the Connected App credentials and authorize Salesforce |
| Tracked Reps | Choose which Salesforce users Doris should track; leave empty to sync all reps |
| Import | Click Import Data to bring Salesforce records into Doris |
What syncs
| Salesforce | Doris |
|---|---|
| Accounts | Companies |
| Contacts | People |
| Opportunities | Deals |
| Users / owners | Rep ownership and filtering |
| Opportunity stages | Deal stages and pipeline structure |
Troubleshooting
Doris says Connected App credentials are missing
Doris says Connected App credentials are missing
Open Sources > CRM > Salesforce, click Connect, and paste the Consumer Key and Consumer Secret from the Salesforce External Client App. Salesforce cannot be connected without customer-owned app credentials.
Salesforce rejects the callback URL
Salesforce rejects the callback URL
Confirm the callback URL in Salesforce exactly matches
https://server.meetdoris.com/api/v1/crm/salesforce/callback. Extra slashes, missing https, or an old API domain will cause OAuth to fail.Records are missing after import
Records are missing after import
Check the Salesforce integration user’s object permissions and field-level security. Doris can only sync records and fields visible to the user who authorized the integration.
Another CRM is already connected
Another CRM is already connected
Doris supports one primary CRM connection at a time. Disconnect the existing CRM source before connecting Salesforce.