Salesforce Winter ’22 Release Notes

Salesforce has Published Winter ’22 Release Notes, Through this blog post I am sharing some of the key details about the release and the Very Useful features in this release which I reviewed..


  • August 12: Get early access by signing up for a pre-release org
  • August 16: Review the Release Notes
  • August 26 before 6 p.m. PT: Be sure to refresh your sandbox
  • August 27-28: Sandbox preview begins –
  • September 6:  Learn MOAR about Winter ’22 features
  • September 10: Join us live for the Awesome Admin Release Preview
  • September 13-17: Watch Release Readiness LIVE by cloud
  • September 10, October 1, & October 8: Winter ’22 arrives!

The Release Date for Winter ’22 will depend on your instance of Salesforce, mostly on below dates of most of customers..

  • September 11th
  • October 2nd
  • October 9th

You can check the same for your org at Salesforce Trust and click on your instance name and hit “Maintenance”.

Key dates for Winter '22 Salesforce Release.


Create a new sandbox that goes to a preview instance and gets the Winter ’22 previewCreate a new sandbox that goes to a non-preview instance and stays on Summer ’21
Submit your sandbox request well ahead of the 6:00 PM PT cutoff on August 26, 2021 (01:00 UTC on August 27, 2021) so that the sandbox copy is completed before the sandbox release.  Plan ahead. If you submit your request too close to the deadline and the copy isn’t completed, or if your request is after the deadline, your Sandbox is built on a non-preview instance.Wait to submit your request to create a sandbox until after 6:00 PM PT on August 26, 2021 (01:00 UTC on August 27, 2021). If you submit your request before then, your Sandbox can be built on a Preview Instance.

When and Which Sandbox to Refresh

 Find your sandbox instance Refresh to a preview instance and try Winter ’22 in your sandboxRefresh to a non-preview instance and stay on Summer ’21
CS2, CS4, CS5, CS7, CS9, CS11, CS14, CS15, CS17, CS19, CS20, CS21, CS23, CS25, CS26, CS27, CS28, CS31, CS32, CS34, CS35, CS36, CS37, CS41, CS42, CS44, CS45, CS47, CS53, CS57, CS59, CS61, CS63, CS67, CS69, CS72, CS74, CS75, CS76, CS77, CS78, CS79, CS80, CS81, CS84, CS87, CS88, CS91, CS95, CS96, CS97, CS99, CS105, CS106, CS107, CS108, CS109, CS111, CS112, CS113, CS116, CS122, CS123, CS124, CS125, CS126, CS127, CS128, CS129, CS133, CS137, CS138, CS142, CS152, CS159, CS160, CS166, CS167, CS169, CS172, CS174, CS189, CS190, CS191, CS192, CS193, CS194, CS195, CS196, CS197, CS198, CS199, CS201, CS203, CS209, CS210, CS211, CS212, CS213, CS214, CS215, CS216, CS217, CS234, AUS2S, AUS8S, AUS22S, AUS24S, AUS26S, BRA2S, CAN2S, CAN6S, DEU2S, DEU6S, FRA2S, IND3S, IND4S, IND6S, IND8S, IND10S, JPN2S, JPN6S, JPN10S, JPN12S, SPG2S, USA3S, USA8S No action needed. Your sandbox is already on a preview instance and gets upgraded to Winter ’22 on August 27, 2021. If you must refresh your sandbox for other reasons, do so well in advance of 6:00 PM PT on August 26, 2021 (01:00 UTC on August 7, 2021) to make sure that your sandbox is completed before the cutoff date.If you refresh your sandbox after the deadline or your sandbox isn’t completed in time, it is built on a non-preview instance.Refresh to a non-preview instance after the cutoff date to have a sandbox on Summer ’21.

To do so, wait to refresh after 6:00 PM PT on August 26, 2021 (01:00 UTC on August 27, 2021). If you refresh your sandbox sooner, it can be built on a Preview Instance.Refreshing a sandbox deletes it and recreates it as a new copy of production. Be sure to save any configurations or data unique to the sandbox elsewhere before refreshing it.

CS1, CS6, CS8, CS10, CS16, CS18, CS22, CS24, CS29, CS33, CS40, CS43, CS50, CS58, CS60, CS62, CS64, CS65, CS66, CS68, CS73, CS86, CS89, CS90, CS92, CS94, CS98, CS100, CS101, CS102, CS110, CS114, CS115, CS117, CS119, CS121, CS132, CS148, CS151, CS162, CS165, CS170, CS171, CS173, CS200, CS202, CS218, CS219, CS220, AUS4S, AUS6S, AUS10S, AUS28S, AUS30S, AUS32S, AUS34S, BRA4S, CAN4S, CAN8S, DEU4S, DEU8S, FRA4S, IND2S, IND14S, IND16S, IND18S, IND20S, IND22S, JPN8S, SPG4S, USA2S, USA10SYour sandbox is on a non-preview instance.  Refresh it between now and 6:00 PM PT on August 26, 2021 (01:00 UTC on August 27, 2021) to try out Winter ’22. If you refresh your sandbox after the deadline or your Sandbox isn’t completed in time, it is built on a non-preview instance.No action is needed because your sandbox is on a non-preview instance and stays on Summer ’21.

If you must refresh your sandbox for other reasons, wait to refresh it after 6:00 PM PT on August 26, 2021 (01:00 UTC on August 27, 2021) to remain on a non-preview instance.

Note: If you decide to keep your sandbox on the current Summer ’21 release, your sandbox won’t be upgraded to Winter ’22 until October 9, 2021.

I have a sandbox that I want to clone – what are my options?

Before the sandbox preview windowSandbox clone requests are routed to a preview instance until 6:00 PM PT on August 26, 2021 (01:00 UTC August 27, 2021)
During the sandbox preview windowFrom 6:00 PM PT on August 26, 2021 (01:00 UTC August 27, 2021) through October 9, 2021, we process sandbox clone requests on the same release version of Salesforce as the sandbox being cloned.


I consolidated All the reviewed Notes/features into below categorization

  1. In-App Guidance
  2. Reports & Dashboards
  3. General Functionalities
  4. Admin/Configuration
  5. Development
  6. Lightning Flows
  7. Sales & Service Cloud
  8. CPQ & Billing
  9. Security and Access Management
  10. Enforced/Critical Updates
  11. Features Expired/Deprecated

In-App Guidance

  1. Route to the Specific Elements on a Page with Targeted Prompts

Now we can Target a specific page element to show your users exactly what you’re referring to with the newest type of in-app guidance.

Targeted prompt shown in the In-App Guidance Builder

2. Display In-App Guidance for Required Record Types or Differentiate

We can choose if you want in-app guidance to appear for all or only a specific record type. And you can customize your message so that users get detailed help for the unique layout and picklists of different record types.

When we add or edit in-app guidance that has more than one record type and you want the prompt to appear only for a specific record type, select the checkbox in the Record Type area.

Record Type area shown in the In-App Guidance Builder

Reports & Dashboards

3. Automatically Tune Your Dashboards to Your Business Goals with Dynamic Gauge Charts

This feature is in  (Beta).

Dashboard gauge charts are awesome to track your performance and business goals, but your business is always changing. With dynamic gauge charts, you’re no longer tied to static goals or performance levels. Build your gauge chart using report metrics and field values that respond dynamically to your business. For example, a gauge chart can show how a subsidiary’s sales are doing relative to your overall business.

you can create a gauge chart with fixed values as you usually do. In Dynamic mode, you have dynamic control over the chart measure, indicated by the pointer, and the chart target, or maximum value in the chart.

Edit Component window showing the preview pane and the Dynamic button
Gauge chart showing the ACV for the Singapore subsidiary relative to the ACV for the overall business

4. Update More Fields from the Report Run Page with Expanded Inline Editing 

This feature is in  (Beta).

Update your reports more efficiently without losing your place by clicking back and forth. Inline editing is now supported for date, picklist, and lookup fields. When your report data gets out of date, you can edit it right on the report run page. For example, sales reps can update opportunity statuses directly from their pipeline reports. Previously, inline editing was supported only for text and numeric fields.

Now open a report and hover over the field that you want to edit. If you see a pencil icon, click it, modify the value, and save. The field value is updated on the report and in the source record, and the report reruns automatically.

Inline editing on the report run page

A lock icon means that the field isn’t available for inline editing.

Inline editing lock icon on the report run page

Inline editing isn’t supported for these fields and field types.

  • Task and event object fields
  • Owner fields
  • System fields, such as Record ID and Created Date
  • Compound fields, including name and address fields
  • Encrypted text fields
  • Formula fields
  • Standard fields of type auto number, rollup summary, record type, master-detail, long text area, rich text, and hierarchy
  • Other fields where editing isn’t permitted due to restrictions in the page layout or record type

General Functionalities

5. New Time Zones & Locale

To improve accuracy, to enhance integration with external systems, and to support your users wherever they work, users can now select from 430 time zones. With this change, Salesforce supports all time zones in the latest Time Zone Database version, 2021a.

This updated ICU date time format applies to these locales.

  • Chinese [zh]
  • Chinese (China) [zh_CN]
  • 中 文 ( 中 国 , 拼 音 顺 序 ) [zh_CN_PINYIN]
  • 中 文 ( 中 国 , 笔 画 顺 序 ) [zh_CN_STROKE]
  • Chinese (Malaysia) [zh_MY]
  • Chinese (Singapore) [zh_SG]

Review the changes to date, time, and currency formats for the locales that you use in Salesforce and evaluate how they affect you. Then test your filters, code, and components as needed.

Take Control of Which Objects Users See in Search (Beta)

➢ You can fine-tune the search scope so that the right objects are searched across your Salesforce org.
➢ The search scope is the set of objects that Einstein Search looks at to deliver search results. Choose which objects Einstein Search always includes in instant and top search results for any new or existing user profiles.
➢ The objects that you select are included with the objects that Einstein Search determines based on the activity of each individual user.
➢ Together these objects are searched from the moment a user clicks in the global search box

Admin/ Configuration

. Include Images in Rich Text Fields in the Lightning App Builder

Increase the usability of the Rich Text components on your Lightning pages by adding images.

Rich text editor in the Lightning App Builder

. Improve Page Performance with More Custom Lightning Component Analysis

To help you improve page performance, Performance Analysis for App Builder alerts you if a component contains:

  • External CSS
  • Unminified JavaScript
  • A use of lightning:recordEditForm
  • A use of layoutType=”FULL”
  • A use of lightning:tabFocused listeners

To view the assessment of your record page’s performance, click Analyze from the Lightning App Builder toolbar. Custom Lightning components on your Lightning record pages are analyzed and incorporated into the desktop performance analysis card results. This analysis includes your page’s predicted Experienced Page Time or page load time and the component performance breakdown card. Recommendations for optimizing custom components appear when relevant.

Recommendations for Your Custom Component Code card

. Build & Bring Dynamic Interactions to Your Dynamic Actions Bar (Pilot)

Now you can create applications with components that communicate and transform based on user interactions, all in the Lightning App Builder UI. With Dynamic Interactions, an event occurring in one component on a Lightning page, such as the user clicking an item in a list view, can update other components on the page.

For example, this Account List source component has an Item Selected event available but no interactions set up for it. What happens when a user selects an item in the list? You decide. Click Add Interaction, select a target component, and then define what happens to that target component when the event is triggered.

Properties pane with new Events tab

Dynamic Interactions is a new feature for Lightning App Builder. You can use custom components as a source for Dynamic Interactions too, but the Dynamic Actions Bar component is the first standard component supported as a source for your interactions.

Add an interaction to your Dynamic Actions Bar just like you would add an action. When you select the Dynamic Actions Bar component on your app page, click Add Interaction in the properties pane. After you name the button, you can choose your interaction type and configure it in the pane.

For example, say you want to configure your new button, Show Cases, to update the List View component to show cases instead of accounts.

Lightning App Builder with the properties pane open to configure Interaction Details


Expose Events in the Lightning App Builder

As part of Dynamic Interactions, you can now define the events for a Lightning web component on a page, and then expose those events in the Lightning App Builder. An admin can then configure the event by setting up interactions between the source component and its targets right in the App Builder UI.

To expose an event from a component, you fire a standard JavaScript CustomEvent in its .js file. To make the event discoverable, use the Dynamic Interactions-related targetConfig subtags in the component js-meta.xml file with the target lightning__AppPage.eventExposes the event for Dynamic Interactions and make it available for the component in the Lightning App Builder. The event subtag supports the namelabel, and description attributes.

  • name—The name of the event as defined in the component’s .js file. If no label attribute is defined, the name value is shown in the list of available events for the component in the Lightning App Builder.
  • label—The admin-friendly label for the event.
  • description—The description of the event, which displays in an i-bubble on the event label in the Lightning App Builder.

schemaProvides the shape of the event. Content in the schema subtag must be in JSON format.

Here’s a sample js-meta.xml configuration file for a custom Account List source component. It includes an itemselected event, and its schema includes apiName and recordId as defined in the .js file.

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="">
    <masterLabel>Account List</masterLabel>
        <targetConfig targets="lightning__AppPage">
            <property name="apiName" type="String"/>
            <property name="listViewApiName" type="String"/>
            <event name="itemselected" label="Item Selected" description="This event fires when an item is selected.">
                        "type": "object",
                        "properties": {
                            "recordId": {
                                "type": "string",
                                "title": "Record ID"
                                "description": "Enter an 18-digit record ID."
                           "apiName": {
                               "type": "string"
    <description>Defines an event for an Account List component</description>

View Dependencies for Lightning Web Components

Use the dependencies tree viewer to see which custom components and Apex classes that a Lightning web component uses. You can quickly see the structure of a component and navigate to the source for its dependencies.

From Setup, in the Quick Find box, enter Lightning Components, and then select Lightning Components.

  • To see its dependencies on the detail page, select a Lightning web component.
  • To see the details for one of the dependencies, click a link in the Name co
View component dependency tree

Use the valueOf() Enum Method to Convert a Specified String to an Enum Constant Value

The valueOf() enum method converts a specified string to an enum constant value. An exception is thrown if the input string doesn’t match an enum value. In previous releases, using this method resulted in a runtime error.

This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions.

You can use the method for both system and user-defined enums. This example uses the method to convert a string to a known season enum value.

public enum Season {WINTER, SPRING, SUMMER, FALL}

string currentSeasonInput = 'winter';
Season currentSeason = Season.valueOf(currentSeasonInput);

Call Invocable Actions from Apex (Developer Preview)

Invocable.Action is a new Apex class that allows you to call invocable actions from Apex code. For the developer preview, this feature is available only in scratch orgs.

To enable this feature in your scratch org, add a reference to CallIAFromApex in the project-scratch-def.json file in your SFDX project.

 "orgName": "my company", "edition": "Developer",
 "features": [ "CallIAFromApex" ],
 "settings": {

After you’ve added to your scratch org definition file, reference Invocable.Action in your Apex code. This example uses the standard invocable action “chatterPost” to post a message to the current user's feed.

Invocable.Action action = Invocable.Action.createStandardAction('chatterPost');
action.setInvocationParameter('text', 'This is a test.');
action.setInvocationParameter('type', 'User');
action.setInvocationParameter('subjectNameOrId', UserInfo.getUserId());
List<Invocable.Action.Result> results = action.invoke();
if (results.size() > 0 && results[0].isSuccess()) {
    System.debug('Created feed item with ID: ' + 

This example calls a custom invocable action named Doubler that returns a number that’s twice the input value.

Invocable.Action action = Invocable.Action.createCustomAction('apex', 'Doubler');
action.setInvocationParameter('input', 1);
List<Invocable.Action.Result> results = action.invoke();                                          
if (results.size() > 0 && results[0].isSuccess()) {
    System.debug('Result is: ' + results[0].getOutputParameters().get('output'));

Filter Your Stream of Platform Events with Channels (Pilot)

Receive only the event messages that match a predefined filter on a custom channel. Create a channel and configure it with a complex filter. CometD subscribers to the channel receive a filtered stream of events. With fewer events delivered to subscribers, event processing is optimized. Also, CometD subscribers can make more efficient use of the event delivery allocation.

The pilot was offered last release. In this release, we made these enhancements for the filter expression.

  • Text field values must be enclosed within single quotes. Previously, you couldn’t use single quotes for Text field values. This change breaks any filters that you’ve set up in API v52.0. Make sure that you add single quotes to your Text field values to previously defined filters.
  • Text field values are case-sensitive. Previously, they were case-insensitive.
  • Support for a complex filter with up to five field-value pairs joined by the AND operator.
  • Support for these comparison operators (= continues to be supported):
    • !=
    • >
    • <
    • >=
    • <=
  • Support for these additional field types (Text, Text Area (Long), and Number continue to be supported):
    • Checkbox
    • Date
    • Date/Time

New and Changed Aura Components

Build UI easily with these new and changed components.

Changed Aura Components

The following components have changed.lightning:accordionSectionOn desktop screens, the section title now truncates and displays with an ellipsis when it’s too long to display in the viewport. To see the full text, hover over the section title with the mouse. On mobile devices, long section titles wrap to multiple lines because hover text isn’t available.lightning:helptextThis attribute has changed.

  • iconVariant—The inverse variant is now supported. Use this variant to add a white fill for dark backgrounds.

lightning:inputFieldThis field type is now supported.

  • Time—An input field that displays time selection in 15-minute increments. The time format is automatically validated against the user’s Salesforce locale. On mobile devices, time fields use native mobile time pickers.

This attribute has changed.

  • fieldName—The Name compound field is now supported for the User object. Previously, you had to include both the FirstName and LastName fields.

lightning:outputFieldThis field type is now supported.

  • Time—Displays the formatted time based on the user’s locale.

lightning:treeGridThis attribute is new for the component.

  • ariaLabel—Labels the component for assistive technology. The attribute and its value are passed down as aria-label in the rendered <table> element.

This attribute is new for the columns property.

  • wrapText—Specifies whether text in a column is wrapped instead of clipped when the table renders. Wrapped text vertically expands a row to reveal its full content. You can’t set the number of wrapped lines to display as you can with lightning:datatable.

Lightning Flows

Sub Flows In Record Triggered Flow

This is a huge one and one everyone was waiting for. Now we can finally use Sub Flows in Record Triggered Flows. Now we can create better optimised and efficient Record Triggered Flows.


Ability to add asynchronous path on record triggered flows and in debugging tool

This is a huge addition to Record Triggered Flow capability. We can now add an Asynchronous Path to Record Triggered Flows. Basically, we can run the flow path Asynchronously after the original transaction for the triggering record is successfully committed.  This gives a huge opportunity for devs/admins to make the Flow more optimised and also handle large volume data. 

Salesforce Winter '22 Flow Features
Salesforce Winter '22 Flow Features
Salesforce Winter '22 Flow Features

Customise the screen flow button labels

This was a long awaited feature. Now we can finally customiseFooter Buttons on the Screen Flows Screens. 


Ability to define batch sizes for scheduled path in record triggered flows

A great addition to scheduled Path Functionality to optimise the Flows and have better control to prevent Governor Limit errors. Now we can define batch sizes to run the Flow for a particular set or batch of records at a time and handle large volumes more efficiently. 

More about this Feature: Enter the number of flow interviews that this path can execute at the same time. The default is 200which is the maximum, and the minimum is 1

For example, if the batch size is 2 and seven interviews are ready to run in the same time interval, they’re grouped into four batches. Set a batch size smaller than 200 to improve performance and to avoid hitting Apex governor limits.


New offset options in scheduled path for record triggered flows (before and after minutes)

Now have better control of timings on Scheduled Paths as Salesforce has introduced two new options for MINUTES AFTER and MINUTES BEFORE . 


A new and better way to configure start element in the record triggered flows

A new UI and options are now available to configure the Record Triggered Flows Start Element.


Roll back records feature in screen flows

A new Element is now available for Screen Flows. It’s a great addition to Screen Flow CapabilityAbout this Element : When a flow runs, record changes are executed and saved to the database as part of a transaction. This element rolls back the current transaction and cancels all its pending record changes. To roll back changes based on business logic, add this element in a Decision element’s outcome. To roll back changes when an error occurs, add this element in a Fault path. To roll back all record changes in a transaction, add this element to the end of the transaction.


Better flow debugging features and enhancements

Now we can debug Salesforce Flows for Asynchronous and Scheduled Paths. This is a great debugging enhancement and gives Flow Devs a good solid platform to test Flows.


Also, now we can see API names and Collapse/Expand all Flow Elements while debugging.


Sales & Service Cloud


One thought on “Salesforce Winter ’22 Release Notes

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s