Site icon Salesforce News Technology Stuff

Salesforce Winter’22 Release Notes: Quick Overview

So we are back again with Salesforce Winter’22 Release Notes. We have 550 page of document and as always we will be focusing on Admin and Developer points. So now we will check some of the new exciting features.

Salesforce Winter’22 Release Notes Points Related to Salesforce Admin

Build More Interactive Lightning Pages with Dynamic Interactions

We can now create application and they can 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 map marker in other components on the page.

Let Org-Specific Metrics Guide Your Lightning Page Performance Improvements

Various factors can affect our Lightning page’s performance at runtime. Performance Analysis for App Builder gives us recommendations to improve page performance. Now we can check users’ performance metrics to help us decide which recommendations to take or to defer. Data from the last 90 days of use is analyzed and displayed in Org-Specific Metrics card results. This analysis includes users’ network latency, browser speed, and number of cores.

Include Images in Rich Text Fields in the Lightning App Builder

We can now add Images in Rich text area fields.

Point to Specific Elements on a Page with Targeted Prompts (Generally Available)

Now we can target specific element on a page with Targeted Prompts.

Show In-App Guidance for Specific Record Types

We can now display in app guidance for all or specific record type. Now we can customize the message so that users get detailed help for the unique layout and picklists of different record types. Previously, when we created in-app guidance and assigned it to a record page with multiple record types, the in-app guidance appeared for all of its record types.

Update More Fields from the Report Run Page with Expanded Inline Editing (Beta)

We can now update more fields in Report run page. Inline editing is now supported for date, picklist, and lookup fields. From Setup, in the Quick Find box, enter Reports and Dashboards, and then select Reports and Dashboards Settings. Select Enable Inline Editing in Reports (Lightning Experience only), and save your changes.

Orchestrate Multi-User Processes with Flow Orchestrator (Beta)

Combine automated processes in a single interface with Flow Orchestrator. Use Flow Orchestrator’s no-code approach to create orchestrations and transform flows into steps organized by stages. Benefits of Flow Orchestrator include more flexibility to create approval processes, better ability to assign work to any Salesforce user, and more control over record lifecycles.

From the Flows page in Setup, click New Flow. In New Flow, click All + Templates and select Flow Orchestrator (Beta). Select either Autolaunched Orchestration (Beta) or Record-Triggered Orchestrations (Beta) and click Next. Add stages to your orchestration, and then add steps to your stages. Use Decision elements, stage exit conditions, and step entry and exit conditions to determine how your orchestration runs.

Connect a Record-Triggered Flow to an External System Using an Asynchronous Path

We can use a record-triggered flow to integrate with an external system and update external objects—without writing any code. For example, use an asynchronous path to post a message to Slack, update a record in Heroku, or place an order using a third-party fulfillment system. Both asynchronous and scheduled paths are subject to the same asynchronous per-transaction Apex limits.

Call Another Flow from a Record-Triggered Flow Using a Subflow Element

We can now call the Sub flow from the record triggered flow.

Roll Back Pending Record Changes When a Flow Element Fails at Run Time

To roll back a transaction and cancel all its pending record changes in a screen flow, add the new Roll Back Records element in a fault path. Previously, when a transaction end, its pending record changes were saved to the database. This sometimes create the confusion as we have partial update in database.

Send an Outbound Message from Your Record-Triggered Flow

Outbound messages are available as a core action in Flow Builder. Send SOAP message from a record-triggered flow to a designated endpoint. eg: notify an external service of a high priority case. We used outbound message actions with workflow rules and approval processes. Now outbound message actions are available for record-triggered flows that run after the record is saved.

Customize Button Labels in the Flow Screen Footer (Beta)

In Flow Builder, you can now easily customize the Previous, Pause, Next, and Finish button label text. With customized screen navigation options, you can let a user know what to expect when the user clicks the button. Previously, to customize the footer labels, you built a custom component.

Salesforce Winter’22 Release Notes Points Related to Salesforce Developers

Secure Your Components Better, Stronger, Faster with Lightning Web Security (Beta)

The Lightning Component framework introduces Lightning Web Security, a new client-side security architecture for custom Lightning web components. This new architecture is defined by fewer restrictions. It provide more functionality strong sandboxing and a security posture to mitigate the most common UI attacks. This increase the security of our LWC.

The new security architecture blocks or modifies behavior of APIs that aren’t secure. In addition, there are extra feature which was not part of Lightning Locker. Now we will check some of the feature of new tool.

Feature of Lightning Web Security


Cross-namespace component use. LWC components can import components or modules from other namespaces and use them via composition or extension. Components are isolated in their own namespace JavaScript sandbox. The security architecture performs virtual communication behind the scenes.
Interactions with global objects. Each namespace is given its own detached JavaScript sandbox. Changes made to the global objects in your namespace can’t affect other components. We can expose document, window, and element global objects directly without secure wrappers.
Improved performance. Execution of code in the namespace JavaScript sandbox is faster than in Lightning Locker.
Better support of third-party JavaScript. Libraries can use techniques such as manipulating global objects while running in a JavaScript sandbox. In Lightning Locker, such behaviors prevented use of some third-party libraries.
Compatibility with standard JavaScript as it evolves. The new security architecture doesn’t need frequent updates. So we don’t need to worry with every JS update.

Expose Events in the Lightning App Builder

We 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/developer can then configure the event by setting up interactions between the source component and its targets in the App Builder UI.

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

Schema provides the shape of the event. Content in the schema subtag must be in JSON format. Below is the sample code.

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
	<apiVersion>53.0</apiVersion>
	<isExposed>true</isExposed>
	<masterLabel>Account List</masterLabel>
	<targets>
		<target>lightning__AppPage</target>
	</targets>
	<targetConfigs>
		<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.">
				<schema>{
                                          "type": "object",
                                           "properties": {
                                             "recordId": {
                                              "type": "string",
                                                "title": "Record ID"
                                                  "description": "Enter an 18-digit record ID."
                                                },
                                               "apiName": {
                                                   "type": "string"
                                                }
                                               }
                                              }</schema>
			</event>
		</targetConfig>
	</targetConfigs>
	<description>Defines an event for an Account List component</description>
</LightningComponentBundle>

Detect Text in PDFs with Einstein OCR (Generally Available)

Use Einstein OCR (optical character recognition) to detect text in PDF format. Now using this we can read the PDF and validate inputs. We can validate the documents before storing them in salesforce.

curl -X POST -H "Authorization: Bearer <TOKEN>" -F 
    sampleLocation="https://www.cloudkicks.com/annual_report.pdf" -F 
    task="text" -F modelId="OCRModel" https://api.einstein.ai/v2/vision/ocr

Legacy API Versions 7.0 Through 20.0 Have Been Retired

So versions 7.0 through 20.0 of the Salesforce Platform API are now deprecated and are no longer supported by Salesforce. So if we have any code still using these older version its time to update them.

Call Invocable Actions from Apex (Developer Preview)

Invocable.Action is a new Apex class that allows us to call invocable actions from Apex code. For the developer preview, this feature is available only in scratch orgs. We can now call the standard or custom Invocable action in scratch org.

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: ' + 
results[0].getOutputParameters().get('feedItemId'));
}

So these are some of the points which I found in Salesforce Winter’22 release notes. Which points you like most in this Winter 22 release. You can check complete release notes here. You can also signup for Winter 22 org here. Let me know in comments. Happy Programming 🙂

Exit mobile version