So Salesforce Spring ’21 Release Notes are here. And this means lots of new and exciting features are coming. Although we have already covered few of them. So lets take a quick overview of all the upcoming features.

Salesforce Spring 21 Release Notes points related to Salesforce Admin
Lightning Flow Is Now Salesforce Flow
The Lightning Flow suite of features is now called Salesforce Flow, and it still includes all your processes and flows. Lightning Flow Builder and Lightning Process Builder are now called Flow Builder and Process Builder.
Refer to the Prior Values of the Record That Triggered Your Flow
Now we can access Record’s Prior value in Salesforce Flow. The $Record__Prior
global variable contains the old values. $Record__Prior
is available in specific Flow Builder locations that read from global variables, including:
- Formulas
- Action input values
- Assignment values
- Decision outcomes
- Filters and individual field values when creating, updating, getting, or deleting records
You can check working demo/sample here.
Run Part of a Record-Triggered Flow After the Triggering Event
We can add a Scheduled Path to our record triggered flow if we want part of our flow to run at schedule time. This is similar to what we have in Process builder and workflow time based action.

Scheduled paths are available for record-triggered flows that run after the record is saved. When we open a flow, the option to add scheduled paths is on the Start element. If this option is missing, check whether flow can be triggered to run when a record is updated. If yes, configure the flow to run for updated records only when a record is updated to meet the condition requirements.
Build Multicolumn Screens in Flow Builder (Beta)
We can now build multi column screen in Flow builder. We can use the section component to create multiple columns. and this is how our UI will look like.

You can check step by step guide here.
Control Revisited Screen Component Values in Flows
We now have control of What we want to do when user visit Old screen in Screen Flows. Previously it always keeps the old values but now we can decide if we want to keep the old values or if we want to refresh the values. To access this, From the component’s properties pane, select Advanced, and select an option for Revisited Screen Values.

View Flow Label in Browser Title from Debug or Flow Runtime
We can now see Flow label in the browser tab title and that make it easy to identify flows.. Previously, the browser tab displayed the unreadable flow URL. We will see the flow label in the browser tab title when we run the flow with:
- A custom button or link
- A direct URL
- The Run button or link in Setup
- The Debug button in Setup
Access Complex Merge Fields from Loops
Now we can loop through a collection via merge fields on complex objects such as an Apex-defined variable or output from a custom action or screen component. Previously, we weren’t able to access merge fields on complex objects.

Debug Failed Flows More Easily
Now whenever a Flow failed. We will receive a link in the error email to open Flow Builder and see the failed flow interview’s path on the canvas. The detailed error information appears next to the canvas.
In a flow error email, click Flow Error: Click here to debug the error in Flow Builder.
If the error email contains debug information for more than one flow interview, the email indicates the number of flow interviews. For example: Flow Error (1 of 2): Click here to debug the error in Flow Builder.
See Accurate Flow Information in Debug Logs
Debug logs now record the total amount of CPU time consumed by a particular flow or process in the FLOW_INTERVIEW_FINISHED_LIMIT_USAGE log lines. Also, the FLOW_INTERVIEW_LIMIT_USAGE log lines now accurately record the CPU time consumed by flows and processes that are configured to run in API version 51.0 or later.
Configure Invocable Actions in Flow Builder More Easily with Custom Property Editors (Generally Available)
Developers can now create Custom property Editor using which we can configure custom Invocable action in flow builder. A custom property editor is simply a Lightning web Component.

Enable Partial Save for Invocable Actions (Update, Enforced)
When we make external REST API calls to Invocable actions done in bulk. With this update, when invoking a set of actions in a single request, a single failed Invocable action no longer causes the entire transaction to fail. Without this update, if a single invocable action fails, other invocable actions within the transaction are rolled back and the entire transaction fails. So it will help us during bulk data processing using API.
Check for Null Record Variables or Null Values of Lookup Relationship Fields in Process and Flow Formulas (Update, Enforced)
previously when we refer parent field and the lookup is blank we get the exception. So we need to explicitly check the related field before referring the parent fields. Now it will return null instead of an exception so we don’t need the extra check.
Enforce Data Access in Flow Merge Fields (Update, Enforced)
With this update enabled, a flow merge field that accesses a related record respects the running user’s object permissions, field-level access, and record-level access such as sharing rules. Previously Flow merge field ignore these checks so now if user don’t have access they won’t be able to access data.
Require the View All Lookup Record Names Permission
We can restrict who can view record names in lookup fields and system fields, such as Created By and Last Modified By. If we enable the Require permission to view record names in lookup fields setting, users need Read access to these records or the View All Lookup Record Names permission to view this data.
Use Lightning Email Templates in Salesforce Automations
We can now use Lightning email templates—including Email Template Builder email templates—in Salesforce automations, including email alerts, Flow, Workflow, Process Builder, Approval Processes, and more.
Distribute Lightning Email Templates with Packaging and Change Sets
We can now distribute Lightning Email template template with package and change set. Previously we can only use classic email template here.
Add Zoom Meeting Links to Events Created Using Insert Availability
Sales reps can now connect their Zoom accounts and automatically add Zoom meeting links to invitations created using the Insert Availability feature in Lightning Experience email. Automated Zoom meeting link additions means reps no longer add links manually after attendees select an event time.
Share Records with Manual Sharing
We can now Share records using manual sharing in Lightning experience. Previously either we need to switch to classic or need to use third party app in lightning.

Salesforce Spring 21 Release Notes points related to Salesforce Developers
More Support for Dynamic Actions
We can Assign actions in the Lightning App Builder instead of the page layout, and apply filters to control when and where actions appear for users. Dynamic actions for custom objects are now GA for mobile, and have been GA for desktop since Winter ‘21. For Account, Case, Contact, Lead, and Opportunity are now GA for desktop. Dynamic actions for all other standard objects are Beta for desktop.
Access Custom Metadata Type Records Using Static Methods
We can now use the Apex getAll()
, getInstance(recordId)
, getInstance(qualifiedApiName),
and getInstance(developerName)
methods to retrieve information from custom metadata type records faster. These methods don’t rely on the SOQL engine and return the sObject details directly from the call. So we no longer need to make SOQL query. Also if we add new fields in custom metadata we don’t need to update our SOQL.
Customize Markers and Control Map Behavior in lightning-map
Base Component
We can now change the map markers, or define a shaded circle, rectangle, or polygon around a location. Modify or disable the zoom and dragging behavior, or disable the map controls altogether to create a static map.
Create a Lightning Web Component Action (Pilot)
So finally we can use LWC component in quick action directly without the need of parent Aura component. This is still in pilot for now. But this will be a great addition to LWC. LWC actions offer advantages such as the ability to easily customize headers and footers, and to create actions that have no UI representation.
Use Einstein OCR to Detect Text in PDFs (Beta)
Einstein OCR (optical character recognition) now supports documents in PDF format in addition to graphic image formats. So to detect text in a PDF, we can pass the file as you would an image file. Use either the sampleLocation
parameter that contains the URL to the PDF file, or the sampleContent
parameter that contains the binary content of the file uploaded as multipart/form-data. You can check how you make OCR request from Apex here.
Salesforce Functions: Extend Salesforce with Functions (Beta)
Salesforce Functions is a service that lets developers write code that integrates with their data and events on the Salesforce Platform, and run it on-demand with elastic scale in a serverless environment. Finally we can write JavaScript or TypeScript code that uses the Salesforce Functions Node SDK to communicate with Salesforce org.
Securely Call the Visualforce Remoting API (Update)
To improve security of the Visualforce JavaScript Remoting API, this update modifies how the CSRF token is created for the Visualforce $RemoteAction
global variable. This validation adds more protection to API remoting calls by guest users. Also, this update validates the {"apexType": "Object"}
parameter used by the Visualforce $RemoteAction
global variable against the Apex method parameter and throws an error if the apexType
parameter is invalid. This validation prevents users from providing Apex objects they can’t access or providing Apex objects that don’t satisfy the Apex method parameter.
Attach Actions to Asynchronous Apex Jobs Using Transaction Finalizers (Beta)
The Transaction Finalizers feature enables us to attach actions, using the System.Finalizer interface, to asynchronous Apex jobs that use the Queueable framework. A specific use case is to design recovery actions when a queueable job fails. Before Transaction Finalizers, there was no direct way for us to specify actions to be taken when asynchronous jobs succeeded or failed. You could only poll the status of AsyncApexJob using a SOQL query, and re-enqueue the job if it failed. With transaction finalizers, we can attach a post-action sequence to a queueable job and take relevant actions based on the job execution result.
Flag Invocable Apex Methods That Make Callouts
We can now add a callout attribute to the invocable Apex method annotation. With this information, a flow calling the action knows how to manage the transaction at run time.
@InvocableMethod(callout=true, label=”My Action Label”)
Convert Leads to a Person Account and a Business Account at the Same Time with New LeadConvert Methods
We can now convert a lead to Business Account and a Person account instead of Contact.
getRelatedPersonAccountId()
Gets the ID of an existing person account to convert the lead into, in addition to the business account.
setRelatedPersonAccountId(relatedPersonAccountId)
Sets the ID of the existing person account to convert the lead into, in addition to the business account.
getRelatedPersonAccountRecord()
Gets the entity record of a new person account to convert the lead into, in addition to the business account.
setRelatedPersonAccountRecord(Entity relatedPersonAccountRecord)
Sets the entity record of a new person account to convert the lead into, in addition to the business account.
Example:
Database.LeadConvert lc = new database.LeadConvert();
lc.setLeadId(leadId);
lc.setAccountId(existingBusinessAccountId);
lc.setRelatedPersonAccountId(existingRelatedPersonAccountID);
lc.setOpportunityId(existingOpportnityId);
lc.setSendNotificationEmail(true);
LeadStatus convertStatus = [SELECT Id, MasterLabel FROM LeadStatus WHERE IsConverted=true LIMIT 1];
lc.setConvertedStatus(convertStatus.MasterLabel);
Database.LeadConvertResult lcr = Database.convertLead(lc);
System.assert(lcr.isSuccess());
Fine-Tune Your Data Security with Data Mask
We now have more control in data masking configuration, or incrementally mask only newly added data. Enhanced Data Mask features give you powerful new ways to secure all your sensitive data. Use Data Mask to automatically mask the data in a sandbox. Previously we need to run custom script to mask important data.
SOQL
Salesforce Object Query Language (SOQL) now makes it easy to include pre-defined groupings of fields within a query statement using the new FIELDS()
function. Use FIELDS(ALL)
, FIELDS(STANDARD)
, or FIELDS(CUSTOM)
in your SELECT
statements.
Submit Your Solution Faster and Track Progress with the Redesigned AppExchange Security Review
The redesigned AppExchange security review interface adds support for more solution types, such as Salesforce B2C Commerce and Quip apps. Check the review progress component to see remaining tasks, review status, and Product Security requests.
You can check the complete Salesforce Spring ’21 Release Notes here. You can also signup for pre-release org here. As this release is mostly focused on Salesforce Flow. And with addition of Einstein Automate, Flows will replace many components.
Let me know your favorite feature in Salesforce Spring ’21 Release Notes in comments. Happy programming 🙂
2 thoughts on “Salesforce Spring ’21 Release Notes: Quick Overview”