{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-agen-for-work/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["Notification","LightboxImage"]},"type":"markdown"},"seo":{"title":"Salesforce integration","siteUrl":"https://developers.frontegg.com/","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"salesforce-integration","__idx":0},"children":["Salesforce integration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Salesforce is a customer relationship management (CRM) platform that lets sales, service, and marketing teams manage accounts, contacts, leads, opportunities, cases, tasks, and events in a single system of record. Integrating Salesforce with Frontegg lets your application read and write CRM records (Accounts, Contacts, Leads, Opportunities, Cases, Tasks, Events), run SOQL queries and SOSL searches, upsert records by external ID, and execute composite multi-step requests against the Salesforce REST API on behalf of an authenticated user."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integration uses the OAuth 2.0 ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Web Server"]}," flow against ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["login.salesforce.com"]},", with offline access for refresh tokens. You provide a Client ID, Client Secret, and your Salesforce ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["MyDomain"]}," in the Frontegg portal — the MyDomain is used to address the org-specific REST API host (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://{your-mydomain}.my.salesforce.com"]},")."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Prerequisites","type":"attention"},"children":[{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A Salesforce org with admin permissions to create External Client Apps (Developer Edition, Enterprise, Unlimited, or Performance Edition)."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The user creating the app must have the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customize Application"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Manage Connected Apps"]}," permissions."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"connect-salesforce","__idx":1},"children":["Connect Salesforce"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-1-find-your-salesforce-mydomain","__idx":2},"children":["Step 1: Find your Salesforce MyDomain"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Sign in to Salesforce, open ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Setup"]},", and in the left sidebar navigate to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Company Settings → My Domain"]},". Copy the value shown under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Domain Name"]}," — this is the subdomain prefix of your org URL (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acme"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://acme.my.salesforce.com"]},")."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You will paste this value into the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Salesforce MyDomain"]}," field in the Frontegg portal."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-1.6b99ef08ce769fc15c277e2291df68e4be6b845c81782f57033e2f6fbac44d93.1ce25488.png","alt":"Salesforce My Domain settings"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Developer Edition orgs","type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you are using a free Developer Edition org, your MyDomain typically includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".develop"]}," — for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acme.develop"]}," from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://acme.develop.my.salesforce.com"]},". Use the full subdomain prefix shown under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["My Domain Name"]},", including ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":[".develop"]}," if present."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-2-open-the-external-client-app-manager","__idx":3},"children":["Step 2: Open the External Client App Manager"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In Setup, open ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Apps → App Manager"]},". In the top-right corner, click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["New External Client App"]},"."]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-2.4ac160cc527d69d138d5ad4244aa9b3ab839f793d93dc40ace10579c7f329e65.1ce25488.png","alt":"Salesforce App Manager with New External Client App button"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-3-fill-in-the-basic-information","__idx":4},"children":["Step 3: Fill in the basic information"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Basic Information"]}," section, enter:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["External Client App Name"]}," — a descriptive name, for example ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Frontegg Integration"]},". The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API Name"]}," is generated automatically."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Contact Email"]}," — an email address that Salesforce will associate with this app."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Leave ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Distribution State"]}," as ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Local"]},"."]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-3.60e3b5ca32a4d4cf8ac28c055ddb8369a59143811c14f492273280393a8e68c2.1ce25488.png","alt":"Basic information form for the new External Client App"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-4-enable-oauth-and-set-the-callback-url","__idx":5},"children":["Step 4: Enable OAuth and set the callback URL"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Expand the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["API (Enable OAuth Settings)"]}," section and check ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Enable OAuth"]},". Then enter your Frontegg Redirect URL in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Callback URL"]}," field:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["https://YOUR_MCP_GATEWAY_URL/integration-callback"]}]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-4.b5a9832388345cc5ba4fae9c463e592d0c643285dee8c4d59788f97f62c7e556.1ce25488.png","alt":"Enable OAuth and Callback URL field"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-5-select-oauth-scopes","__idx":6},"children":["Step 5: Select OAuth scopes"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth Scopes"]}," dual list, move the following three scopes from ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Available OAuth Scopes"]}," to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Selected OAuth Scopes"]}," (select each scope and click the right-arrow button):"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Scope"},"children":["Scope"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Access the identity URL service (id, profile, email, address, phone)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Identifies the authenticated user and exposes the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["id"]}," claim used by Frontegg."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Manage user data via APIs (api)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Grants read/write access to the Salesforce REST API for all integration tools (Accounts, Contacts, Leads, Opportunities, Cases, Tasks, Events, queries, composite)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Perform requests at any time (refresh_token, offline_access)"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Issues a refresh token so Frontegg can keep the integration connected without re-prompting the user."]}]}]}]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-5.ada82433aee4c456c56ec956065742844ebab6cc001443aa842ecbdbecfef6e0.1ce25488.png","alt":"Selected OAuth scopes"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Web Server flow with PKCE","type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Salesforce enables ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Require secret for Web Server Flow"]},", ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Require secret for Refresh Token Flow"]},", and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Require Proof Key for Code Exchange (PKCE)"]}," by default. Leave these settings as-is — the Frontegg integration uses the standard OAuth 2.0 Web Server flow with PKCE."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"step-6-create-the-app-and-copy-credentials","__idx":7},"children":["Step 6: Create the app and copy credentials"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Create"]}," at the bottom of the form. Salesforce takes you to the app detail page."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings"]}," tab, expand ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["OAuth Settings"]},", and click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Key and Secret"]},". Salesforce may ask you to verify your identity by entering a code emailed to your account address."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["After verification, the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Details"]}," page displays:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Key"]}," — paste this into the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," field in the Frontegg portal."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Secret"]}," — paste this into the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," field in the Frontegg portal."]}]},{"$$mdtype":"Tag","name":"LightboxImage","attributes":{"isLightbox":true},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/salesforce-6.9bc51a03e10d13e32741aa8cf4c5ae3aa579576e5a45de6334ffa7726381f012.1ce25488.png","alt":"Salesforce Consumer Key and Consumer Secret"},"children":[]}]}]},{"$$mdtype":"Tag","name":"Notification","attributes":{"title":"Keep your credentials secure","type":"attention"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Treat the Consumer Secret as a password. Never share it or commit it to version control."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"configure-the-frontegg-portal","__idx":8},"children":["Configure the Frontegg portal"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Open the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Frontegg portal"]}," and navigate to [ENVIRONMENT] → Integrations → Salesforce, then enter:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client ID"]}," — the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Key"]}," value from the previous step."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Client Secret"]}," — the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Consumer Secret"]}," value from the previous step."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Salesforce MyDomain"]}," — the subdomain you copied earlier (for example, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["acme"]},")."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Select the required ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["scopes"]},"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"additional-resources","__idx":9},"children":["Additional resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_what_is_rest_api.htm"},"children":["Salesforce REST API Developer Guide"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://help.salesforce.com/s/articleView?id=sf.remoteaccess_oauth_web_server_flow.htm"},"children":["Salesforce OAuth 2.0 Web Server Flow"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://help.salesforce.com/s/articleView?id=xcloud.external_client_apps_overview.htm"},"children":["Configure an External Client App for OAuth"]}]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/agen-for-work/connectors/redirect-url"},"children":["How to get your Redirect URL"]}]}]}]}]},"headings":[{"value":"Salesforce integration","id":"salesforce-integration","depth":2},{"value":"Connect Salesforce","id":"connect-salesforce","depth":3},{"value":"Step 1: Find your Salesforce MyDomain","id":"step-1-find-your-salesforce-mydomain","depth":4},{"value":"Step 2: Open the External Client App Manager","id":"step-2-open-the-external-client-app-manager","depth":4},{"value":"Step 3: Fill in the basic information","id":"step-3-fill-in-the-basic-information","depth":4},{"value":"Step 4: Enable OAuth and set the callback URL","id":"step-4-enable-oauth-and-set-the-callback-url","depth":4},{"value":"Step 5: Select OAuth scopes","id":"step-5-select-oauth-scopes","depth":4},{"value":"Step 6: Create the app and copy credentials","id":"step-6-create-the-app-and-copy-credentials","depth":4},{"value":"Configure the Frontegg portal","id":"configure-the-frontegg-portal","depth":3},{"value":"Additional resources","id":"additional-resources","depth":3}],"frontmatter":{"seo":{"title":"Salesforce integration"}},"lastModified":"2026-05-01T18:45:25.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/agen-for-work/connectors/marketplace/salesforce","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}