Home >> Articles >> Connected Apps Are Being Retired in Salesforce

Connected Apps Are Being Retired in Salesforce

Salesforce Spring 26 migration timeline from Connected Apps to External Client Apps

Starting with Spring ’26, Salesforce disabled the creation of new Connected Apps by default across all orgs. Your existing ones still work for now.

But the direction is clear: External Client Apps are the future, and the clock is running.

This guide covers what changed, why Salesforce made this move, what External Client Apps actually give you, which apps are and are not affected, and a step-by-step migration walkthrough through App Manager.

The second half is a structured checklist for the audit before you migrate and the testing after. The TLS certificate changes happening in the same release are covered at the end, because both come from the same security-first motivation.

Spring '26 Migration Timeline & TLS Certificate Phase-Down
Connected Apps → External Client Apps
1
Winter '26
New Connected App creation disabled by default in new orgs
Opt-in
2
Spring '26
New creation disabled across all orgs — Support request required
Enforced
3
Summer '26
Expected enforcement deadline — plan migration before this
Deadline
4
Summer '26
Triple DES for SAML SSO stops working completely
Hard Stop

TLS Certificate Lifespan Phase-Down (CA-signed certificates only)
A
Until Mar 14, 2026
Max lifespan 398 days (previous standard)
B
Mar 15, 2026
Max lifespan drops to 200 days
Now
C
Mar 15, 2027
Max lifespan drops to 100 days
Plan for
D
Mar 15, 2029
Max lifespan drops to 47 days — automation required
Automate

Why Salesforce is making this change

Connected Apps have been part of Salesforce for over a decade. If you have ever set up OAuth for a third-party integration, configured Data Loader, or connected a custom web application to the Salesforce API, you have used one. They are everywhere, and most of them work fine.

The problem is not the apps that are configured properly. The problem is the ones that are not, and the architecture that makes unsafe configurations easy to create.

By default, Connected Apps allow any API-enabled user in an org to self-authorise a connection to an external application, without admin approval.

That is how phishing and vishing attacks that targeted Salesforce orgs worked: trick a user into authorising a malicious Connected App, and the attacker has API access to the org’s data. Salesforce responded by tightening this behaviour, but the structural issue remained.

External Client Apps take a different starting position. They adopt a closed security posture by default.

Access is not granted unless an administrator explicitly permits it. Furthermore, the architecture separates developer configuration from admin policy, which means a developer building an integration cannot inadvertently override security settings that the admin put in place.

What changed in Spring ’26, specifically

The rollout has been gradual. In Winter ’26, Salesforce disabled Connected App creation by default in new orgs, with an option for admins to re-enable it manually.

Spring ’26 tightened that further: new Connected App creation is now disabled across all orgs, including existing ones. Getting the ability back requires a Salesforce Support request, and Salesforce has been clear that this option will eventually disappear entirely.

Two categories of Connected Apps are not affected by this change.

Connected Apps created as part of a managed package continue to work and can still be created in that context. Connected Apps used for Slack in the legacy Agentforce Builder are also excluded.

Everything else follows the new default. Any new integration from Spring ’26 onward must be built as an External Client App.

What happens if you try to create a new Connected App without a Support request
  • The New Connected App button no longer appears in App Manager — the option is gone from the UI entirely.
  • Attempting to create one via the Metadata API returns an error. There is no workaround inside the platform.
  • Any new integration built after Spring '26 that requires its own OAuth client must use an External Client App instead.
  • If a specific business case genuinely requires a new Connected App, you must open a Salesforce Support case and explicitly request the capability. Salesforce may or may not grant it, and this option will be removed in a future release.

What External Client Apps offer that Connected Apps do not

External Client Apps are not just Connected Apps with a new name. The differences are architectural, and several of them matter a lot depending on how your org is set up.

Separation of developer settings and admin policies

In a Connected App, the developer configuration and admin security policies live in the same record. A developer with edit access to the Connected App can change the OAuth scopes, the IP restrictions, and the session policies.

In an External Client App, those roles are separated. Developers manage the technical settings; admins manage the access policies. Neither can override the other without the appropriate permission.

For ISVs and AppExchange partners, this matters enormously. It means the admin installing your package can control how it behaves in their org without touching the underlying app configuration.

Second-generation packaging support

External Client Apps are designed specifically for second-generation packaging, or 2GP.

Connected Apps technically work with 2GP, but the process required manual steps that were fragile and time-consuming. ECAs package cleanly, distribute correctly, and integrate naturally with source control and CI/CD pipelines via the Metadata API.

For admins managing integrations rather than building packages, the practical difference is that ECAs behave more predictably in sandboxes and scratch orgs.

Scratch Org support for External Client Apps was added in Spring ’26, which makes the developer testing cycle considerably cleaner.

Closed security posture by default

A new External Client App is not accessible to any user until an administrator explicitly grants access. There is no self-authorisation pathway by default. This is the core security difference from Connected Apps, and it is the reason Salesforce is moving in this direction.

What ECAs do not yet support

Two important gaps remain.

External Client Apps do not support the Username-Password OAuth flow. If any of your existing Connected Apps use this flow, you cannot migrate them yet.

They need to stay as Connected Apps until Salesforce adds support, or until you migrate the underlying integration to a supported OAuth pattern such as JWT Bearer Flow.

Push notifications are also not available in External Client Apps. If your Connected App handles mobile push notifications, migration is not yet possible for that specific functionality.

These are the two scenarios where staying on a Connected App is the right call, not a shortcut.

Which of your Connected Apps actually need attention

Before looking at the migration steps, it helps to categorise what you have. Open Setup, search for App Manager, and filter by type. You are looking for Connected Apps that your org created and manages, not managed package apps created by vendors or installed from AppExchange.

Then ask four questions about each one.

Is it still in use?  Check the Connected App OAuth Usage page in Setup. It shows the last authorisation date and the number of active tokens. Apps with no recent activity are candidates for removal, not migration.

Does it use Username-Password OAuth flow?  If yes, leave it on the Connected App for now. Mark it for future review when ECA support for that flow is added.

Does it need to be distributed via managed package?  If yes, migrate it. The 2GP packaging benefits are the clearest case for an ECA, and this is exactly what ECAs were designed for.

Is it an internal integration with no packaging needs?  For integrations that work, are not being distributed, and do not use the Username-Password flow, migration is optional for now. Existing Connected Apps continue to function. Migration for its own sake is not necessary unless you are planning a security audit or a rebuild.

Pre-Migration Audit Checklist Before you start
Export the full Connected App inventory — Open App Manager, filter by Connected App type, export all records. Note the owner, creation date, and last modified date for each one.
Check OAuth Usage for each app Priority — Setup > App Manager > Connected App OAuth Usage. Record the last authorisation date and active token count. Apps with zero recent activity should be deleted, not migrated.
Identify OAuth flow type for every active app Blocker check — Flag any app using the Username-Password OAuth flow. These cannot be migrated to ECAs yet. Keep them on Connected Apps and mark them for future review.
Identify apps with push notification requirements Blocker check — ECAs do not support push notifications. Any Connected App handling mobile push notifications cannot be migrated until Salesforce adds this capability.
Record all OAuth scopes, IP restrictions, and callback URLs — Note the exact settings for each app that will be migrated. You will need these to verify the External Client App plugin configuration post-migration.
Check for Canvas apps and custom attributes — Canvas configuration and custom attributes require separate handling during migration. Identify these before starting so they are not accidentally dropped.
Confirm managed package apps are excluded — Connected Apps installed via managed packages are not yours to migrate. Confirm the distinction before you touch anything. Contact the ISV if you have questions about their migration timeline.
Identify any hardcoded instance URL references Priority — Search your middleware, custom code, and integration configs for instanced URLs (e.g. na1.salesforce.com). These must be replaced with My Domain URLs before the legacy hostname enforcement hits.
Check SAML SSO configurations for Triple DES Priority — Triple DES for SAML stops working in Summer '26. Review SSO configuration signing algorithms now if your org uses Salesforce as an identity provider or service provider.

How to migrate a Connected App to an External Client App in App Manager

Salesforce built a migration path directly into App Manager.

When you migrate, the original Connected App becomes read-only. It keeps its consumer key, and any existing integrations using that key continue to work.

The External Client App gets a new consumer key, and new integrations use that instead.

Consequently, migration does not break anything on day one. The old app keeps working for existing authorisations while you transition connections to the new app.

Step 1: Review the Connected App record

Open App Manager in Setup and locate the Connected App you are migrating.

Make a note of the OAuth scopes, IP restrictions, permitted users policy, and any callback URLs. You will need to replicate these settings in the External Client App.

Also check whether the app has any custom attributes or Canvas configuration, as these need separate handling.

Step 2: Initiate the migration

From the App Manager record, click the dropdown next to the Connected App and select Migrate to External Client App.

Salesforce will walk you through the migration wizard. Review each screen carefully.

The wizard carries over most settings, but the separation of developer settings and admin policies means some configuration moves to a different location than you might expect.

Step 3: Configure the OAuth plugin

In an External Client App, OAuth settings are managed through a plugin model. T

he core app defines what the integration is; the OAuth plugin defines how it authenticates.

During migration, Salesforce creates the plugin automatically from your existing Connected App settings. Verify the scopes, callback URLs, and token policies match what the original app had.

Step 4: Validate in a sandbox first

Do not migrate directly in production. Test the External Client App in a sandbox, update the consumer key in your integration, and run a full authentication flow.

Verify that token issuance, scope enforcement, and callback handling all work as expected before you touch the production app.

Step 5: Update your integration credentials

Once the External Client App is validated in sandbox, update the consumer key in your external system or middleware to point to the new app. Schedule this change for a low-traffic window.

After the cutover, monitor error logs for 24 to 48 hours to confirm the new app is functioning correctly before decommissioning the old Connected App record.

Step 6: Retire the Connected App

After the migration is confirmed and all active tokens have been re-issued against the new External Client App, revoke the old Connected App’s tokens and set it to inactive. Keep the record for 30 days as a rollback reference, then delete it.

Post-Migration Testing Checklist After migration in sandbox
Complete a full OAuth authorisation flow Must pass — Run the end-to-end authentication flow using the new consumer key from the External Client App. Confirm token issuance completes without errors.
Verify all OAuth scopes are correctly applied — Test that the integration can access every API resource it requires, and that it cannot access resources outside its configured scopes.
Test callback URL handling — Confirm that the callback URL in the External Client App OAuth plugin matches what your integration sends, and that the redirect completes successfully.
Test token expiry and refresh behaviour Must pass — Deliberately expire an access token and confirm the integration handles the refresh correctly. This is the most common failure point after an OAuth migration.
Test with a restricted-permission user — Attempt authorisation with a user whose profile does not have full API access. Confirm the ECA admin policy enforces access correctly and the error message is meaningful.
Verify IP restriction enforcement — If the original Connected App had IP restrictions configured, test access from both inside and outside the allowed range to confirm the ECA enforces the same policy.
Confirm the original Connected App is now read-only — After migration, the source Connected App should be read-only in App Manager. Verify this before proceeding to production.
Monitor error logs for 24–48 hours post-production cutover Final step — After updating the consumer key in production, watch your integration error logs and Salesforce Login History for authentication failures before retiring the old Connected App.

What to expect in Summer ’26 and beyond

The current situation is that existing Connected Apps continue to work, new creation requires a Support request, and Salesforce has indicated that the Support workaround will itself go away in a future release.

The expected enforcement deadline referenced across Salesforce partner communications is Summer ’26.

Summer ’26 also brings a separate but related enforcement: Triple DES for SAML Single Sign-On configurations stops working completely.

If your org uses SAML SSO and the signing algorithm is Triple DES, that configuration breaks in Summer ’26 regardless of whether you have migrated your Connected Apps.

Specifically, this affects both configurations where Salesforce is the identity provider and configurations where it is the service provider.

Additionally, the legacy hostname retirement is an ongoing enforcement.

Any integration, bookmark, or hardcoded URL still referencing old Salesforce instance URLs rather than My Domain will fail once the redirection ends.

Audit your middleware, custom code, and SSO configurations for instanced URL references.

The TLS certificate changes happening in parallel

Running alongside the Connected Apps migration is a separate but equally important change: TLS certificate lifespans are getting shorter, and they will keep getting shorter over the next three years.

This is not a Salesforce-specific decision.

The CA/Browser Forum, the consortium that sets standards for digital certificates, voted in April 2025 to mandate progressive reductions in certificate validity. Salesforce is following the industry timeline.

The schedule

Until March 14, 2026: maximum certificate lifespan is 398 days (the previous standard).

   -From March 15, 2026: new certificates have a maximum lifespan of 200 days.

   -From March 15, 2027: the maximum drops to 100 days.

   -From March 15, 2029: the maximum drops to 47 days.

Existing certificates keep their current expiration dates. Self-signed certificates are not in scope. However, any CA-signed certificate created from March 15, 2026 onward falls under the new rules immediately.

What this means in practice

By 2029, teams managing certificates manually will be renewing them roughly eight times a year instead of once.

That is not a sustainable process without automation. The organisations that start planning now are the ones that will not face emergency renewal work when the 47-day window arrives.

Three actions are worth taking now. First, stop certificate pinning. Pinning hardcodes a specific certificate in your integration code, which means every rotation breaks the connection.

Second, assign the Expired Certificate Notification permission to at least two admins in your org. Salesforce is also stopping the practice of manually announcing first-party certificate rotations, so automated alerts inside the org are the replacement.

Third, review whether the Certificate Metadata API can automate your renewal process. For Experience Cloud custom domains, the Salesforce CDN handles certificate management automatically.

For integrations using CA-signed certificates, your IT or security team should evaluate whether a Certificate Lifecycle Management tool is worth implementing now before the 100-day window takes effect in 2027.

Common mistakes to avoid during this migration

Migrating without an inventory

The Connected Apps that matter in your org are rarely the ones you remember. Before starting any migration, run the Connected App OAuth Usage report in Setup and export the full list.

Apps with zero recent activity are deletion candidates. Apps with active tokens but no known owner are a security risk that this migration is a good excuse to address.

Testing only the happy path

Most integration failures after an app migration happen in error scenarios, not in the main flow.

After migrating to an External Client App, test what happens when a token expires, when a callback URL is wrong, and when a user with restricted permissions tries to authorise. These edge cases are where the differences between Connected Apps and ECAs are most visible.

Ignoring the Username-Password flow gap

If an integration uses the Username-Password OAuth flow and you migrate its Connected App, the integration stops working. There is no fallback.

Audit your OAuth flows before migrating and flag any that use Username-Password as blocked migrations until Salesforce adds support or you rebuild the auth layer.

Skipping the sandbox validation step

The App Manager migration wizard is straightforward, but the configuration differences between Connected Apps and ECAs are subtle enough that production testing without a sandbox run first is not worth the risk. The migration takes longer when you do it properly once than when you have to rollback and redo it.

The migration window is open. The orgs that plan this properly in Spring ’26 are the ones that will not be scrambling when Summer ’26 enforcement arrives.

Have connected apps in production that you have not looked at in a while? Now is the time.

Our Salesforce team can audit your org and help you migrate without surprises. Reach out to us. Follow us on LinkedIn for more release-critical updates.

Get Your Free
Consultation Now!

Ready to transform your Salesforce experience?
Whether you have a question, need a custom solution, or want to learn more about our services, the TrueSolv team is here to help.
Fill out the form, and let's work together to elevate your business operations!

Contact Form Demo
TrueSolv Blog Carousel

Learn More In Blog

Insights, how-to's and Salesforce best practices from the TrueSolv team