Skip to content

Reference

Salesforce

Set up Salesforce OAuth for CRM and sales automation

Connect your users to Salesforce for CRM data, opportunity management, contact records, and sales automation.

PropertyValue
Provider IDsalesforce
CategoryCRM
PKCESupported (configurable; recommended)
Token refreshAutomatic
Redirect URIShown in Developer Portal

Step 1: Create a Salesforce External Client App

Section titled “Step 1: Create a Salesforce External Client App”

Log into your Salesforce org

Navigate to login.salesforce.com and sign in.

Open External Client App Manager

Go to Setup. In the Quick Find box, search for External Client App Manager and open it. Click New External Client App.

Enter basic information

Fill in:

  • External Client App Name and API Name (auto-populated)
  • Contact Email
  • Distribution State — Local for single-org use, Packaged for distribution across orgs

Enable OAuth settings

Enable OAuth Settings and add the Alter callback URL from the Developer Portal to the Callback URL field. Select the OAuth scopes the application needs (e.g., api, and refresh_token to enable refresh tokens).

Configure OAuth policies

After creating the app, open the Policies tab and click Edit. In the OAuth Policies section, enable the OAuth flows the application will use (Authorization Code is required for the standard web flow) and save.

Get credentials

Open SettingsOAuth Settings to copy the Consumer Key (Client ID) and Consumer Secret (Client Secret). Salesforce may require email verification before revealing the secret.

Open the Developer Portal

Go to portal.alterauth.com and navigate to the application.

Add Salesforce provider

Go to OAuth Providers > Add Provider > Salesforce.

Enter credentials

  • Client ID: Paste your Salesforce Consumer Key
  • Client Secret: Paste your Salesforce Consumer Secret

Select scopes

Choose the scopes the application needs.

Save

Click Save. The provider is now active.

ScopeDescription
apiAccess to Salesforce REST API
refresh_tokenObtain a refresh token for offline access
fullFull access to all Salesforce data
idAccess to user identity information
chatter_apiAccess to Chatter feeds and groups
webAccess via a web browser session
ScopeDescription
cdp_apiAccess all Salesforce Data Cloud (CDP) APIs
cdp_calculated_insight_apiAccess the Data Cloud Calculated Insights API
cdp_identityresolution_apiAccess the Data Cloud Identity Resolution API
cdp_ingest_apiAccess the Data Cloud Ingestion API
cdp_profile_apiAccess the Data Cloud Profile API
cdp_query_apiAccess the Data Cloud Query API
cdp_segment_apiAccess the Data Cloud Segmentation API
chatbot_apiAccess Einstein Bots API services
contentAccess Salesforce CRM Content and Files resources
custom_permissionsReturn the custom permissions the user has in the connected app
data_cloud_user_claimsReturn Data Cloud user claims in the token response
eclair_apiAccess the Salesforce Analytics (Eclair) geodata API
einstein_gpt_apiAccess the Salesforce Einstein / models (Einstein GPT) API
forgot_passwordAccess the headless Forgot Password API
interaction_apiAccess the Salesforce Interaction (flow orchestration) API
lightningAccess Lightning Experience and Lightning apps
mcp_apiAccess the Salesforce MCP (Model Context Protocol) API
pardot_apiAccess the Marketing Cloud Account Engagement (Pardot) API
pwdless_login_apiAccess the headless Passwordless Login API
scrt_apiAccess the Salesforce Service Cloud real-time Messaging (SCRT) API
sfap_apiAccess the Einstein AI platform APIs (Models, Agent)
user_registration_apiAccess the headless User Registration API
visualforceAccess customer-created Visualforce pages
wave_apiAccess the Salesforce CRM Analytics (Tableau CRM/Wave) REST API

Alter policy rules can target these attested operations and families for operation-level and parameter-aware controls.

Operation IDFamiliesMethodProvider path
bulk/jobs/createwritePOST/services/data/v59.0/jobs/ingest
bulk/jobs/getreadGET/services/data/v59.0/jobs/ingest/{jobId}
compositedelete, read, writePOST/services/data/v59.0/composite
composite/batchdelete, read, writePOST/services/data/v59.0/composite/batch
composite/treewritePOST/services/data/v59.0/composite/tree/{sObject}
limits/getreadGET/services/data/v59.0/limits
oauth/userinforeadGET/services/oauth2/userinfo
queryreadGET/services/data/v59.0/query
query-allreadGET/services/data/v59.0/queryAll
recent/listreadGET/services/data/v59.0/recent
searchreadGET/services/data/v59.0/search
sobjects/createwritePOST/services/data/v59.0/sobjects/{sObject}
sobjects/deletedeleteDELETE/services/data/v59.0/sobjects/{sObject}/{id}
sobjects/describereadGET/services/data/v59.0/sobjects/{sObject}/describe
sobjects/getreadGET/services/data/v59.0/sobjects/{sObject}/{id}
sobjects/listreadGET/services/data/v59.0/sobjects
sobjects/updatewritePATCH/services/data/v59.0/sobjects/{sObject}/{id}
versions/listreadGET/services/data

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.