The next Salesforce release is upon us, and with a new release comes a new API version… API Version 54 to be exact. So, we take a look at the Spring ’22 Release for Developers, what are the key features and changes we need to know to be ‘release ready’?
Let’s dive into the Spring ’22 Release, and see some of the key features heading our way which may be relevant for you and your development team(s).
Looking for an overview of the top features? Check out our breakdown for Sales/Service/Experience Clouds.
Spring ’22 Release: Key Dates
The dates you need to keep in mind for Spring ’22 Release are outlined here in detail.
Sandbox Previews have commenced, and the rollout globally should be completed within the next four weeks. With the Spring ’22 Release available for some orgs this weekend (14th Jan 22). Most orgs will receive it on the weekend of the 4th Feb or 11th Feb:
Spring ’22 Release: Enforced Release Updates
Starting off, let’s take a look at the Release Updates which will be enforced as part of the release.
General Salesforce Platform/Security Updates:
Enforce CORS Allowlist for Lightning Apps
The CORS allowlist in Setup isn’t currently enforced for Lightning apps on the server, although it’s enforced on the browser. This update enforces the allowlist on the server so that disallowed requests are blocked earlier and not processed on the server.
Login Credentials Using URL Query Strings Are Disabled
To improve security, users can no longer log in to Salesforce by using a username and password as URL query string parameters to the login URL. Any users who try to do so are redirected to the login page.
Require Multi-Factor Authentication for Logins to Subscriber Orgs
With this update, we secure access to subscriber orgs by requiring multi-factor authentication (MFA) when logging into the License Management Org (LMO). MFA is required only for LMO users who require access to the Subscriber Support Console.
Enable Visualforce Expression Language Apex Method Access Modifier Enforcement
When accessing Apex methods defined by custom controllers, the Visualforce Expression Language doesn’t correctly validate the access modifiers of the method. Developers can sometimes access unauthorized data on managed and system classes. To improve security, this update validates the Apex method access modifier and throws an error if the Visualforce Expression Language can’t access it.
Product Specific (CPQ):
Get Ready for Browser Performance Improvements for Salesforce CPQ (Release Update)This update allows Salesforce CPQ to run faster in supported web browsers by employing new Web Components V1 technology.
Plan/Roadmap for Summer ’22:
And looking forward, remember to also review and start preparing for the enforced Release Updates in the Summer ’22 release, which is due for release around mid June 2022 for most orgs.
The key Release Update that is planned for Summer ’22 is the retirement of legacy APIs – this will only impact older orgs. But the headline: if your org is using API version 7 to 20 for SOAP, REST, or BULK APIs – you’re going to need to plan and make changes before the Summer ’22 release.
Spring ’22 Release for Developers: Key Features/Changes
Now let’s turn our attention to some of the new features being introduced.
This list is in no particular order and I am focussing more of general platform items that may apply more broadly. So product specific changes for Marketing Cloud/Wave/etc aren’t listed, as always please refer to the Release Notes for a complete list.
Workflow Rules & Process Builder Phased Retirement:
As per the announcement last year that Process Builder and Workflows will be retired. Salesforce has launched a beta of the new ‘Migrate to Flow’ Tool, aimed at helping Admins and Developers migrated existing Workflows to Flow.
Lightning Web Components (LWC):
Enable Third-Party Integrations with Light DOM
There is a new beta feature being introduced to give developers and integrations more control of the DOM. Salesforce is introducing the ability to render LWC via the Light DOM. By default Salesforce LWCs render in the Shadow DOM which presents developers some challenges re: global styling and third-party integrations.
With this beta, we can now set the
renderMode static field in your component class.
Read the release notes for this beta feature here – as they outline how to use this new feature, and highlights a number of considerations about when you should/shouldn’t use it.
Secure Your Components Better, Stronger, Faster with Lightning Web Security
The Spring ’22 Release also sees Lightning Web Security (LWS) become ‘generally available’.
Lightning Web Security aims to replace Lightning Locker for Lightning web components. LWS works along with Lightning Locker, which is still used for Aura components.
LWC – New Module:
This new module includes new wire adapters to get records, metadata, and record count for a related list.
getRelatedListRecords—Returns record data for a related list.
getRelatedListInfo—Returns metadata for a related list.
getRelatedListsInfo—Returns metadata for multiple related lists.
getRelatedListCount—Returns the record count for a related list.
LWC & Aura – Changed Components:
LWC: lightning-datatable Aura: lightning:datatable
This component introduces a new method openInlineEdit() allowing developers to programmatically change an editable focused field to edit mode from an external element such as a button. There are also some additional column properties introduced in this release.
To see this change in action, you can pop over here to read more.
getAssociateEntityType()method returns an associated object of a specified parent but only if it’s a specific associated object type
getAssociateParentEntity()method returns an associated object but only if it’s associated to a specific parent object
The example provided in the developer documentation highlightsAccount &Account History: Invoking the method on AccountHistory returns the parent object as Account and the type of associated object as History
Also another addition of note is relating to the System Namespace.
With a number of new Classes and Methods added in this release to help with hostnames and domains which are used within your org. This will reduce the need to create ‘workaround’ methods to calculate domain/hostnames when dealing with Lightning, sandbox names or Experience Cloud hostnames from within an org.
getDomainType()method returns the type of domain
getSandboxName()method returns the name of the associated sandbox.
getLightningHostname()method returns the hostname for your org’s Lightning pages
getExperienceCloudSitesHostname()method returns the hostname for the system-managed domain for your org’s Experience Cloud sites
parse(hostname)method to parse a Salesforce owned hostname for your org, such as
parse(url)method to parse a Salesforce URL for your org, such as
As mentiond below in Security, there is a new method introduced
There is a change to improve the consistency of results and reduces errors when using this function in Apex.
- Test Permission Set Groups with the calculatePermissionSetGroup() Method
Modify and recalculate permission set groups in Apex tests using the
calculatePermissionSetGroup()method in the
System.Testclass. With this method you can force a calculation of aggregate permissions on a permission set group (PermissionSetGroup object) during a deployment.
- Enable Stronger Protection for Your Users’ Personal Information
Enable Enhanced Personal Information Management to prevent external users, such as portal or community users from accessing other users’ personal information.
This feature, which replaces the Hide Personal Information setting, secures more personal identifiable information (PII) user record fields. You can also decide which custom and standard user fields are considered PII.
This update is available in Spring ’22 under Release Updates.
- Create HTTPS Hyperlinks by Default
When you save content in Salesforce that contains a URL without a protocol, Salesforce converts it to a hyperlink by assigning the HTTPS protocol. For example, if you type example.com in a Chatter post, Salesforce converts it to https://example.com when you save the post. Previously, Salesforce assigned the HTTP protocol for hyperlinks. If a link requires the HTTP protocol, enter the http:// prefix as part of the URL.