Creating a Salesforce External Client App

Edited

PropFuel can connect to Salesforce, Fonteva, and Nimble AMS using an external client app that you create in your own Salesforce org. This is the recommended way to connect, because the integration runs as a Salesforce user you choose rather than an individual person's login.

External client apps are Salesforce's replacement for connected apps. As of the Spring '26 release, Salesforce no longer lets most orgs create a new connected app, so these steps use an external client app. If your org already connects to PropFuel through a connected app, it keeps working and you do not need to recreate it.

You will need Salesforce administrator access to complete these steps. Salesforce changes the labels and layout in Setup from time to time, so the exact wording may differ slightly in your org.

Find your Salesforce Domain URL

  1. In Salesforce, go to Setup -> Company Settings -> My Domain

  2. Copy your current My Domain URL. It will look like https://yourorg.my.salesforce.com

Salesforce only issues tokens for this type of connection through your My Domain URL, so PropFuel cannot connect without it. See Salesforce's own My Domain documentation if you cannot find yours.

Create the external client app

  1. Go to Setup, enter External Client in the Quick Find box, and select External Client App Manager

  2. Click New External Client App

  3. Under Basic Information, enter an External Client App Name, such as PropFuel. The API Name fills in automatically. Enter a Contact Email

  4. Expand API (Enable OAuth Settings) and check Enable OAuth

  5. Enter a Callback URL. This type of connection never uses it, but Salesforce requires the field. You can use https://login.salesforce.com

  6. Under Selected OAuth Scopes, add "Manage user data via APIs (api)"

  7. Click Create

Salesforce can take several minutes to finish creating the app. If the next steps do not work right away, wait and try again.

Enable the client credentials flow

This is the part that lets PropFuel authenticate as the app itself, with no person signing in. It is set in two places, and the connection fails if you do only one.

  1. In External Client App Manager, find your app, and choose Edit Settings from the actions dropdown

  2. In the OAuth Settings section, check Enable Client Credentials Flow, confirm the warning Salesforce displays, and save

  3. Open the Policies tab and click Edit

  4. Under OAuth Policies, enable the client credentials flow here as well

Salesforce documents this in Configure a Client Credentials Flow, which is the authority if their screens no longer match the steps above.

Set the execution user

The execution user determines what PropFuel can see and change in Salesforce. Choose a user whose permissions cover the records you want PropFuel to read and update, and who has the API Enabled permission.

  1. Still on the Policies tab, under OAuth Policies, set the execution user for the client credentials flow

  2. Save the policies

We recommend a dedicated integration user rather than a person's account, so the connection is not affected when someone changes their password or leaves your organization.

Copy the Consumer Key and Consumer Secret

  1. In External Client App Manager, open your app and go to the Settings tab

  2. Under OAuth Settings, click Consumer Key and Secret. Salesforce will ask you to verify your identity with a code

  3. Copy the Consumer Key and the Consumer Secret

Treat the Consumer Secret like a password. Anyone who has it, along with your Consumer Key and domain, can act as your execution user. Change it periodically, and immediately if it is ever exposed.

Enter the credentials in PropFuel

  1. In PropFuel, go to Settings -> Advanced -> Connectors

  2. Open your Salesforce, Fonteva, or Nimble connector

  3. Enter your Salesforce Domain URL, Consumer Key, and Consumer Secret

  4. Save the connector

If the connection fails, confirm that the client credentials flow is enabled in both places, that an execution user is set, and that the execution user has the API Enabled permission.

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.