Salesforce Spring ’23 Release Top New Features.
- Salesforce Spring ’23 Release Top New Features for Admins
- 1. Create Personalized Report Filters
- 2. Stay Organized by Adding Reports and Dashboards to Collections
- 3. Enhance Case and Lead Record Pages with Dynamic Forms
- 4. Pin Important Content on the Right Side of Record Pages
- 5. Learn Who Can Access Records and Why
- 6. Choose the Permission Sets Display When Setting Field-Level Security (Beta)
- Read More: Salesforce Spring ’23 Release Flow Top New Features
- Salesforce Spring ’23 Release Top New Features for Developers
Salesforce Spring ’23 Release Top New Features for Admins
1. Create Personalized Report Filters
Set up a single dynamic report filter that displays personalized results for each user. For example, create an opportunity report for your sales team with a single Opportunity Owner filter that personalizes the results for each member of the team.
When setting up a filter on a user field, such as Opportunity Owner or Created By, select the relative value option. The filter value changes to the currently signed-in user.
2. Stay Organized by Adding Reports and Dashboards to Collections
Use collections to organize the reports and dashboards that you care about, even if they exist in multiple folders. Add Lightning reports and dashboards, such as those related to a project or commonly used, for immediate access in Unified Home. Pin important collections to your home page, hide irrelevant collections, and share collections with others.
From Setup, in the Quick Find box, enter Reports, and then select Reports and Dashboards Settings. Select Enable the Unified Experience for Analytics Home. You can also get this feature by enabling it in Analytics settings on orgs with a CRM Analytics license. The feature is disabled when it’s turned off in Analytics settings.
From the App Launcher, select Analytics. In the Collections panel on Unified Home, click + (1). In the New Collection window (2), enter the collection name and optional description.
3. Enhance Case and Lead Record Pages with Dynamic Forms
Make your 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.
In the Lightning App Builder, open a case or lead record page. Click on the new Fields tab, place the Field Section component anywhere on the page,and then drag the fields inside the Field Section. Or automate the process by migrating your Record Detail component to use Dynamic Forms with the click of a button.
4. Pin Important Content on the Right Side of Record Pages
Use the new Pinned Right Sidebar (3 regions) template to create record pages in which you can show important information, such as customer details and chats, on the right side of their pages. Your users, such as customer service representatives, can then verify customer identity over various channels, such as web chat, and access customer chats from one place and avoid switching between subtabs or pages.
In Lightning App Builder, create an object record page, and select the Pinned Right Sidebar (3 regions) template from the template list. Then add the required components (for example, the Conversation component) to the pinned region.
5. Learn Who Can Access Records and Why
Understanding who can access a record is critical to securing record access in your organization. Check out a record’s sharing hierarchy to view who it’s shared with. You can also see the user’s reason for access and find out if a user’s access is blocked by a restriction rule.
To see a list of users who have access, click Sharing Hierarchy from the Action Menu on the desired record. To see why the user has access to the record or why access is blocked, click View next to the user’s name.
When you click View, all applicable sharing reasons appear, including the names of owner-based and criteria-based sharing rules.
If a restriction rule blocks access to the record, a message appears to confirm that access is blocked.
6. Choose the Permission Sets Display When Setting Field-Level Security (Beta)
Now when you set or change field-level security for a field on permission sets, you can view by permission sets with object permissions, or by all permission sets. The view is enhanced so the permission set API name and description displays and columns are sortable.
Enable Field-Level Security for Permission Sets During Field Creation (beta) in User Management Settings.
Read More: Salesforce Spring ’23 Release Flow Top New Features
Salesforce Spring ’23 Release Top New Features for Developers
1. Query DOM Elements with Refs
Now you 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, you could only use querySelector()
to locate specific DOM elements.
First, add the lwc:ref
directive to your element and assign it a value. To call that reference, use this.refs
. In this example, the <div>
element has the directive lwc:ref="myDiv"
, which this.refs
references to access the <div>
at runtime.
<template>
<div lwc:ref="myDiv"></div>
</template>
export default class extends LightningElement {
renderedCallback() {
console.log(this.refs.myDiv);
}
}
If you call this.refs
for a nonexistent ref, it returns undefined
. If the template contains duplicate lwc:ref
directives, this.refs
references the last directive. For a component with more than one template, this.refs
refers to the most recently rendered template.
2. 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, your 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.
Light DOM allows third-party tools to traverse the DOM, enabling standard browser query APIs like querySelector
and querySelectorAll
, without traversing the shadow root. It also facilitates global styling so you can apply custom branding to your components and child components easily.
To enable a component to render in light DOM, set the renderMode
static field in your component class.
import { LightningElement } from 'lwc';
export default class LightDomApp extends LightningElement {
static renderMode = 'light'; // the default is 'shadow'
}
Use the lwc:render-mode
template directive on the <template>
tag of your component.
<template lwc:render-mode='light'>
<my-header>
<p>Hello World</p>
</my-header>
</template>
When you enable light DOM on a component, it no longer renders its elements in the #shadow-root
tree.
<my-app>
<my-header>
<p>Hello World</p>
</my-header>
</my-app>
A light DOM component can contain a shadow DOM component. Similarly, a shadow DOM component can contain a light DOM component. However, base Lightning components always render in shadow DOM. Restricting light DOM to specific namespaces isn’t supported.
LWC doesn’t scope styles automatically for you. To prevent styles from bleeding in or out of a component, use a *.scoped.css
file to implement scoped styles for a component.
3. Build Components in Mixed Shadow Mode (Developer Preview)
All major browsers now support shadow DOM. Salesforce maintains the synthetic shadow polyfill for legacy browsers such as older versions of Microsoft Edge. To simplify development and testing, the polyfill is used even on browsers that support shadow DOM. With mixed shadow mode, you gain the speed and efficiency of using native shadow as much as possible in your app. And you can more readily migrate to use native shadow fully in the future.
How: Mixed shadow mode is disabled by default. Contact Salesforce Customer Support to enable mixed shadow mode.
To enable mixed shadow mode on a component, set the static shadowSupportMode
property to any
.
// native.js
import { LightningElement } from 'lwc';
export default class NativeComponent extends LightningElement {
static shadowSupportMode = 'any';
}
Valid values for shadowSupportMode
include:
any
—Renders the whole component subtree in native shadow DOM where possible. If the browser doesn’t support shadow DOM, the subtree renders in synthetic shadow.reset
—Enables a subclass to opt out of receiving theshadowSupportMode
value from its superclass.reset
applies only if the component’s superclass is usingany
and no parent components are usingany
.
Lightning Experience and Experience Cloud include the synthetic shadow polyfill by default. When the polyfill is present, reset
defaults to synthetic shadow. If the polyfill isn’t present, such as in Lightning Out or LWC Open Source, shadowSupportMode
has no impact and components render in native mode.
By default, slotted content is rendered in native shadow. Slotted content isn’t descended from the component it’s nested in, so you can slot synthetic shadow content into a native shadow component. This also means that slotted content isn’t affected by how your browser renders the #shadow-root
of the component containing the slot. For example, if your browser renders a native component in synthetic shadow, native content slotted into that component is still rendered in native shadow.
4. Synchronize Component Data Without a Page Refresh Using RefreshView API (Beta)
Whether user-driven or app-invoked, the ability to synchronize data without reloading an entire page is a key user experience requirement. The new lightning/refresh
module and RefreshView API provide a standard way to refresh component data in LWC and Aura. Previously, LWC lacked a data refresh API, and Aura only supported the legacy force:refreshView
, which doesn’t meet the requirements of modern web development. RefreshView API’s detailed control of refresh scope lets developers create refined user experiences while maintaining backward compatibility.
RefreshView API updates the data for a specific hierarchy of components, known as a view, without reloading an entire page. This refresh ensures complete synchronization with data externally sourced by components that subscribe to the refresh event in that view. RefreshView API synchronizes data externally sourced by components in that view and supports refreshes triggered by end users or web components. RefreshView API provides a standard mechanism for data refresh experiences in both LWC and Aura components. It allows flexible control of refresh scopes, and for Aura developers it can replace the legacy force:refreshView
.