Connected Apps vs ECAs: What Changes in Spring ’26

Connected Apps vs ECAs What Changes in Spring ’26
New Connected App creation is now disabled by default across all orgs. This is not a deprecation warning with a multi-year runway it is an active change that affects every new integration you build starting now.

Every Salesforce org that has ever integrated with an external system has a Connected App. OAuth flows, JWT authentication, MuleSoft connections, data loader configurations, third-party ISV tools all of them were built on Connected Apps. Starting with Spring ’26, Salesforce disabled the creation of new Connected Apps by default across all orgs. If you need a new one, you now need to file a Support request and Salesforce has been explicit that this option will eventually disappear entirely. The migration is not optional. It is a question of when, not whether.

The Timeline You Need to Know

Key TimelineChanges
Winter ’26Connected App creation via the UI disabled by default in new orgs unless admin manually enabled it. Existing orgs unaffected at this stage.
Spring ’26 (Now Live)Connected App creation disabled by default across ALL orgs – new and existing. Creating a new Connected App now requires a Salesforce Support request. Session IDs removed from outbound messages (Feb 16, 2026 already enforced)
Feb 16, 2026Session IDs in outbound messages already retired. Any integration that was passing session IDs through outbound messaging is now broken. OAuth is mandatory for outbound message authentication.
2027–2029Certificate rotation windows tightening. TLS and SAML certificates moving toward 47-day maximum rotation cycles by 2029. Triple DES for SAML already retired in Spring ’26.
Future (TBA)Connected App creation Support request option will be removed entirely. End of Support date not yet announced but Salesforce has been explicit this is the direction.

What External Client Apps Actually Are – Technically

External Client Apps (ECAs) are not a renamed Connected App. They are a fundamentally different integration model built on Second Generation Packaging (2GP) rather than the legacy packaging model that Connected Apps use. That architectural difference is what drives most of the behavioral differences between the two.

Connected App External Client App
First Generation Packaging (1GP) – limited metadata API controlSecond Generation Packaging (2GP) – full metadata API control, cleaner distribution
Available by default – any user with API access could self-authorizeNot available by default – requires admin installation and explicit authorization
Copied automatically when sandbox is clonedOnly copied if packaged – prevents unintentional credential propagation across sandboxes
Supports Canvas App exposure and push notificationsCanvas App and push notifications not yet supported (gap Salesforce is closing)
Supports more OAuth flows including implicit and password (not recommended)Supports OAuth 2.0 flows – implicit and password flows removed by design
Keys and secrets stored directly on the app – no separate global settingsOAuth settings stored separately in global settings – keys and secrets managed independently
No 2GP packaging support – cannot be distributed as a managed package cleanlyFull 2GP support – first-class citizen in Salesforce’s modern packaging model

The security improvement is intentional and material. Connected Apps created by external parties could be self-authorized by any API-enabled user this is the vector that phishing and vishing attacks have exploited. ECAs require admin installation, which eliminates that attack surface entirely. The tighter defaults are not a limitation they are the point.

ECAs do not restrict what you can build. They restrict who can authorize connections without admin oversight. That is the security improvement Salesforce has been building toward for three years.

The OAuth Flows – What Changed and What Did Not

The most technically impactful difference for developers is the OAuth flow support matrix. External Client Apps do not support the implicit flow or the username/password flow. Both were already considered bad practice, but orgs that still had legacy integrations using them will need to migrate those authentication patterns before migrating the Connected App itself.

// OAuth flows — ECA support status
Authorization Code Flow          ✓ Supported  (standard user-facing OAuth)
JWT Bearer Flow                  ✓ Supported  (server-to-server, recommended)
Client Credentials Flow          ✓ Supported  (machine-to-machine)
PKCE Extension                   ✓ Supported  (public clients, mobile apps)
Device Authorization Flow        ✓ Supported  (IoT, CLI tools)
Implicit Flow                    ✗ Removed   (deprecated, insecure by design)
Username / Password Flow         ✗ Removed   (deprecated, credentials exposed)

Step by Step Migration

1. Audit every Connected App in your org

Go to Setup → Connected Apps OAuth Usage. Export the list. Note which apps are actively authorized (have active user sessions), which OAuth flow each uses, and whether they are managed by your team or by a third-party ISV. This inventory is the foundation you cannot prioritize migration without knowing what you have.

2. Identify which apps are ISV-managed vs. org-owned

Apps created by ISVs on external orgs and installed into your org follow a different migration path. You cannot migrate an ISV’s Connected App yourself you need the ISV to publish an ECA version of their product and migrate you to it. Contact your ISV vendors now. The ones that are slow to respond are the ones whose products will break when Connected App creation becomes impossible.

3. Use Salesforce’s built-in migration tool for org-owned apps

For Connected Apps you own and manage, Salesforce has released a native migration path: Setup → App Manager → select your Connected App → Migrate to External Client App. This creates an ECA with the same OAuth settings and client credentials. Validate in sandbox first redirect URIs, token behavior, and permission sets all need verification before migrating production.

4. Update sandbox cloning procedures

Connected Apps are copied automatically when you clone a sandbox. ECAs are not they are only copied if packaged. This behavioral difference means your sandbox refresh process needs to include an explicit step to configure ECAs in the new sandbox environment. Update your DevOps runbooks before this catches you in a production deployment.

5. Update your outbound message authentication to OAuth

If this was not done before February 16 the date session IDs were removed your outbound messages are already failing. The fix is to configure Named Credentials for outbound message authentication and update your workflow rules or flows to use OAuth-based authentication instead of session ID passthrough.

6. Build a certificate rotation process before the 2029 deadline

TLS and SAML certificate maximum validity is moving to 47 days by 2029. Annual certificate management the current default in most orgs will be non-compliant. The time to build an automated certificate rotation process is now, while 2029 still feels distant. Orgs that wait until the deadline are the ones that have production incidents on the deadline date.

The migration window is open. The question is whether you start it now or react to it later.

Connected Apps will not vanish from your org overnight. But Salesforce has shut the door on creating new ones, and the direction toward end of support is clearly stated. The organizations that audit their Connected App inventory now, identify ISV dependencies, and begin phased migration to External Client Apps are the ones that absorb this change on their own timeline rather than on Salesforce’s. The ones that wait will migrate in a hurry and hurried integration migrations are where production incidents happen.

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.