Summer'21 Release Notes
The Sandbox Preview window for Summer ‘21 begins on May 7, 2021. If you would like your sandbox to take part, it must be active on a preview instance before then.
1. Create Quick Actions with Lightning Web Components (Generally Available)
To save your users time and clicks, create a quick action that invokes a Lightning web component. On a record page, create a screen action that shows the component in a window, or create a headless action that executes with a click.
To set up a Lightning web component as a quick action on a record page, define the metadata in <component>.js-meta.xml. Define a lightning__RecordAction target and specify actionType as ScreenAction for a screen action that opens in a window or Action for a headless action that executes when clicked. Here’s the configuration for a headless action.
<?xml version="1.0" encoding="UTF-8" ?> <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata"> <apiVersion>52.0</apiVersion> <isExposed>true</isExposed> <targets> <target>lightning__RecordAction</target> </targets> <targetConfigs> <targetConfig targets="lightning__RecordAction"> <actionType>Action</actionType> </targetConfig> </targetConfigs> </LightningComponentBundle>To use a headless action, add an exposed invoke() method to your component.
import { LightningElement, api } from "lwc"; declare default class HeadlessSimple extends LightningElement { @api invoke() { console.log("Hi, I'm an action."); } }
2. Attach Actions to Asynchronous Apex Jobs Using Transaction Finalizers (Generally Available)
With Summer ’21, the Transaction Finalizers feature is generally available. The System.FinalizerContext interface contains four methods.
- getAsyncApexJobId method: Returns the ID of the Queueable job for which this finalizer is defined.
- getRequestId method: Returns the request ID shared by both the finalizer execution and the Queueable job to which the finalizer is attached. This shared ID helps in filtering logs of a Queueable job and its attached finalizer.
- getResult method: Returns the System.ParentJobResult enum, which represents the result of the parent asynchronous Apex Queueable job to which the finalizer is attached. Valid values for the enum are SUCCESS, and UNHANDLED_EXCEPTION.
- getException method: Returns the exception with which the Queueable job failed when getResult is UNHANDLED_EXCEPTION, null otherwise.
To attach actions to your Queueable jobs, you must implement the Finalizer interface. Only one finalizer instance can be attached to any Queueable job. You can enqueue a single asynchronous Apex job (Queueable, future, or batch) in the finalizer’s implementation of the execute method. Callouts are allowed in finalizer implementations.
For more information on implementing Transaction Finalizers, including examples, see Transaction Finalizers in Apex Developer Guide.
3. Create Styling Hooks for Lightning Web Components
To expose styling hooks for your custom components, use CSS custom properties. CSS custom properties also make code easier to read and update. To define a CSS custom property in a component's style sheet, prefix the property with --. To insert the value of the property, use var()
:host { --important-color: red; } .important { color: var(--important-color); }CSS custom properties are inherited. Inherited properties pierce the shadow DOM. Some CSS properties, like color, are also inherited. Because CSS custom properties are inherited, a consumer can set their values at a higher level in the DOM tree and style your component.
These CSS custom properties create styling hooks for two themes: light and dark. Pass the fallback value as an optional second parameter to var().
/* myComponent.css */ .light { background-color: var(--light-theme-backgroud-color, lightcyan); color: var(--light-theme-text-color, darkblue); } .dark { background-color: var(--dark-theme-background-color, darkslategray); color: var(--dark-theme-text-color, ghostwhite); }A consumer can set values for the styling hooks to change the theme colors.
/* consumerComponent.css */ :host { --light-theme-backgroud-color: honeydew; --light-theme-text-color: darkgreen; --dark-theme-background-color: maroon; --dark-theme-text-color: ivory; }
4. Use ISCHANGED, ISNEW, and PRIORVALUE in Record-Triggered Flow Formulas
Record-triggered flows for new and updated records now support the ISCHANGED, ISNEW, and PRIORVALUE formula functions. Copy your Process Builder or workflow rules formulas containing these functions into record-triggered flows. None of these formula functions are available in flows triggered when a record is deleted.
5. Find Failed Flows Faster
Skip your inbox and go straight to the new Failed Flow Interviews list view. Now, if your flows have failed interviews, you can find them all in one place. You can create a custom list view that includes paused and failed flow interviews. Previously, you clicked a link in a flow error email to start debugging a failed flow interview.
6. Auto Add Fields to Custom Report Types (Generally Available)
It’s time-consuming to add new custom fields to your reports, especially when you have many custom report types. With Auto Add, custom fields that you add to a Salesforce object are added automatically to all the custom report types based on that object. When you create a report from the custom report type, all the custom fields are right there for you to add to your report. Auto Add doesn’t apply to fields that are added as part of packages. These changes apply to Lightning Experience only.
7. See Record Access Reasons in Lightning Experience
A user has access to a record, but why? Is it because of their role? Their territory? From a sharing rule? Now you can see why a user has the access they do, right from Record Sharing Hierarchy in Lightning Experience. Previously, you switched to Salesforce Classic to see this information. Sharing Hierarchy is now available on the action menu, not just in the Share window.
8. Prepopulate Dependent Picklists with Default Values
You can now prepopulate a record event with default values in dependent picklists. Default values on dependent picklists are available on accounts, opportunities, cases, contacts, leads, and custom objects.
9. Share Records Owned by High-Volume Users with Unauthenticated Guest Users
Select whether to include records owned by high-volume community or site users when you create guest user sharing rules. By default, guest user sharing rules include only records that match the rule’s criteria and are owned by authenticated users, guest users, and queues. Because of recent security improvements, this setting is the only way to grant guest users access to records owned by high-volume users. This option isn’t available for owner-based or criteria-based sharing rules.
10. Control Access to Sensitive Data with Restriction Rules (Beta)
Secure your data and boost productivity by permitting your users to see only the records necessary for their job function. Create restriction rules to control which subset of records you allow specified groups of users to see. Restriction rules are available for custom objects, contracts, tasks, and events. You can create and manage restriction rules via the Tooling and Metadata APIs. They provide another layer of access control on top of your existing sharing settings and let you configure truly private visibility.
Without restriction rules, users with access to an account can see its contracts, tasks, and events, even when the organization-wide default is set to Private. For custom objects, users can see all detail records. Restriction rules let you configure truly private access for these objects.
Beta feature
Close
11. Set Expirations for Assignments on Permissions in Permission Sets and Permission Set Groups (Beta)
When assigning users to a permission set or permission set group, select expiration dates that you specify. Control when a user's permissions expire based on your business requirements.
To use the user interface with assignment expiration options for permission set groups, enable Permission Set Group Assignments with Expiration Dates (Beta) in User Management Settings. Then, when you assign users to a permission set group, select the expiration options that you want. You can also select no expiration date as an option.
Beta feature
Close
12. Connect Your Customers to the Right Service Agents Using Omni-Channel Flow (Beta)
Manage complex routing processes from a centralized location to create efficient, flexible and productive service experiences. The Omni-Channel Flow incorporates all the functionality of Omni-Channel within a Salesforce Flow. Use the power and flexibility of Flow Builder to define your routing rules and other business processes and dynamically route work to the best agent for each customer. If it’s your first time using an Omni-Channel Flow, enable it in Omni-Channel Settings.
For example, use the information on the Chat Transcript or a related Contact to route work based on the website your customer is using, their location or language, the number of times they reached out for help, or even their preferred agent.
Beta feature
Close
13. Secure Apex Code with User Mode Database Operations (Pilot)
You can now declare when Apex runs database operations in user mode or system mode. The new Database methods support an AccessLevel parameter that enables you to run database operations in user mode, instead of in the default system mode.
By default Apex code executes in system mode and doesn’t respect running user permissions. To enhance the security context of Apex, you can specify user-mode access for database operations by invoking Apex in user mode. The field-level security (FLS), sharing rules, and CRUD permissions of the running user are respected in user mode, unlike in system mode.
If you're interested in participating in the pilot program, ask your Salesforce Account Executive.
Pilot feature
Close
14. Create a Dynamic Actions Bar for Your App Page (Pilot)
Access all your most important actions in one convenient bar. Easily add, drag, and configure the Dynamic Actions Bar component on your app page with the Lightning App Builder. Customize your bar with standard and custom global actions.
To add a Dynamic Actions Bar to your Lightning app page, first create or edit a Lightning app page in the Lightning App Builder. In the Lightning App Builder, drag the Dynamic Actions Bar component (1) to add it to a region on your page (2). The order of actions in the properties pane (3) determines their order in the Dynamic Actions Bar. Click Add Action (4) to add actions to the Dynamic Actions Bar. Click Add Filter (5) to set visibility filters for the Dynamic Actions Bar component. Save your work.
Pilot feature
Close
Keep this in mind as action on
-
Original Territory Management Was Retired
The original territory management feature was retired. Users can’t access the original territory management feature and its underlying data. We encourage you to migrate to Enterprise Territory Management. -
Aura Components in the ui Namespace Are Deprecated
We’re ending support for the deprecated components on May 1, 2021. Retiring our legacy components enables us to focus on components that match the latest web standards in performance, accessibility, user experience, and internationalization. -
Deprecation and End Of Support for Platform API Legacy Versions
As of this release, legacy versions 20.0 and earlier of the Salesforce Platform API are deprecated and are no longer supported by Salesforce. NOTE You can continue to use these legacy API versions until Summer ’22 is released, at which time these legacy versions will become retired and unavailable. When these legacy versions are retired, applications consuming these versions of the APIs will experience disruption. The requests will fail with an error message indicating that the requested endpoint is deactivated.
Changed Limits
-
Apex Object Names Can Now Be Up To 255 Characters Long
Apex object names now support a maximum of 255 characters, up from 40 characters. This support depends on specifications featuring complex operations, and data structures with lengthy properties or elements. Previously, Apex object names could only be as long as 40 characters. -
Register OpenAPI Specifications up to 1.5 MB in Size
We increased the maximum schema registration size again, this time from 100,000 characters to 1.5 million characters (1.5 MB). -
Upload More Data to Enhance Model Accuracy
The image dataset maximum size got a boost from 2 GB to 10 GB for Einstein Object Detection. This increase applies only to a dataset with a type of image-detection. -
Install More Custom Fields Through AppExchange
Now you can install 100 more custom fields through AppExchange packages regardless of your organization limits. -
Improve Planning and Performance with New Omni-Channel Capacity Limits
New capacity limits improve performance and planning flexibility. The status-based capacity limit increased to a maximum of 100 simultaneous work items per agent. Increasing status-based capacity facilitates long-term planning for high-volume support teams. The tab-based capacity limit permits agents a maximum of 100 tabs at once, which improves system performance and avoids agents owning near infinite numbers of work items.
Useful links:
Comments powered by CComment