Appnigma

Create External Client App in Salesforce

Create External Client App Salesforce

Dec 24, 2025

7 min read

Create External Client App in Salesforce

Introduction to External Client Apps in Salesforce

Salesforce integrations are evolving fast. If you’re still relying only on Connected Apps, you might already be a step behind. Salesforce introduced External Client Apps to provide a more secure, scalable, and future-ready way to integrate external systems.

Think of it like upgrading from a basic lock to a smart security system—same goal, much better control.

What Is an External Client App?

An External Client App is a Salesforce app type designed specifically for external applications—such as mobile apps, web apps, backend services, or SaaS platforms—that need secure access to Salesforce APIs using OAuth 2.0.

Unlike Connected Apps, External Client Apps are not tied to a specific user context by default, making them ideal for modern machine-to-machine and multi-tenant integrations.

A key concept that uniquely defines an External Client App is its Distribution State. The distribution state determines where and how the app can be used—whether it is restricted to a single Salesforce org or distributed across multiple orgs, customers, or environments. This capability fundamentally differentiates External Client Apps from legacy Connected Apps.

Why External Client Apps Matter Today

Salesforce is actively steering developers toward External Client Apps because they:

  • Offer better security isolation

  • Support modern OAuth flows

  • Are optimized for machine-to-machine communication

  • Align with Salesforce’s long-term API and integration strategy

If you’re building anything external today, this is the direction Salesforce expects you to follow.

Understanding Salesforce App Types

Before creating one, it’s important to understand how External Client Apps differ from traditional Connected Apps.

External Client App vs Connected App

Both use OAuth. Both allow API access. But they are not interchangeable.

Key Differences You Must Know

[@portabletext/react] Unknown block type "table", specify a component for it in the `components.types` prop

Distribution State: The Defining Difference

The Distribution State is one of the most important—and least documented—features of External Client Apps.

It defines whether an app is:

  • Local – Used only within the Salesforce org where it is created

  • Distributable – Intended to be shared across multiple Salesforce orgs, customers, or tenants

This setting directly impacts how the app authenticates, scales, and complies with Salesforce’s security model. Unlike Connected Apps, which are inherently org-bound, External Client Apps are designed with distribution and multi-org usage in mind from the start.

When to Use Each App Type

Use External Client Apps for:

  • Backend services

  • SaaS integrations

  • Mobile or web applications

  • Multi-org or customer-facing integrations

Use Connected Apps only for:

  • Legacy systems

  • Salesforce UI extensions

What You Need Before Creating an External Client App

Preparation saves hours of debugging later.

Salesforce Org Requirements

Make sure:

  • You have System Administrator access

  • Your org is Enterprise, Unlimited, or Developer Edition

  • API access is enabled

OAuth and Authentication Basics

External Client Apps rely fully on OAuth 2.0, so understanding tokens is essential.

Supported OAuth Flows

  • Client Credentials Flow

  • Authorization Code Flow

  • JWT Bearer Flow

Each flow serves a different use case—choose based on your architecture.

Step-by-Step Guide to Create External Client App in Salesforce

Let’s walk through the setup.

Step 1 – Log in to Salesforce Setup

  • Log in to Salesforce

  • Click Setup (top-right corner)

Step 2 – Navigate to External Client Apps

In Setup:

  • Search for External Client Apps

  • Click External Client Apps

  • Select New External Client App

Step 3 – Create a New External Client App

This is where your app takes shape.

App Name, API Name, and Contact Email
  • App Name: Human-readable (e.g., My Integration App)

  • API Name: Auto-generated

  • Contact Email: Used for security and system notifications

Distribution State Selection

During creation, you must define the Distribution State of the External Client App.

  • Local apps are restricted to the current Salesforce org

  • Distributable apps are designed for use across multiple orgs or customer environments

This decision directly affects scalability and reuse. Choosing the wrong distribution state can limit how your app can be deployed later.

Step 4 – Configure OAuth Settings

Enable OAuth and configure secure access.

Callback URL and Scopes
  • Callback URL: Required for Authorization Code flow

  • Scopes:

    • api

    • refresh_token

    • openid (optional)

Grant only what your app actually needs.

Step 5 – Save and Activate the App

  • Click Save

  • Activate the app

  • Copy the Client ID and Client Secret

Store these securely. Treat them like passwords.

Configuring Security and Access

Security is not optional.

Assigning Permission Sets

  • Create a permission set

  • Assign required API permissions

  • Link it to the External Client App

Token Policies and Expiration

Define:

  • Access token lifespan

  • Refresh token behavior

Refresh Token Best Practices
  • Rotate secrets regularly

  • Revoke unused tokens

  • Monitor token usage

Testing Your External Client App

Always test before production.

Generating Access Tokens

Use tools such as:

  • Postman

  • Curl

  • OAuth playgrounds

Validating API Calls

Test basic operations:

  • Query Accounts

  • Fetch User or Org data

Common Testing Errors and Fixes

  • Invalid scope → Review OAuth settings

  • Unauthorized → Verify permission sets

  • Token expired → Refresh the token

Real-World Use Cases for External Client Apps

This is where External Client Apps truly shine.

Mobile Applications

Ideal for:

  • iOS apps

  • Android apps

  • React Native or Flutter apps

Server-to-Server Integrations

Perfect for:

  • ETL pipelines

  • Middleware platforms

  • Background jobs

These integrations typically rely on Distributable External Client Apps to support multi-org deployments.

Third-Party SaaS Integrations

Excellent for:

  • SaaS platforms

  • Analytics tools

  • Automation systems

SaaS providers depend on Distributable distribution states to connect securely with multiple Salesforce customer orgs.

Best Practices for External Client Apps

Small habits make a big difference.

Security Best Practices

  • Apply least-privilege OAuth scopes

  • Rotate secrets periodically

  • Enable IP restrictions when required

Performance Optimization Tips

  • Cache access tokens

  • Minimize API calls

  • Use Bulk API for large data operations

Monitoring and Logging

  • Track authentication failures

  • Monitor token usage

  • Set alerts for unusual activity

Common Mistakes to Avoid

Using Connected Apps Instead

Salesforce recommends External Client Apps for all new external integrations. Avoid building on deprecated patterns.

Over-Permissive OAuth Scopes

Granting excessive access increases security risk without benefits.

Ignoring the Distribution State

Treating External Client Apps like Connected Apps and overlooking the Distribution State is a common mistake. Choosing the wrong state can limit scalability or require recreating the app later. Always align the distribution state with your deployment model from day one.

External Client Apps and Salesforce APIs

They work seamlessly together.

REST API Integration

Best suited for:

  • Real-time operations

  • Lightweight requests

Bulk and Streaming APIs

Use when:

  • Handling large data volumes

  • Subscribing to platform events

API Limits and Considerations

  • Respect daily API limits

  • Implement proper rate limiting and retries

Troubleshooting External Client App Issues

Even well-configured apps can encounter issues.

Authentication Failures

  • Verify client credentials

  • Confirm OAuth flow selection

Authorization Errors

  • Check assigned permission sets

  • Validate OAuth scopes

Future of External Client Apps in Salesforce

Salesforce has made its direction clear.

Salesforce’s Shift Away from Connected Apps

External Client Apps are:

  • More modular

  • More secure

  • More scalable

What to Expect Next

  • Improved tooling

  • Enhanced OAuth controls

  • Deeper API governance

Conclusion

Creating an External Client App in Salesforce is more than a setup task—it’s a strategic architectural decision. It future-proofs your integrations, improves security, and aligns your systems with Salesforce’s roadmap.

With features like Distribution State, External Client Apps enable scalable, multi-org integrations that Connected Apps were never designed to handle. If you’re building anything external today, this approach is no longer optional—it’s essential.

FAQs

1. Is External Client App replacing Connected App in Salesforce?
Not entirely, but Salesforce strongly recommends External Client Apps for all new external integrations.

2. Which OAuth flow is best for backend integrations?
Client Credentials or JWT Bearer flow works best for server-to-server use cases.

3. Can External Client Apps access all Salesforce APIs?
Yes, provided the correct scopes and permissions are configured.

4. Do External Client Apps require a Salesforce user?
No. They can operate without a direct user context.

5. Are External Client Apps more secure than Connected Apps?
Yes. They offer improved isolation, token control, and modern OAuth handling.

6. What is the Distribution State in an External Client App?
The Distribution State defines whether an External Client App is restricted to a single Salesforce org (Local) or can be distributed across multiple orgs and customers (Distributable). It is a foundational difference from Connected Apps and directly affects scalability and usage.

Ready to transform your Salesforce experience?

Start exploring the Salesforce Exchange today and discover apps that can take your CRM efficiency to the next level.

decorative section tag

Blog and News

Our Recent Updates