Salesforce Spring ’23 Release Notes are here. What is the better utilization of holiday period then reading the latest Salesforce release notes and learning new things. Like with every release salesforce comes with lots of new exciting features. So today we will take a quick overview of latest Salesforce Spring ’23 release.
Salesforce Spring ’23 Release Notes Points Related to Salesforce Admin
Be Ready for MFA: Auto-Enablement Starts with Spring ’23
With the Spring 23 release Salesforce will enable MFA for direct logins. I suggest you to implement and roll out MFA on your own instead of waiting for Salesforce to do it to avoid any last minute surprise.
Limit the Maximum Number of Loaded Lightning Console Tabs in a Session
By default, content is loaded in all console tabs opened during a Lightning console session. To improve memory usage and the scalability of console sessions in Lightning Experience, we can now set the maximum number of loaded console tabs. If we exceed the limit during a console session, this feature unloads our least recently used tabs until our tab limit is met. Unloaded tabs are still visible in our tab navigation, but they only reload their content when we click them. So it save some memory and improve performance.
Stay in Lightning Experience When Editing Lightning Reports
The Lightning Report Builder now has all the features of Salesforce Classic, so we don’t need to go back to Classic to access certain features. Salesforce has also removed the Edit in Classic button from the Row Level Actions menu on the Lightning Reports page.
Clean Up Inactive Picklist Values (Generally Available)
Manage inactive picklist values and enforce limits on inactive values for custom picklists to improve system performance and overall health. We can now bulk delete inactive unused picklist values. Previously, custom picklists with many inactive values were difficult to maintain because we had to delete inactive values one at a time. This feature is available only for custom picklists with predefined values. This feature is now generally available.
Enhance Case and Lead Record Pages with Dynamic Forms
We can now make case and lead record pages more robust by configuring them with Dynamic Forms. Previously, this capability was available only for account, person account, contact, and opportunity record pages.
Take Advantage of Dynamic Actions for Standard Objects (Generally Available)
We can now add more flexibility and control to actions on the record pages with dynamic actions for all standard objects(now generally available for desktop). Previously, dynamic actions were generally available only for Account, Case, Contact, Lead, and Opportunity for desktop. Dynamic actions for custom objects are also generally available for desktop and mobile. Assign actions in the Lightning App Builder instead of the page layout, and apply filters to control when and where actions appear for users.
Add Save Options to Accounts, Cases, and Leads with Dynamic Forms
We can now add a save option with Dynamic Forms when creating, editing, or cloning a case or lead or when editing an account. For example, We can trigger territory assignment rules when saving a new lead. Previously, this option was available only on page layouts.
Learn Who Can Access Records and Why
Understanding who can access a record is critical to securing record access in the organization. We can now check record’s sharing hierarchy to view who it’s shared with. We can also see the user’s reason for access and find out if a user’s access is blocked by a restriction rule. Using this feature we can easily track the reason user has access and can make changes in that.

Recalculate Account Sharing Rules Faster (Beta)
Salesforce is changing the way that automatic sharing rule calculation works behind the scenes for case objects. The implicit share records between accounts and their child case records are now virtual. Sharing calculation for an account’s related objects can influence account sharing rule calculation. So speeding up case object calculation leads to faster org-wide default and account sharing rule recalculation.
Salesforce Spring ’23 Release Notes Points Related to Salesforce Developer
Query DOM Elements with Refs
In Lightning Web Components we can use refs to access elements in shadow DOM and light DOM. Refs locate DOM elements without a selector and only query elements contained in a specified template. Previously, we could only use querySelector()
to locate specific DOM elements.
<template>
<div lwc:ref="myDiv"></div>
</template>
export default class extends LightningElement {
renderedCallback() {
console.log(this.refs.myDiv);
}
}
Enable Third-Party Integrations with Light DOM (Beta)
Lightning web components render in shadow DOM by default, providing strong encapsulation but posing challenges for global styling and many third-party integrations. With light DOM, our component markup is attached to the host element instead of its shadow tree. You can then access it like any other content in the document host.
Find Which Apex Classes Implement an Interface (Generally Available)
ApexTypeImplementor
is now generally available and is updated since the beta release. Use the object to find Apex classes that directly or indirectly implement an interface. Using a SOQL query, we can get information about public or global Apex implementors.
// Common interface that all rounding strategies will implement
public interface RoundingStratergy {
Decimal round(Decimal toRound);
}
public abstract class RoundingStrategies {
public class Ceiling implements RoundingStratergy {
public Decimal round(Decimal toRound) {
return toRound.round(System.RoundingMode.CEILING);
}
}
public class HalfDown implements RoundingStratergy {
public Decimal round(Decimal toRound) {
return toRound.round(System.RoundingMode.HALF_DOWN);
}
}
public class TwoDecimalPlaces implements RoundingStratergy {
public Decimal round(Decimal toRound) {
return toRound.setScale(2, System.RoundingMode.HALF_UP);
}
}
}
List<ApexTypeImplementor> interfaceImpls = [
SELECT ClassName, ClassNamespacePrefix
FROM ApexTypeImplementor
WHERE InterfaceName = 'RoundingStratergy' and IsConcrete=true];
// For example, an Admin could be presented with a list of Apex classes
// that could be applied. Simulated selection of 2 decimal places
ApexTypeImplementor selectedRoundingStratergy = interfaceImpls[2];
System.assertEquals('RoundingStrategies.TwoDecimalPlaces',
selectedRoundingStratergy.ClassName);
// Create an instance of the class that implements the interface
RoundingStratergy rs = (RoundingStratergy) Type.forName(selectedRoundingStratergy.ClassNamespacePrefix,
selectedRoundingStratergy.ClassName).newInstance();
Decimal rounded = rs.round(7.1459);
System.assertEquals(7.15, rounded);
Use the System.enqueueJob Method to Specify a Delay in Scheduling Queueable Jobs
A new optional override adds queueable jobs to the asynchronous execution queue with a specified minimum delay (0–10 minutes). Using the System.enqueue(queueable, delay)
method ignores any org-wide enqueue delay setting. The delay is ignored during Apex testing.
Integer delayInMinutes = 5;
ID jobID = System.enqueueJob(new MyQueueableClass(), delayInMinutes);
Specify an Org-Wide Default Delay in Scheduling Queueable Jobs
Admins can define a default delay (1–600 seconds) in scheduling queueable jobs that were scheduled without a delay parameter. Use the delay setting as a mechanism to slow default queueable job execution. If the setting is omitted, Apex uses the standard queueable timing with no added delay.
Restrict Anonymous Apex Access to Core Users
By using the RestrictCommunityExecAnon preference, admins can restrict anonymous Apex execution to core users, such as Standard and CsnOnly users. The feature is enabled by default in new orgs but disabled in existing orgs to avoid disrupting customer usage. When enabled, noncore users can’t execute anonymous Apex regardless of any other user permissions that are set, such as Author Apex. Noncore users include these user types: PowerPartner, Partner, PowerCustomerSuccess, Guest, and CSPLitePortal.
Manage and Release Changes with DevOps Center (Generally Available)
Manage your changes and releases using the DevOps Center point-and-click interface, or directly from the source control system, or a combination of both. Under the hood, we manage the source control branches so developers and builders can focus on development tasks.
So these are few points which I like most in Salesforce Spring ’23 Release Notes. For Flow we will cover them in a separate post. You can also signup for pre release org here. So which point you like most, let me know in comments. Happy Programming 🙂
Hey, I swa they have mentioned “REV-242 R2a – CPQ, Billing, Advanced Approvals – The Advanced Approvals package, if installed, will also be upgraded to the latest version” there will be package upgrade for Advance Approvals. But did not find anything in the 23 release notes. What actually they are going to upgrade? is there any impacts for PRODUCTION?
You can raise ticket for same.