Skip to content
Back to Blog
Integration

Connected App vs External Client App in Salesforce (2026)

Dec 22, 2025
SCSunny Chauhan
Connected App vs External Client App in Salesforce (2026)

A connected app and an external client app both let an outside system authenticate into Salesforce. The external client app is the replacement. It is secure by default, splits configuration into global developer settings and local admin policies, and is the only one of the two that can ship in a second generation package. As of Spring '26, Salesforce disables the creation of new connected apps by default, and recommends external client apps in all situations.

Why this choice changed in 2026

For years the connected app was the only way to authenticate an external system into Salesforce. That changed. Salesforce introduced external client apps as the successor framework, and in Spring '26 it stopped letting orgs create new connected apps unless an admin asks for the setting to be turned back on. If you are choosing between the two today, the decision is mostly made for you, and this page explains what actually differs underneath.

What Spring '26 changed

Spring '26 disables the creation of new connected apps by default. The block applies both in Setup and through the Metadata API. Two things it does not do: it does not disable connected apps that already exist, and it does not block a connected app arriving as part of an installed package.

An org that genuinely needs to create a new connected app can have the setting re-enabled by Salesforce Support. That is an exception path, not a supported long term position. Salesforce's own guidance is to use external client apps in all situations and to migrate existing local connected apps across.

Connected app vs external client app compared

Connected appExternal client app
Status in 2026Creation disabled by default from Spring '26, existing apps keep workingThe recommended framework for all new integrations
Security postureOpen by default, access is granted then restrictedSecure by default, access is granted explicitly
Configuration modelDeveloper settings and admin policies share one metadata fileSplit into global settings owned by the developer and local policies owned by the admin
PackagingCannot be packaged with second generation packaging, uses a reference modelWorks with second generation packaging, which is what AppExchange builds on now
Role separationThe framework cannot cleanly separate developer and admin dutiesDevelopers own the OAuth settings, admins own the policies
DistributionReference basedLocal or packaged, only packaged apps clone into sandboxes
Typical useExisting internal integrations already in productionNew integrations, ISV packages, system to system automation

The consumer key and secret on an external client app live in the global settings and are deliberately not packageable, which is what allows one app definition to be distributed without leaking the credentials of the org that built it.

Two terms that often create confusion are Connected App and External Client App. They sound similar. They solve similar problems. Yet they are built for very different scenarios.

Let's break it all down in simple, human terms.

Why App Authentication Matters

Authentication is not just about logging in. It defines:

  • Who can access your data
  • What data they can access
  • How long they can access it

Think of authentication as the gatekeeper to your Salesforce org. Choose the wrong gatekeeper, and either everything becomes slow and risky, or nothing works at all.

The Rise of Secure Integrations

Modern businesses rely on APIs, mobile apps, partner tools, and automation. Salesforce had to evolve beyond username-password logins. That's where OAuth-based apps entered the picture.

What Is a Connected App?

Definition of a Connected App

A Connected App is a Salesforce app framework that enables external applications to integrate with Salesforce using OAuth, while still respecting user-level permissions.

In simple words, a Connected App acts like a trusted middleman between Salesforce and another application, on behalf of a user.

How Connected Apps Work

Connected Apps authenticate users via OAuth. Once authenticated, Salesforce issues an access token tied to:

  • A specific user
  • A specific app
  • Defined permission scopes

Everything the app does depends on what that user is allowed to do in Salesforce.

OAuth Flow in Connected Apps

Common OAuth flows used:

  • Authorization Code Flow
  • Username-Password Flow
  • JWT Bearer Flow

Each flow balances security and convenience differently.

Key Features of Connected Apps

OAuth Scopes

Scopes define what the app can do, such as:

  • Read data
  • Modify records
  • Access APIs
  • Refresh tokens

No scope, no access. Simple.

Policies and Permissions

Connected Apps let admins control:

  • IP relaxation
  • Session timeout
  • Token refresh behavior

This makes them ideal for internal governance.

User-Level Access Control

This is the biggest advantage. Even if the app is powerful, it can only do what the logged-in user is allowed to do.

Common Use Cases of Connected Apps

Internal Integrations

Perfect for internal tools where employees log in using Salesforce credentials.

Salesforce-to-Salesforce Connections

When one org talks to another, Connected Apps handle authentication cleanly.

Admin-Controlled Applications

If admins want tight control and audit trails, Connected Apps are the go-to choice.

What Is an External Client App?

Definition of an External Client App

An External Client App is designed for system-to-system communication where no Salesforce user is involved.

It authenticates using client credentials, not human users.

How External Client Apps Work

Instead of asking a user to log in, the app proves its identity using:

  • Client ID
  • Client Secret

Salesforce then issues a token tied to the app itself.

OAuth Flow in External Client Apps

The most common flow here is:

  • Client Credentials Flow

No login screens. No user interaction. Just clean, automated access.

Key Features of External Client Apps

Client Credentials

Authentication is based on the app's identity, not a person.

App-Level Authentication

The app runs in a system context, which makes it predictable and consistent.

Token-Based Access

Tokens are short-lived and tightly scoped, improving security.

Common Use Cases of External Client Apps

Public APIs

When exposing APIs to external systems, this model works best.

Customer-Facing Applications

Mobile apps or portals where Salesforce users should not exist.

Partner Integrations

Ideal for B2B integrations that need stable, automated access.

Connected App vs External Client App: Core Differences

Authentication Model

  • Connected App: User-based authentication
  • External Client App: App-based authentication

Security and Control

Connected Apps rely on user permissions. External Client Apps rely on app policies.

Scalability

External client apps suit system to system work better because the client credentials flow runs as a dedicated integration user rather than borrowing a logged in person's session.

User Context vs System Context

This is the heart of the difference:

That distinction drives the OAuth flow you pick. A user based integration uses a flow that produces a token tied to a person, so it inherits that person's permissions and stops working when they leave. A system based integration uses the client credentials flow, which runs as a nominated integration user and keeps working regardless of staff changes. Salesforce blocks the username and password flow outright, so it is not an option for either.

  • Connected App = "What can this user do?"
  • External Client App = "What can this system do?"

Security Considerations

Data Access Control

Connected Apps are safer when user-level auditing is required. External Client Apps are safer for automation with minimal exposure.

Token Expiry and Refresh

Always configure short-lived tokens and rotate secrets regularly.

Compliance and Governance

Connected Apps shine in regulated environments where traceability matters.

Performance and Scalability Comparison

Rate Limits

External Client Apps handle higher throughput more efficiently.

Concurrent Sessions

Connected Apps can struggle if many users authenticate at once.

Enterprise Readiness

Large-scale integrations usually favor External Client Apps.

Which One Should You Choose?

Decision Framework

Ask yourself:

  • Is a Salesforce user involved?
  • Is this automation or interaction?
  • Do I need user-level permissions?

Real-World Scenarios

  • An internal employee tool that acts on behalf of the person using it fits the user based model.
  • A customer facing mobile app is better served by an external client app.
  • A nightly data sync between systems belongs on an external client app with client credentials.

Best Practices for Implementation

Choosing the Right OAuth Flow

Never use username-password flow unless absolutely necessary.

Managing Secrets Securely

Store client secrets in vaults, not code.

Monitoring and Auditing Access

Enable logs, alerts, and token revocation strategies.

Common Mistakes to Avoid

Over-Permissioning Apps

More access does not mean better integration.

Ignoring Token Management

Expired tokens cause silent failures.

Misaligned App Architecture

Choosing the wrong app type leads to security and scaling issues.

Which one to pick

The debate of Connected App vs External Client App is not about which one is better. It is about which one fits your use case.

Migrating from a connected app

Migration is not an in place upgrade. You create the external client app, move the OAuth settings and policies onto it, repoint the integration at the new consumer key and secret, then retire the old connected app once nothing is authenticating against it.

Sequence it so the two run in parallel for a window. Because the credentials change, every client that authenticates has to be updated, and anything you miss fails at the next token refresh rather than immediately. Audit connected app usage in Setup before you start so you know the full list of consumers.

Connected apps still work if you already have them, and Salesforce has not announced a shutdown date for existing ones. But new build should start on external client apps, because that is where the packaging support and the security model are going.

If you are shipping a managed package on AppExchange, the choice is not a preference. Second generation packaging only accepts external client apps.

Frequently asked questions

Can I still create a connected app in Salesforce?

Not by default. From Spring '26 Salesforce turns off the creation of new connected apps in both Setup and the Metadata API. Connected apps that already exist keep working, and one arriving inside an installed package still installs. If you have a genuine need to create a new one, Salesforce Support can re-enable the setting for your org.

Is an external client app the same as a connected app?

No. It is the successor framework and it is built differently. An external client app separates global settings, which the developer owns, from local policies, which the admin owns, and it starts from a secure by default position rather than an open by default one. A connected app keeps both halves in a single metadata file.

Do external client apps work with managed packages?

Yes, and this is the practical reason many ISVs moved. External client apps are supported by second generation packaging. Connected apps cannot be packaged with 2GP, they use an older reference model. If you are building a managed package for AppExchange today, the external client app is the only one of the two that fits.

Should I migrate my existing connected apps?

Salesforce recommends migrating local connected apps to local external client apps. There is no forced deadline announced for existing apps, so this is planned work rather than an emergency. Prioritise anything you are about to package, anything that needs clean developer and admin separation, and anything you were going to rebuild anyway.

Which OAuth flow should an external client app use?

For system to system work use the client credentials flow, which runs as a nominated integration user and does not depend on a person staying employed. For an app acting on behalf of a signed in person, use an authorisation code based flow. The username and password flow is blocked by Salesforce and should not appear in any new design.

What is the difference between a local and a packaged external client app?

A local external client app exists only in the org where it was created and is the right shape for your own internal integrations. A packaged one is distributed inside a second generation package to other orgs. Only packaged external client apps clone into sandboxes when the org is refreshed.

Does switching to an external client app change my credentials?

Yes. The new app has its own consumer key and secret, so migration is not transparent to the systems that authenticate. Every client has to be repointed. Anything you miss keeps working until its current token expires and then fails at refresh, which is why the failures often show up days after the change.

All Blogs