Salesforce setup
SelectZero supports a custom integration with Salesforce using its own API
Creating Salesforce user
Creating profile
We need to create a profile with specific access scopes, so SelectZero can only see specific objects with read-only rights
Under Salesforce "Setup" navigate to Users -> Profiles
Clone a standard profile, such as "Standard Platform User"
Under section "Standard Object Permissions" choose the objects you want to access (Give them "Read" rights)
Save profile
Creating integration user
Under your Salesforce application, go to "Setup" in the top right corner (Must have administrator rights)
Under left side menu go to Users -> Users
Create "New User"
Fill in details
Last name - Give it a name that reflects it's used for SelectZero integration (for example selectzero)
Email - Use an email you have access to
User License - Salesforce Integration
Profile - Profile created in previous step
Creating External Client App
Navigate to Apps -> External Client Apps -> External Client App Manager
Press "New External Client App" from top right corner
Create new app
External Client App Name - A name for SelectZero integration
Contact email - Integration owner email
Distribution State - Local
Enable OAuth
Callback URL - https://localhost/oauth/callback (we won't use it, but it's needed)
OAuth Scopes
Manage user data via APIs (api)
Perform requests at any time (refresh_token, offline_access)
Open the created external app
Under "Policies" tab press edit
Under OAuth Policies
Permitted Users - Admin approved users are pre-authorized
Available Profiles - Minimum Access - API Only Integrations
Available Permissions Sets - External Client App Access
Finding External Client App Customer id
Navigate to Apps -> External Client Apps -> External Client App Manager
Open the app you created
Under "Settings" tab open "OAuth Settings"
Press "Consumer Key and Secret" button
This will take you to a page with "Consumer Key" which will be used for SelectZero connection
Creating Salesforce connection
From connections page add a new Salesforce connection
Server - Salesforce URL (Can be found in Salesforce Company Settings -> My Domain)
User - User created in step Creating Salesforce SelectZero user
Client id - Consumer Key from Salesforce
After connection is added, certificate key pair is automatically generated
Download connection public certificate from connection view
Adding certificate to Salesforce
Navigate to Apps -> External Client Apps -> External Client App Manager
Open the app you created
Under "Settings" press "Edit" button
Under "OAuth Settings" find "Flow Enablement"
Enable "Enable JWT Bearer Flow" and upload the certificate from previous step