Top 5 Features of Salesforce
Platform Developer
in Summer’21 Release

Swayam Chouksey
5 min readApr 20, 2021

1. Create Quick Actions with Lightning Web Components

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.

Where: This change applies to Lightning Experience desktop in Developer, Enterprise, Essentials, Professional, and Unlimited editions.

Why: Make the custom component that’s essential to your users’ workflow easier to access. For example, your users often upload receipts to records, so you create a custom lightning-file-upload component that prompts them to upload a .png file. This component works well, but requires users to open the object’s page to access it. If you define the component as a screen action, your users can click the quick action and upload the receipt in a pop-up window without leaving the page.

How: 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="">
<targetConfig targets="lightning__RecordAction">

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. 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.

Where: This change applies to Lightning Experience and the Salesforce mobile app.

Why: Document your component’s styling hooks as part of your component’s API. To change a component’s style, a consumer simply sets values for the styling hooks — they don’t need to know how you implemented the styles.

How: 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;

To experiment with this code in a playground, see

3. Monitor Lightning Component Changes in the Setup Audit Trail

Use the audit trail to track when your users create, change, or delete a custom Lightning component. Audit history is especially useful when multiple developers work on components.

Where: This change applies to Aura and Lightning web components in Lightning Experience and Salesforce Classic.

How: To view the audit history, from Setup, in the Quick Find box, enter View Setup Audit Trail, then select View Setup Audit Trail.

4. Salesforce Functions: Extend Salesforce with Functions (Beta)

Salesforce Functions lets developers extend Salesforce with custom, elastically scalable business logic built with industry-standard programming languages and open-source components. Salesforce Functions reduces your infrastructure responsibilities, enabling you to build and integrate Functions-as-a-Service (FaaS) apps using the languages and tools of your choice.


This feature is a Beta Service. Customer may opt to try such Beta Service in its sole discretion. Any use of the Beta Service is subject to the applicable Beta Services Terms provided at Agreements and Terms.

This change applies to Lightning Experience, Salesforce Classic, and all versions of the mobile app in Professional, Performance, Unlimited, and Developer editions.

When: The Salesforce Functions beta is planning to open after the release of Salesforce Summer ’21. Look for further announcements and details on and in the Salesforce Functions Trailblazer Community, or sign up to get notified when more details are available.

Why: A Function is your code, run on demand, in a Salesforce managed compute runtime. Use cases include complex business calculations, batch processes, and resource-intensive automation tasks. Salesforce Functions are fully managed by the Salesforce Platform, which takes care of everything else necessary to invoke your code in a secure, auto-scaling environment.

How: Write JavaScript or Java code that uses Salesforce Functions SDKs to communicate with your org. Deploy your Function in the Salesforce Functions compute cloud with the Salesforce CLI. Then, invoke your Function using Apex, and the Salesforce Functions infrastructure authenticates and runs your Function on demand.

5. 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.

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

We provide User-Mode Database Operations in Apex feature to selected customers through a pilot program that requires agreement to specific terms and conditions. To be nominated to participate in the program, contact Salesforce. Pilot programs are subject to change, and we can’t guarantee acceptance. This feature isn’t generally available unless or until Salesforce announces its general availability in documentation or in press releases or public statements. We can’t guarantee general availability within any particular time frame or at all. Make your purchase decisions only on the basis of generally available products and features. You can provide feedback and suggestions for the feature in the Trailblazer Community.

Why: 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.

How: If you’re interested in participating in the pilot program, ask your Salesforce Account Executive.

A new class object represents the two modes that Apex runs database operations. Use this new class to define the execution mode as user mode or system mode. These new methods support passing the class object:

  • Database.query methods
  • Search.query methods
  • Database DML methods (insert, update, upsert, merge, delete, undelete, convertLead)

There are many other features as well, Official release notes are available HTML format as well as PDF files.

Say Hello To Me On Twitter | Facebook | Linkedin | Medium Blog | Blogger

#HappyLearning #ExperienceCloud #Summer21 #BeReleaseReady #Salesforceguy



Swayam Chouksey

Accomplished Salesforce Technical Architect | Technology Advisor @ mindZcloud Enterprise | Co-Founder @ SFDCMINDZ 🇮🇳 🇺🇸