{"id":1789,"date":"2026-02-14T08:59:43","date_gmt":"2026-02-14T08:59:43","guid":{"rendered":"https:\/\/sfplugin.com\/docs\/docs\/how-to\/how-to-create-an-external-client-app-in-salesforce-step-by-step-guide\/"},"modified":"2026-02-20T02:00:24","modified_gmt":"2026-02-20T02:00:24","slug":"create-an-external-client-app-in-salesforce-step-by-step-guide","status":"publish","type":"docs","link":"https:\/\/sfplugin.com\/docs\/how-to\/create-an-external-client-app-in-salesforce-step-by-step-guide\/","title":{"rendered":"How to Create an External Client App in Salesforce? (Step-by-Step Guide)"},"content":{"rendered":"<p>This guide covers everything you need to know about External Client Apps and moving your current Connected Apps to External Client Apps. <\/p>\n<nav>\n<h2>Table of Contents<\/h2>\n<ul>\n<li><a href=\"#difference-between-external-client-app-vs-connected-app\">Difference between External Client App vs Connected App<\/a><\/li>\n<li><a href=\"#migrate-connected-app-to-external-client-app\">Moving your current Connected Apps to External Client App<\/a><\/li>\n<li><a href=\"#what-to-enter-in-distribution-state-external-client-app\">What to Enter in Distribution State in External Client App?<\/a><\/li>\n<li><a href=\"#setting-up-oauth-2-0-apps-with-external-client\">Setting up OAuth 2.0 Apps with External Client<\/a><\/li>\n<li><a href=\"#what-scopes-to-select-in-external-client-app\">What Scopes to select in External Client App<\/a><\/li>\n<li><a href=\"#what-is-callback-url-in-external-client-app\">What is Callback URL in External Client App<\/a><\/li>\n<li><a href=\"#what-is-refresh-token-expiration\">What is Refresh Token Expiration<\/a><\/li>\n<li><a href=\"where-to-see-consumer-key-and-consumer-secret-in-external-client-app\">Where to See Consumer Key and Consumer Secret in External Client App<\/a><\/li>\n<li><a href=\"#insufficient-privileges-error-in-external-client-app\">Insufficient Privileges Error<\/a><\/li>\n<li><a href=\"#how-to-grant-permission-to-consumer-key-and-consumer-secret\">How to Grant Permission to Consumer Key and Consumer Secret<\/a><\/li>\n<\/ul>\n<\/nav>\n<hr \/>\n<section>\n<h2 id=\"difference-between-external-client-app-vs-connected-app\">Difference between External Client App vs Connected App<\/h2>\n<p data-path-to-node=\"1\"><b data-path-to-node=\"1\" data-index-in-node=\"9\">External Client Apps<\/b> are the modern, <a href=\"https:\/\/help.salesforce.com\/s\/articleView?id=xcloud.connected_apps_and_external_client_apps_features.htm&amp;type=5\">more secure version of Connected Apps<\/a>. While <strong>Connected Apps<\/strong> have always been the standard for linking external tools to Salesforce, they are difficult to package and move between environments because their settings are all lumped together. While <a href=\"https:\/\/help.salesforce.com\/s\/articleView?id=005228017&amp;language=en_US&amp;type=1\">Connected Apps are being retired<\/a>, the exact same functionality can be easily setup on External Client Apps.<\/p>\n<div class=\"avatar-gutter ng-tns-c4108313219-20 ng-star-inserted\">\n<div class=\"bard-avatar ng-tns-c4075669750-21\">\n<div class=\"avatar-container ng-tns-c4075669750-21\">\n<div class=\"response-content ng-tns-c4108313219-20\">\n<div class=\"container\">\n<div id=\"model-response-message-contentr_aa590486baf325b4\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color preserve-whitespaces-in-response\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\">For <a href=\"https:\/\/sfplugin.com\">Sawfish<\/a> and other integrations that use OAuth 2.0 to connect to Salesforce, the shift to External Client Apps offers better control over usage policies and connection settings. While the setup process differs, the connection can be easily configured to maintain the exact functionality that came with Connected Apps.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section>\n<h2 id=\"migrate-connected-app-to-external-client-app\">Moving your current Connected Apps to External Client App<\/h2>\n<p>Here&#8217;s how to connect or migrate your apps to the External Client App framework.<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li>Open <strong>Setup<\/strong> by clicking on the gear icon on the top right<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1810\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Setup-icon-Salesforce.png\" alt=\"Setup icon Salesforce\" width=\"250\" height=\"218\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Setup-icon-Salesforce.png 526w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Setup-icon-Salesforce-300x261.png 300w\" sizes=\"auto, (max-width: 250px) 100vw, 250px\" \/><\/li>\n<li>You can use the search bar to quickly find.\u00a0<strong>External Client App\u00a0<\/strong>Manager.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1806\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Access-External-Client-App-from-Setup-192x300.png\" alt=\"Steps to Access External Client App from Setup\" width=\"350\" height=\"547\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Access-External-Client-App-from-Setup-192x300.png 192w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Access-External-Client-App-from-Setup-655x1024.png 655w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Access-External-Client-App-from-Setup.png 686w\" sizes=\"auto, (max-width: 350px) 100vw, 350px\" \/><\/li>\n<li>Click on\u00a0<strong><strong>Create New External Client App.<\/strong><\/strong><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1811 size-medium\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-300x22.png\" alt=\"Screenshot of Create new External Client App\" width=\"300\" height=\"22\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-300x22.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-1024x76.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-768x57.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-1536x114.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Create-new-External-Client-App-2048x152.png 2048w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<li>In the Basic Information section you can enter the details of your application. Enter the app name and your email.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1813\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-1024x534.png\" alt=\"Screenshot of Details to enter in External Client App\" width=\"980\" height=\"511\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-1024x534.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-300x156.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-768x400.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-1536x800.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Details-to-enter-in-External-Client-App-2048x1067.png 2048w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<section>\n<h2 id=\"what-to-enter-in-distribution-state-external-client-app\">What to Enter in Distribution State in External Client App?<\/h2>\n<p>If you&#8217;re a Salesforce admin setting up the connection for your particular organization, you would only need to set <a href=\"https:\/\/help.salesforce.com\/s\/articleView?id=xcloud.configure_packageable_external_client_apps.htm&amp;language=en_US&amp;type=5\"><strong>Distribution State<\/strong><\/a> as <strong>local<\/strong>. The Packaged option if useful if you would like to package it for further distribution.<\/p>\n<\/section>\n<\/section>\n<section>\n<h2 id=\"setting-up-oauth-2-0-apps-with-external-client\">Setting up OAuth 2.0 Apps with External Client<\/h2>\n<p>Scroll further down on the page and open the\u00a0<strong>API (Enable OAuth Settings)\u00a0<\/strong>tab. Click on the\u00a0<strong>Enable Auth<\/strong> checkbox to open the menu. Here you will enter the the app Callback URL and OAuth Scopes.<\/p>\n<\/section>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1816\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-1024x520.png\" alt=\"Screenshot of OAuth Settings in External Client App\" width=\"980\" height=\"498\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-1024x520.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-300x152.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-768x390.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-1536x780.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/OAuth-Settings-in-External-Client-App-2048x1039.png 2048w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<section>\n<h2 id=\"what-is-callback-url-in-external-client-app\">What is Callback URL in External Client App<\/h2>\n<p>The <strong>Callback URL<\/strong> acts as the designated secure path for the OAuth connection. It is the address<br \/>\nwhere Salesforce sends the authorization code or access token after a user is validated.<\/p>\n<p>After installing the Sawfish plugin, you can copy the URL directly from Sawfish Connect page in WordPress dashboard.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-60\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2018\/08\/Copy-Callback-URL.gif\" alt=\"Screenshot of Copy Callback URL\" width=\"600\" height=\"299\" \/><\/p>\n<\/section>\n<section>\n<h2 id=\"what-scopes-to-select-in-external-client-app\">What Scopes to Select in External Client App<\/h2>\n<p>OAuth scopes define what actions and resources that application has access to.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1819 size-large\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes-1024x438.png\" alt=\"Screenshot of App Settings and OAuth Scopes\" width=\"980\" height=\"419\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes-1024x438.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes-300x128.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes-768x329.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes-1536x657.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/App-Settings-and-OAuth-Scopes.png 1874w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<p>For the Sawfish plugin select<\/p>\n<ul>\n<li>Perform requests at any time (refresh_token, offline_access)<\/li>\n<li>Manage user data via APIs (api)<\/li>\n<\/ul>\n<p>. The plugin uses this to <a href=\"https:\/\/sfplugin.com\/docs\/how-to\/how-to-show-salesforce-records-in-wordpress-plugin\/\">send<\/a> and <a href=\"https:\/\/sfplugin.com\/docs\/how-to\/how-to-show-salesforce-records-in-wordpress-plugin\/\">receive<\/a> data between Salesforce and your WordPress website.<\/p>\n<p>Note: Make sure to uncheck the checkbox <strong><span class=\"slds-checkbox\"><span class=\"slds-form-element__label\">Require Proof Key for Code Exchange (PKCE) extension for Supported Authorization Flows<\/span><\/span><\/strong><\/p>\n<p><strong><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1822 size-medium\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Checkboxes-for-Secret-Token-300x67.png\" alt=\"Screenshot for Checkboxes for Secret Token\" width=\"300\" height=\"67\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Checkboxes-for-Secret-Token-300x67.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Checkboxes-for-Secret-Token-1024x230.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Checkboxes-for-Secret-Token-768x172.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Checkboxes-for-Secret-Token.png 1248w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/strong><\/p>\n<p>Almost set! Click on the <strong>Create <\/strong>button at the bottom.<\/p>\n<p>External Client Apps has an additional setting that you would need to update to ensure uninterrupted connection. Re-open the newly created app from the Manage External Client Apps Menu.<\/p>\n<\/section>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1824\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-1024x507.png\" alt=\"Screenshot\" width=\"980\" height=\"485\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-1024x507.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-300x148.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-768x380.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-1536x760.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Updating-Refresh-Token-Policies-2048x1013.png 2048w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<p>Click on the <strong>Edit<\/strong>\u00a0 button in the <strong>Policies<\/strong> tab.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1825\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Refresh-Token-Policy-to-Ensure-Connection.png\" alt=\"Screenshot for Refresh Token Policy to Ensure Connection\" width=\"942\" height=\"414\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Refresh-Token-Policy-to-Ensure-Connection.png 942w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Refresh-Token-Policy-to-Ensure-Connection-300x132.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Refresh-Token-Policy-to-Ensure-Connection-768x338.png 768w\" sizes=\"auto, (max-width: 942px) 100vw, 942px\" \/><\/p>\n<p>Find the <strong>App Authorization\u00a0<\/strong>policy setting at the bottom left and select\u00a0<strong>Refresh token is valid until<\/strong> <strong>revoked<\/strong>.<\/p>\n<p>Click<strong> Save.<\/strong><\/p>\n<p>In Connected App all apps were set to be permanently connected until they were revoked from Salesforce OAuth page.<\/p>\n<section>\n<h2 id=\"what-is-refresh-token-expiration\">What is Refresh Token Expiration<\/h2>\n<div class=\"response-container-content ng-tns-c4108313219-57\">\n<div class=\"response-content ng-tns-c4108313219-57\">\n<div class=\"container\">\n<div id=\"model-response-message-contentr_951c41a5a3733c1a\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color preserve-whitespaces-in-response\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\"><span class=\"citation-1\">A <\/span><b data-path-to-node=\"0\" data-index-in-node=\"2\"><span class=\"citation-1\">Refresh Token<\/span><\/b><span class=\"citation-1 citation-end-1\"> is a like a digital key that allows your integration to stay connected and request new access sessions automatically without requiring a user to log in again.<\/span><\/p>\n<p data-path-to-node=\"0\">So setting the <b data-path-to-node=\"0\" data-index-in-node=\"17\">Refresh Token Expiration<\/b> determines how long your app can stay connected to Salesforce without a human having to log in again.<\/p>\n<p data-path-to-node=\"1\">Setting it to <strong>Refresh token is valid until<\/strong> <strong>revoked<\/strong>\u00a0ensures there are<\/p>\n<ul data-path-to-node=\"2\">\n<li>\n<p data-path-to-node=\"2,0,0\"><b data-path-to-node=\"2,0,0\" data-index-in-node=\"0\">No Interruptions:<\/b> If the token expires, your integration (like Sawfish) will suddenly stop working until someone manually re-authenticates.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"2,1,0\"><b data-path-to-node=\"2,1,0\" data-index-in-node=\"0\">Set It and Forget It:<\/b> Ensures that background tasks and automated syncs keep running 24\/7 without needing constant maintenance.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"2,2,0\"><b data-path-to-node=\"2,2,0\" data-index-in-node=\"0\">Better User Experience:<\/b> You won&#8217;t have to deal with annoying &#8220;session expired&#8221; errors or &#8220;re-connect your account&#8221; prompts every few weeks.<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<section>\n<h2 id=\"where-to-see-consumer-key-and-consumer-secret-in-external-client-app\">Where to See Consumer Key and Consumer Secret in External Client App<\/h2>\n<p>Next you can access the Consumer Key and Consumer Secret needed to connect your application. In External Client Apps you can view this info anytime selecting the App from the External Client App Manager and then selecting the <strong>Settings\u00a0<\/strong>tab.<\/p>\n<p>Scroll down and open the <strong>OAuth Settings<\/strong> section and click on\u00a0<strong>Consumer Key and Secret.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1827\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/View-Consumer-Key-and-Consumer-Secret-in-External-Client-App-236x300.png\" alt=\"Screenshot of where to View Consumer Key and Consumer Secret in External Client App\" width=\"600\" height=\"764\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/View-Consumer-Key-and-Consumer-Secret-in-External-Client-App-236x300.png 236w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/View-Consumer-Key-and-Consumer-Secret-in-External-Client-App-804x1024.png 804w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/View-Consumer-Key-and-Consumer-Secret-in-External-Client-App-768x978.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/View-Consumer-Key-and-Consumer-Secret-in-External-Client-App.png 1002w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<\/section>\n<p>You can then Copy the Consumer Key and Consumer Secret shown on the screen.<\/p>\n<p>&nbsp;<\/p>\n<section>\n<h2 id=\"insufficient-privileges-error-in-external-client-app\">Insufficient Privileges<\/h2>\n<p>You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary. For more information, see <a>Insufficient Privileges Errors<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-1829\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-1024x114.png\" alt=\"Screenshot\" width=\"980\" height=\"109\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-1024x114.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-300x33.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-768x85.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-1536x171.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Insufficient-Privileges-Error-External-Client-App-2048x228.png 2048w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<\/section>\n<p>If you see this error in External Client App, make sure to add to add the below permission.<\/p>\n<section>\n<h2 id=\"how-to-grant-permission-to-consumer-key-and-consumer-secret\">How to Grant Permission to Consumer Key and Consumer Secret<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1796 size-large\" src=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-1024x111.png\" alt=\"Shows Permissions to Access External Client App Settings\" width=\"980\" height=\"106\" srcset=\"https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-1024x111.png 1024w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-300x33.png 300w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-768x83.png 768w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-1536x166.png 1536w, https:\/\/sfplugin.com\/docs\/wp-content\/uploads\/2026\/02\/Permissions-to-Access-External-Client-App-Settings-2048x222.png 2048w\" sizes=\"auto, (max-width: 980px) 100vw, 980px\" \/><\/p>\n<p>In order to resolve the Insufficient Privileges error, open the profile associated with your Profile and add the <strong><a href=\"https:\/\/help.salesforce.com\/s\/articleView?id=sf.configure_external_client_app_policies.htm&amp;type=5\">View all External Client Apps, views their settings, and edit policies<\/a> <\/strong>permission.<\/p>\n<\/section>\n<p>Stuck on a particular step? Feel free to send us a message or email us if you\u2019d like more information on setting this up.<\/p>\n","protected":false},"featured_media":1790,"parent":148,"menu_order":25,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-1789","docs","type-docs","status-publish","has-post-thumbnail","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs\/1789","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/comments?post=1789"}],"version-history":[{"count":22,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs\/1789\/revisions"}],"predecessor-version":[{"id":1791,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs\/1789\/revisions\/1791"}],"up":[{"embeddable":true,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs\/148"}],"prev":[{"title":"How to Create Connected App in Salesforce in 2026 - Summer '25 External Client App","link":"https:\/\/sfplugin.com\/docs\/how-to\/create-connected-app-in-salesforce-summer-25-new-external-client\/","href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/docs\/1721"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/media\/1790"}],"wp:attachment":[{"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/media?parent=1789"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/sfplugin.com\/docs\/wp-json\/wp\/v2\/doc_tag?post=1789"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}