"Spring 24 (SP24) Certification Cycle Start date is 13th April 2024"
join our Telegram Chanel Latest Updates https://t.me/salesforcekeeda

Friday, September 3, 2021

Salesforce Summer 21 (SU21) Release Date

Salesforce Summer 21 (SU21) Exams Start From 24Th August 2021

Currently, the Summer’21 release is available under the pre-release program. On the and 07th & 08th of May, Sandboxes will be upgraded, as a result, your organization will get the look and feel of the Summer’21 releaseIn this release, you will find lots of new features, as well as, new enhancements related to Lightning Experience, Salesforce Flow, Lightning Web Component, Apex, Experience Cloud, Pardot, Quip, Tableau CRM, and APIs.

For examplefeatures like Extend Salesforce with Functions (Beta)Introducing SQL for Tableau CRM (Beta), Access CMS Content with an LWC Wire Adapter, Secure Apex Code with User Mode Database Operations (Pilot)and Monitor Changes to Permission Sets and Permission Set Groups (Pilot)Access Salesforce Data Without Data Sync Using Direct Data (Pilot) is now available in Lightning Experience. 

Also, check out these beta and pilot features: 

  1. 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.
  2. Connect Your Customers to the Right Service Agents Using Omni-Channel Flow (Beta): – Now you can 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.
  3. Track Users’ Progress with In-App Learning Reports (Beta): – Now it is easier to determine the effectiveness of your training program by creating custom reports and dashboards to monitor user engagement with In-App Learning. You can track which users are engaging with which Trailhead and myTrailhead modules, how long they’re taking to complete assigned modules, and more. Reporting for In-App Learning focuses on Trailhead and myTrailhead modules. You can’t report on user engagement with custom learning items.
  4. 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.
    • You can set an expiration date for a permission set or permission set group using the API. 
    • 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.
  5. Use Desk Phones with Service Cloud Voice (Pilot): – Let agents use the phone that they’re most comfortable with. Previously, hardphones such as a desk phone or a mobile phone weren’t supported on Service Cloud Voice with Amazon Connect.
  6. Let Einstein Search for Knowledge Improve How Users Find Answers (Pilot): – Salesforce Knowledge for Lightning Experience got a boost with AI. Now you can shorten the time it takes your service agents and customers to find knowledge articles that are most relevant to them. Try it by signing up for the Einstein Search for Knowledge pilot.
  7. 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.
  8. Send List Email Your Way (Pilot): – Let your sales reps choose how to send their list emails. Now, reps can send list emails from Outlook or Gmail. Previously, reps could send list emails via Salesforce only.
    1. In Setup, search for Send through External Email Services and select Send through External Email Services. Select either the iOS or Android tab to enable and configure mobile security policies. If you already have mobile security policies configured via connected app attributes, you can migrate your existing security policies to the new Setup UI.

Supported Browsers for Lightning Experience 

Lightning Experience is supported by Apple® Safari® latest version on macOS. The most recent stable versions of Microsoft® Edge Chromium, Mozilla® Firefox®, and Google Chrome™ are also supported. Support for the non-Chromium version of Microsoft Edge in Lightning Experience and Salesforce Classic ended on December 31, 2020.

Use Apple Safari on iPadOS (iOS 13.x) or later. Portrait orientation and orientation switching aren’t supported on Lightning Experience on iPad Safari. Use landscape orientation and maximize your Safari browser to full width. To avoid orientation switching, turn on the iPad rotation lock.

Supported Browsers for Salesforce Classic

Salesforce Classic is supported with Microsoft® Internet Explorer® 11 version, Apple® Safari® latest version on macOS. The most recent stable versions of Microsoft® Edge Chromium, Firefox®, and Google Chrome™ are also supported.

Customers/Administrators Point of View

  1. Save time with Mass Actions in Split View: – No need to open a separate list page—act on multiple records at once, now in split view. Select items in the split view list and apply an action to all of them in standard or console view. 
    • A split view automatically has checkboxes if there’s a quick action available for all the items in the list, and you can apply a quick action to the selected records in the actions dropdown menu. Mass actions in the split view follow the same logic as mass actions in the table view. Inline edit isn’t supported in split view, so you see checkboxes only if the object has mass actions available.
  2. Drive Sales Team Accountability with Pipeline Inspection: – Pipeline Inspection gives sales teams a single view of their pipelines with key metrics, opportunities, and weekly changes in close dates, amounts, stages, and forecast categories. With these insights, sales teams can focus on the most important opportunities, and sales managers can spend more time coaching reps to close more deals.
    1. To enabled Pipeline Inspection Setup – From Setup in Lightning Experience, in the Quick Find box, enter Pipeline Inspection, and then select Pipeline Inspection Setup
    2. Turn on Pipeline Inspection and verify that you have Historical Trending enabled and configured for opportunities. Add the Pipeline Inspection button and assign the Pipeline Inspection permission set to the users who you want to have access to Pipeline Inspection.
    3. When enabled, users access Pipeline Inspection from the Opportunities tab. This feature is only available in Sales Cloud in Lightning Experience in Performance and Unlimited editions.
  3. Let Users See Their Snoozed In-App Guidance When They Want (In-App Guidance): – Now when users snooze in-app guidance, we respect that setting and ignore the Delay Between In-App Guidance setting. The snoozed prompt appears the next time users navigate to the page after the time they selected expires. Previously, if a user snoozed a prompt for 20 minutes for example, and the Delay Between In-App Guidance setting was set to 24 hours, the user didn’t see the prompt for at least 24 hours.
    • The in-app guidance appears after the snooze time expires the next time users navigate to the page.
  4. Collect Supporting Documents Through Survey Responses (Salesforce Survey): – Now participants can upload required details in their survey responses as attachments. Collect information about profile updates such as an address change, or allow customers to upload receipts in support of warranty claims. Participants can upload documents in formats such as a document, PDF, spreadsheet, or graphic.
    1. In Survey Builder, add a page, click Add Question, and then select Attachment (1).
    2. Define the configuration parameters for attachment upload (2). These parameters indicate the attachment types, number of attachments, and the size of each attachment that a participant can upload in the responses.
  5. Distribute Surveys to Many Participants at a Time (Salesforce Survey): – Collect feedback and boost the response rates by sending survey invitations to many participants. Target leads, contacts, and members of your campaign with Salesforce objects and list views. Gather information from contacts, leads, and campaign members by sending survey invitations to participants in bulk. To reduce the manual effort of adding email addresses, use objects and list views. Map survey invitations to an associated record object, and establish a context between the associated record and the distributed survey.
  6. Point to Specific Elements on a Page with Targeted Prompts (Beta) (In-App Guidance): – There’s a new type of in-app guidance in town. It’s called the targeted prompt. Connect a targeted prompt to a specific page element to show your users exactly what you’re referring to.
    1. From Setup in Lightning Experience, in the Quick Find box, enter In-App Guidance, and then select In-App Guidance. As you create a prompt, click Targeted Prompts in the Prompt Type area (1).
    2. The targeted prompt points to the page element you select (2) so that your users can benefit from more directed guidance.
  7. Download a Dashboard Image to a File: – For an image of your dashboard that you can embed in presentations or refer to wherever you are, download the dashboard to a PNG file. Previously, you could only obtain a dashboard image by using a screen capture app. These changes apply to Lightning Experience only. 
    1. From the dashboard, click Show More | Download. The dashboard is saved to your selected location in PNG format.
  8. Update Fields from the Report Run Page with Inline Editing (Beta): – Keep the data in your reports and object records up to date while saving time and clicks. When the source data for a report gets out of date, it’s not necessary to go back to the original object record to update the information. With inline editing, you can update certain types of text, numeric, and checkbox fields without leaving the Report Run page. For example, Sales reps can run an opportunity report and review and update the opportunity amounts in one place.
    1. First, contact Salesforce Customer Support and request to have inline editing turned on. Then in Setup, from Reports and Dashboards Settings, select Enable Inline Editing in Reports (Lightning Experience only), and save your changes.
    2. You’re now set to go. Open a report and hover over the text, numeric, or checkbox field that you want to edit. If you see a pencil icon, you can click it, modify the value, and then save. The field value is updated on the report and in the source record, and the report reruns automatically.
  9. Connect with Prospects via LinkedIn with Sales Cadences: – Sales teams that use LinkedIn to learn about and communicate with customers and prospects can now build InMail and connection requests right into their sales process. When you turn on Use LinkedIn with Sales Cadences, sales managers can create sales cadences that connect with prospects via LinkedIn with InMail and connection request steps.
  10. Make Sure Emails Have the Right Dynamic Content: – Dynamic content merge fields in draft emails and templates display the ID for that piece of dynamic content. But how do you know what content your recipients actually see? Now, there’s a column for ID numbers on the Dynamic Content list view so you can make sure you have the right merge field in your emails.
  11. Boost Email Engagement with Einstein Send Time Optimization: – Send list emails to individual prospects at their preferred times. Einstein eliminates guesswork and elaborate segmentation with Einstein Send Time Optimization. Use Einstein’s machine learning skills to select the ideal send time for each email and prospect. Einstein Send Time Optimization is available for use with Pardot’s new email send experience only.
    1. After you enable Einstein Send Time Optimization in Marketing Setup, a training period begins. After about 72 hours, your marketing users can select the Einstein Optimized sending option when they’re ready to send an email.
    2. Enter the start date, start time (1), and a time frame for sending (2), and let Einstein do its work. The sending time frame can be anywhere from 3 hours to 7 days, so you can experiment with different durations.
    3. It takes an hour for Einstein to evaluate engagement data for each prospect, so allow at least an extra hour when you enter the time frame value. If you’re sending a time-sensitive message, you can be certain that emails are sent by a certain time. Check the information box (3) at the end of the form to verify the last possible time to send an email.
  12. Enhancements to Pardot Object Sync (Generally Available):– Pardot Object Sync is now generally available, and it comes with a new name: Object Sync for Pardot (OSP). There are a few improvements such as expanded visitor data and flexibility for business units. To get access to these updates, users must create an app with the new app template.
    • Setting up Object Sync for Pardot (OSP) is a multistep process, which is outlined in Marketing Setup. Head over to Marketing Setup, and search for Object Sync to find a step-by-step setup page. It shows how to enable the feature in Salesforce and Pardot, select the Pardot fields to include in Tableau CRM, and then perform an initial sync.
    • After all the preparation work is done, your users can create a B2B Marketing Analytics app that includes Object Sync’s enhanced datasets. No changes were made to the B2B Marketing Analytics Plus apps, Account-Based Marketing or Marketing Campaign Intelligence, so the setup for those apps is the same as always.
  13. Outlook Integration Available with macOS Big Sur: – Outlook integration and Outlook integration with Inbox users can now log in to the integration from Outlook for Mac if their computer is running macOS Big Sur. Previously, users who upgraded to the Big Sur operating system were blocked from accessing the integration.
  14. Schedule Recipe and Dataflow Runs after Other Runs Complete– Manage recipe and dataflow runs based on your business and data needs with improved event-based scheduling that waits until other runs complete. Set your scheduled runs to kick off after the needed data refreshes, or only after a required previous run completes. Previously, you set an event-based schedules to run only after the related local connection synced.
  15. Connect, Join, and Append Data with Enhanced Graph Interactions: – You can now join or append data from any node to any other node in the recipe, upstream or downstream. Previously, you could join or append only the end node to a downstream node, and duplicated a node each time you wanted to use it again in the recipe. You can now create a branch at an intermediate node, and join or append it to another path in the recipe. Also, you can now move nodes so that they flow right to left.
  16. Create Smarter Intent Models with Language-Based Intent Sets (Einstein Bots): – Do more with intent sets by using language tagging on utterances. An intent set can now contain multiple languages and you can bulk assign utterances to a new language. Bot training focuses on the utterances that match the bot’s language, so your model adjusts to fit your customers.
    1. From Setup in Lightning Experience, in the Quick Find box, enter Einstein Intent Sets to view all installed intent sets. Click an intent set to access the language and bulk action tools. 
  17. Track and Manage a Financial Deal Lifecycle: – Help deal teams effectively track a financial deal lifecycle with the new Financial Deal Management data model. They can manage every aspect of deal-related interactions and take advantage of compliant, role-based data sharing options.
  18. Gather Consent and Disclosure Authorizations from Customers: – Make sure that your customers agree to information disclosure policies before capturing or sharing sensitive data. Monitor consent and disclosure authorization requests provided to users, and track their responses using Intelligent Document Automation. The process also supports consent on behalf of another person or group.
    1. You can track whether the user has seen, signed, or rejected each request, and how and when they gave their response. Optionally, capture additional information about the user response, including the user’s email address, IP address, or geographic location at the time of consent, for verification and audit purposes.
    2. To record a user’s response to an authorization request, click the Related tab on an Info Authorization Request page. Select one of the items in the Info Authorization Request Forms list. You can capture a simple response on that form itself. Or add an Authorization Form Consent record to capture more details about who signed, when they signed, and their location at the time.
  19. Show Absences Next to Appointments and Shifts on the Calendar: – Dispatchers can now see worker absences on the shift calendar, whether they’re planned or unexpected so that they can schedule shifts more accurately.
  20. Generate a Custom Help Center to Guide Customers to Solutions: – Use the Service Setup Assistant to make a customizable help center web page that removes steps from the customer issue to resolution pipeline. The help center functions as a customer support form that lets guests create their own case, or use it to find relevant knowledge articles and avoid creating a case altogether!
    1. Turn on and set up the Service Setup Assistant, then go to Digital Experiences in Setup.
    2. Admins that don’t have a help domain or don’t have Digital Experiences turned on must give Salesforce consent to create a help center on their behalf. To move on, click Yes, let’s do it!
    3. The sample experience starts in Preview mode with generic branding and a sample team, and guest users can’t create cases by default. Admins must adjust their guest user permission settings during customization before guests can use the help center. See our help for details on how to customize the help site’s look and feel to match your company’s ethos.
    4. Admins choose what gets exposed when guests interact with the What can we help you with? search bar in their API settings, but it shows only sample articles by default.
    5. The help center isn’t published until you click Builder in Feature Settings, as publishing makes the site live and viewable to anyone with the link. Activate the button through the Administration link, then go back to the builder and click publish which appears in the top-right corner.

Additional enhancements worth noting!

  1. Get Zoom Integration Features with Salesforce Meetings: – Zoom Integration features are now available for Salesforce Meetings users when Einstein Activity Capture is enabled. Capturing data about reps’ video calls collects valuable metadata for insights into each Zoom meeting. Plus, reps who use Salesforce Inbox can generate links to Zoom meetings when they schedule meetings using Insert Availability.
  2. Power Up Recently Viewed Lists with Customizable Actions: – Now you can add custom actions to your Recently Viewed lists. To be consistent with other list views, Recently Viewed lists now show the actions added to an object’s list view search layout. Some actions, such as Printable View, aren’t available on Recently Viewed lists. This feature originally was available in Spring ’21, then temporarily removed. It’s rereleased now with performance improvements and the option to disable custom actions.
  3.  Show Your Users Three Custom Walkthroughs for Free: – Now you can create as many walkthroughs as you want, showing your users up to three at a time. If you want to show them more, subscribe to myTrailhead. Previously, activating custom walkthroughs for your users required a myTrailhead subscription or a free trial.
    • To show more than three custom walkthroughs to users, subscribe to myTrailhead to get the Walkthroughs permission set license and the Access Walkthroughs permission set. Assign the View Walkthroughs user permission to users you want to be able to see walkthroughs. 
  4. Control the Visibility of In-App Learning with Trailhead in Your Org: – In-App Learning with Trailhead is on by default in your Salesforce org, so you can dive in and start setting up learning assignments for your users. Until you customize In-App Learning, users see three modules suggested by Salesforce in the learning panel and on Learning Home. You can now turn off In-App Learning from the In-App Learning page in Setup.
  5. Install More Custom Fields: – The total hard limit for custom fields per object has been increased to 900, so now you can allocate more fields to the different use cases that you support. 
    • Each Salesforce edition has a limit on the number of custom fields per object that you can create and install. The new 900 limit on custom fields per object allows you to install more fields from AppExchange. For example, for the Unlimited Edition, you can create 800 custom fields on an object and install 100 fields from a managed package. The custom field limit can’t exceed 900, so if you’re approaching the limit, Salesforce recommends that you hard delete or erase custom fields that you no longer need.
    • The new 900 fields hard limit applies only to these objects.
      • Account
      • AccountContactRelation
      • Asset
      • Campaign
      • CampaignMember
      • Case
      • Contact
      • Custom Object
      • Individual
      • KnowledgeArticleVersion
      • Lead
      • Opportunity
      • OpportunityLineItem
      • Order
      • OrderItems (Order Product)
      • Product2 (Products)
      • Solution
      • Users
      • UserRole (Role)
  6. Record Calls by Default: – You can now enable default recording for Dialer. Your users can still decide whether to record individual calls. It’s up to users to comply with any privacy rules and regulations.
  7. Create, Edit, and Delete Tasks with the Customer Community Licenses: – Update tasks with Customer Community licenses. Users can create, edit, and delete tasks that they own. They can also create tasks for other users and make updates on tasks that are shared with them.
  8. Share Records Owned by High-Volume Users with Unauthenticated Guest Users: – Select whether to include records owned by the 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.
  9. Pre-configure Lightning Templates in Case Support Settings, Web-to-Case, and Case Auto-Response Rules: – Lightning templates are compatible with Support Settings when auto-assigned through Service Setup Assistant, which means agents now have instant access to three powerful tools. Automate the Case Creation and Edit functions, instantly create and send a Customer Satisfaction Survey or Net Promoter Score, and let Salesforce handle notification emails to help boost agent productivity when a case owner changes.
  10. Use a Service Account with Microsoft Exchange: – If you use Microsoft Exchange Server 2019, 2016, or 2013, you can connect Einstein Activity Capture with a service account. Service accounts give you more control over which users Salesforce can access data from. Plus, Einstein Activity Capture users don’t connect their own accounts, which simplifies the rollout.
  11. Track the Number of Active Licenses in Your Org: – Use the new Active Licenses tab in the Lightning Usage App to monitor your active, assigned, and available licenses. You can track data for user licenses, permission set licenses, and feature licenses. License metrics help you quickly determine if you need more licenses, or if users are assigned licenses they no longer need.
  12. 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.
  13. Share Financial Deals with Multiple Users or Groups: – Help deal teams easily share financial deals with multiple participants at a time in a compliant manner. When you add the new Manage Participant component to a financial deal record page, they can add multiple users or groups as participants to the record, and also assign roles from within the component. The component also provides them a suggested list of users or groups to add to the record.
  14. Measure Forecasts Your Way in Lightning Experience: – Now you can base forecasts on custom fields of the currency or number data types. This change means that you have more flexibility to reflect your business model with Collaborative Forecasts.
    1. Here’s an example. Using the setup flow, create a forecast type based on the Megawatts field on the Opportunity object.
  15. Streamline Scheduling by Limiting Rule Validation Checks: – Manage the frequency and triggers of your automatic rule violation checks and let dispatchers validate rules on demand for more efficient scheduling. With custom permissions, dispatchers can manually check rules for service appointments from the Gantt chart or list, or they can use the Check Rules button for all loaded services.
  16. Redirect Expired Tabs to a Custom Logout URL: – For Salesforce sessions, you can now redirect all expired tabs in your browser to a custom logout URL. Previously, the redirect URL wasn’t applied to all expired tabs. Instead, only one tab was being redirected correctly, and the other tabs were redirected to Salesforce.com.
  17. See the Engagement Success of Each Sales Cadence Step– Let sales managers see the effectiveness of their sales cadence steps with the new Sales Cadence Engagement component. On sales cadence pages, managers can view engagement rates and totals for each email template or call the script on each step so they can make updates to better drive their pipeline.
  18. Get More Clarity and Control on Email Marketing Settings Upgrade your mailability model for simplified email marketing settings and more clarity about a prospect’s mailable status. After you upgrade, prospect records include a mailability section showing the factors that determine whether the prospect can receive marketing emails. View their overall mailable status, Do Not Email and Opted Out settings, and bounce information. And edit these settings in Automation Rules, Engagement Studio, and prospect import.
  19. Welcome to Service Setup: – Based on customer request Salesforce is now introducing getting started with an out-of-the-box Service app, so the Service Setup Assistant now takes care of even more tasks to make setup easier. The Assistant gives you a default help center, automated case email notifications, and sample data such as macros and flow recommendations to help you get to know Service Cloud best practices. It also completes key setup steps for Knowledge and walks you through giving your team access to the features they need.
  20. One-Time Passwords Are Getting Longer in Winter ’22: – In Winter ’22, to improve security, Salesforce is increasing the length of one-time passwords (OTPs) used for identity verification from five digits to six digits. If you have customizations that rely on six-digit OTPs, such as custom Apex implementations for multi-factor authentication (MFA) or passwordless login, change them before the Winter ’22 release.

Developers Point of View

  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.
    1. 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">
         <targetConfig targets="lightning__RecordAction">
    2. 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. Improve Page Performance with Custom Lightning Component Analysis: – Get insights on custom Lightning components on your Lightning record pages. Updates to the Lightning page analysis tool in the Lightning App Builder give you more performance predictions for your Lightning page.
  3. Get an Improved Experience from Forecast Types in Setup: – Forecast type administration has a whole new look and feel. Now a setup flow guides you through the steps to create forecast types. Then you manage your forecast types on the Forecast Types page. The Setup redesign makes it easy.
    1. To get started, select Forecast Types from the Setup tree. If you’re using Salesforce Classic, switch to Lightning Experience to find the Forecast Types page. Forecast type administration is now available in Lightning Experience only.
    2. Next, click Create a Forecast Type, and then move through the setup flow to select an object, measure, date type, and hierarchy to forecast on. Optionally, specify a split type or product family grouping. Give the forecast type an appropriate name. And choose the opportunity fields to show as columns in the opportunity list.
  4. 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;
  5. Identify and Match Event Messages with the EventUuid Field: – Platform event messages now include the EventUuid field, which identifies an event message and is available in subscribers using API version 52.0 and later. Use this field to match published and received event messages by comparing the UUIDs of the received events with those returned in the SaveResult of publish calls. This way, you can find any event messages that aren’t delivered and republish them.
  6. Prevent Validation Errors in a Repeat Component: – If you see a validation error when selecting a value in a <apex:selectList> page component that’s within a repeat component, use the new Boolean attribute called skipValidationInRepeat to skip validation of the selected value.
  7. Securely Access Aura Components (Update): – This update ensures that an external component with access=”public” is accessible only to other components within its same namespace or to internal Salesforce components. This update is enforced in Winter ’22.
    1. Fixing this issue can reveal other issues that were previously undetected. For example, before this update, a callback that wasn’t wrapped in $A.getCallback() could lose its context but still run successfully. After this update, if a callback loses its context, the access check fails with an error. We recommend performing these testing steps in a sandbox environment to evaluate the release update’s impact and fix any component access errors before it’s auto-enabled in Winter ’22.
      1. From Setup, in the Quick Find box, enter Release Updates, then select Release Updates.
      2. For Enable Aura Component Access Fix, enable the release update test run.
      3. Test pages with custom components and watch for any error messages such as Access Check Failed! in the console log.
      4. Fix any broken components.
      5. When manual testing is complete, disable the release update test run and transfer the code changes to production.
      6. In production, enable the release update or wait for it to auto-enable in Winter ’22.
  8. Attach Actions to Asynchronous Apex Jobs Using Transaction Finalizers (Generally Available): – With Spring ’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.
  9. Salesforce Flow Enhancements: – There are several enhancements in Salesforce Flow as follows:
    1. Use Is Changed in Condition Logic for Start Elements and Decision Elements: – Use the new Is Changed operator in your condition logic for Start elements and Decision elements in record-triggered flows. With the Is Changed operator, you can define conditions that check whether certain field values on the record changed in the current transaction.
    2. Use ISCHANGED, ISNEW, and PRIORVALUE in Record-Triggered Flow Formulas: – Record-triggered flows for new and updated records now support the ISCHANGEDISNEW, 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.
    3. Sort and Limit Data in a Collection: – Now you can use the Collection Sort element to prioritize and limit your collected data. You can also limit the remaining items in the collection variable after the sort. For example, you can sort a collection of user-chosen products by preference and pricing. You can also reduce a record collection variable to only the top 100 priority accounts, ensuring that the flow doesn’t hit the element limit when that collection variable is processed by a large loop. Previously, it wasn’t possible to reorder the values. It also was difficult to separate a collection variable’s highest or lowest values and to avoid hitting flow limits when looping through a large collection.
    4. Directly Update Fields in Record-Triggered Flows: – With a new option in the Update Records element for record-triggered flows, you can directly update the record that triggered the flow. Previously you set filter criteria for the triggering record with a Decision element, but now you can use the Update Records element. The Update Records element only displays fields you can update, and the new option is available in all record-triggered and schedule-triggered flows. These changes mean you can now easily switch between record-triggered flows that run before or after the record is saved. Existing before-save record-triggered flows that use an Assignment element to set values for the record that triggered the flow are unaffected by this change.
    5. Create Scheduled Paths in Auto-Layout (Beta): – Now you can create scheduled paths while in auto-layout. This ability is similar to using scheduled actions in Process Builder or time-dependent actions in workflow rules, but now in auto-layout Flow Builder. Scheduled paths that can run part of a record-triggered flow after its triggering effect were added in Spring ’21.
    6. Place Fields from Your Salesforce Objects Directly on Flow Screens (Beta): – Now you can build screen flows faster by directly adding your existing Salesforce record fields. When you add a record field to a flow screen, the field’s name, data type, help text, requiredness, and existing values are automatically configured for you.
    7. 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.
      1. In Setup, Paused Flow Interviews changed to Paused and Failed Flow Interviews. The Setup page now includes list views for flow interviews that are paused or have failed. The list views include more list view controls such as Sharing Settings and Select Fields to Display.
      2. From Setup, enter flow in Quick Find box, and then select Paused and Failed Flow Interviews. The default list view is Paused Flow Interviews.
      3. To open the flow interview in Flow Builder, click the interview label.
    8. Debug Flows After Pause Elements in Flow Builder: – Now you can continue to debug a flow even after a Pause element is executed. If the pause conditions are met, you can choose a pause configuration that resumes the flow. Only pause configurations that run at a specific time is supported. Previously, you couldn’t resume a flow after a Pause element when you debugged a flow in Flow Builder.
      1. Debug the flow and select Debug pause element behavior.
      2. Choose a pause configuration and continue debugging the flow.
      3. If pause conditions aren’t met for pause configurations that run at a specific time and the flow has no default path to take, the flow doesn’t resume.
    9. Debug a Flow to See When Transactions Are Committed: – Schedule-triggered flows and autolaunched flows that have no triggers can now show debug details for transactions that are committed or that are rolled back due to an error. If a flow fails, you can debug the flow to see whether record changes were permanently saved to the database via committed transactions before the failure.
      1. Debug a flow in Flow Builder, and then from Debug Details, click Basic Debug Log. Select Show Governor Limit Consumption or Show Transaction Boundaries or both.
      2. We moved the Show query limits in debug details check box from the Debug flow window to the debug details, so you can choose the details as you view them.
    10. Debug Flows in Auto-Layout (Beta): – With just a couple of clicks, debug your flow in auto-layout. Get the same rich and contextual debugging experience for flows built-in auto-layout that you do for flows built-in free-form. Debug directly on the canvas, or via a link in a flow error email. Welcome to a new era of simplified debugging!
  10. Do More with Branches in Unlocked and Second-Generation Managed Packages: – Development teams who use branches in their source control system (SCS) often build package versions based on the metadata in a particular branch of their SCS. To make it easier to identify which branch a package version is based on, we enhanced the branch attribute. You can specify the branch name for a package version or a package dependency in the sfdx-project.json file, or directly on the command line using Salesforce CLI.
  11. Manage Access for Apex Tests That Run at Package Version Creation: – Sometimes the Apex tests that you write require a user to have certain permission sets or permission set licenses. Previously, test-specific permissions had to be added to each Apex test. Now you can use the apexTestAccess setting in the sfdx-project.json file, and assign permission sets and permission set licenses to all the Apex tests in your package.

    Assign permission sets and permission set licenses in the sfdx-project.json file. These permissions are assigned to the user in context when the Apex tests run at package version creation.

     "apexTestAccess": {
                   "permissionSets": [
                   "permissionSetLicenses": [
  12. Disable Access to Non-global Apex Controller Methods in Managed Packages (Update, Enforced): – This update corrects access controls on Apex controller methods in managed packages. When this update is enabled, only methods marked with the global access modifier are accessible by Aura components from outside the package namespace. These access controls prevent you from using unsupported API methods that the package author didn’t intend for global access.
    1.  To test this update, we recommend working in a sandbox. After April 4, 2021, you can continue to activate or deactivate the update from Release Updates in Setup until the update is automatically enforced when your org is upgraded to Summer ’21.
      1. From Setup, in the Quick Find box, enter Release Updates in the Quick Find box, and then select Release Updates.
      2. Find Disable Access to Non-global Controller Methods in Managed Packages, and click View Details or Get Started.
      3. Test that your custom Aura components are working correctly.
  13. Enforce Access Modifiers on Apex Properties in Lightning Component Markup (Update, Enforced): – This update makes Lightning components consistent with the use of Apex properties in other contexts. For example, a markup expression can no longer access an Apex property with a private Apex getter. This release update doesn’t affect usage of Apex setters.

    Let’s look at an example for an Apex class with a private getter for a counter class property.

    public class EnforcePrivateGetter {
        public Integer counter { private get; set; }
        public static EnforcePrivateGetter GetRepro2()
            EnforcePrivateGetter result = new EnforcePrivateGetter();
            result.counter = 2; 
            return result;

    With the update enabled, this Aura component can’t access the private getter with the {!v.apexObject.counter} expression. The same restriction applies for a Lightning web component.

    <aura:component controller="EnforcePrivateGetter" access="global">
        <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>
        <aura:attribute type="EnforcePrivateGetter" name="apexObject" />
        counter = {!v.apexObject.counter} <br></br>

    Here’s the JavaScript controller.

        doInit : function(cmp, ev) {
            var action = cmp.get("c.GetRepro2");
            action.setCallback(this, function(response) {
              var state = response.getState();
              if (state === "SUCCESS") {
                cmp.set('v.apexObject', response.getReturnValue());
              else if (state === "ERROR") {
                console.log('Error : ' + JSON.stringify(errors));

    With the update enabled, the fix is to remove the private access modifier on the getter and change the class variable definition to:

    public Integer counter { get; set; }

    To make an Apex property readable outside the Apex class, the property can’t have a private or protected access modifier.

  14. Create Package Versions Based on the Upcoming Release – During major Salesforce release transitions, you can now specify preview or previous when creating a package version. In Spring ’21, we added the ability to specify the previous release. Specifying the release version for a package allows you to test upcoming features, run regression tests, and support customers regardless of which Salesforce release their org is on.

    To create a package version based on the upcoming Salesforce release version, create a scratch org definition file that contains:

        "release": "preview"

    In the sfdx-project.json file, set the sourceApiVersion to correspond with the release version of the package version you’re creating.

    Then when you create your package version, specify the scratch org definition file.

    sfdx force:package:version:create --package pkgA --definitionfile config/project-scratch-def.json
  15. New Lightning Web Components – These components are new and require API version 52.0 and later.
    1. lightning-quick-action-panel – Builds quick action modals with the same style as the Salesforce Lightning Design System (SLDS) modal. With this component you can customize screen actions and still have consistent UI across all actions. Use lightning-quick-action-panel with the lightning__RecordAction target to use your custom component as a quick action on a record page. 
    2. lightning-service-cloud-voice-toolkit-api – This component provides access to event listeners and methods for the Service Cloud Voice Toolkit API, enabling your component to listen to events that take place during phone calls with service agents. 

Additional enhancements worth noting!

  1. 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.
  2. Secure More Data Types Using Data Mask: – Enhanced features give you powerful new ways to secure all your sensitive data. Admins can use Data Mask to automatically mask the data in a sandbox. These enhancements are available in Data Mask:
    • Data Mask is now available for Work.com and Industry products.
    • Enhanced masking rules ensure that the User.username field on the User object is always uniquely masked.
    • You can now mask Boolean check box data.
    • The supported API version is now v50.0
  3. Customize Access to Background Operations: – With the Summer ’21 release, the BackgroundOperation standard object has enhanced access settings. Admins can now define CRUD permissions to control which users can have access to background operations. Field-level access and sharing rules for the BackgroundOperation object are also enhanced.
    1. In Salesforce orgs created before the Summer ’21 release, profiles with View Setup and Configuration permission and users with custom permissions could access background operations. As of Summer ’21, only profiles that an admin grants Read access to and whose license allows it can query background operations. CRUD is enabled automatically within 24 hours of the release.
      1. The field-level access to background operations is determined by user permissions:

        • Users with View Setup and Configuration permission can view all the fields of the BackgroundOperation object.
        • Users without View Setup and Configuration permission can view only the values of IdNameTypeParentKeyStatusCreatedByExpiresAtSubmittedAtFinishedAtStartedAtCreatedDateProcessAfter, and Error fields. All the other fields display a null value.
      2. You can query for a background operation based on the new Type field. These are sharing rules for different background operation types:

        • Sweeper: Users with Customize Application permission or record owner
        • WebCart: B2B Commerce Super User or owner of the related web cart
        • AsyncQueryExternalChangeDataCaptureExternalObject, and XClean: Users with View Setup and Configuration permission or record owner
  4. MuleSoft Composer for Salesforce: – MuleSoft Composer for Salesforce (Composer) makes it easy for you to build process automation for data using clicks instead of code from within Salesforce. When you create a secure process to connect the information stored in different systems, you build a real-time, integrated view of your customers and your business.
  5. Deploy a New Custom Label and Component Together: – Deploy a new custom label and a reference to that custom label in an existing Lightning web component in a single deployment. Previously, you deployed the new custom label then added a reference to it in an existing Lightning web component in a second deployment.
  6. 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.
  7. Protect Picklist Performance: – New picklist options are available to help you protect the health of your Salesforce org. Inactive picklist values can be intentionally created for future use. But in some cases, numerous inactive picklist fields can cause performance issues. Two new settings on the Picklist Settings page give you control over inactive values for unrestricted picklists.
    • A limit of 4,000 on inactive values for unrestricted picklists is set by default. Removing the limit with the Remove upper bound on inactive picklist values setting is recommended only for troubleshooting, such as when errors occur during data creation or metadata deployment. This option applies to custom and standard picklists. The 4,000 limit doesn’t apply to restricted picklist and global picklist value sets. Global picklist value sets have a combined active and inactive limit of 1,000.
    • The Establish upper bound on existing picklists setting runs a query on picklists to find inactive values that satisfy the limit criteria and enforce the limit for those picklists. This option applies the upper bound limit only to standard picklists.
  8. Apex Reference Information Moved from the Apex Developer Guide to the Apex Reference Guide: – With Summer ’21, Apex reference content is moved from the Apex Developer Guide into a new Apex Reference Guide. All conceptual information is retained in the Apex Developer Guide.
  9. 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.
  10. See Conditional Visibility on Flow Screens at a Glance:– Conditional visibility is now more visible. Flow Builder now displays a visibility icon next to components and fields with conditional visibility rules. Also, when a component or field with at least one conditional visibility rule is selected, the Set Component Visibility or Set Field Visibility section is automatically expanded.
  11. Enable Secure Static Resources for Lightning Components (Update, Postponed) – This update is postponed to Winter ’22. It was scheduled for auto-activation (enforcement) in Spring ’21. To improve security, this update serves all static resources from the visualforce domain instead of the lightning domain. This change prevents a script included in a static resource from accessing the document in the lightning domain due to the same-origin security policy.
  12. Control Picklist Requiredness More Accurately:– For all picklist components, you can now enforce picklists as required for your screen flows. With API version 52.0 and later, you can also set up optional picklists in screen flows.
  13. Disable Ref ID and Transition to New Email Threading Behavior (Update, Postponed): – A new enforcement deadline for Disable Ref ID and Transition to New Email Threading Behavior gives admins until Summer ’22 to adopt mandatory email threading changes through the Release Update feature. A previous postponement announced that it was scheduled for auto-activation (enforcement) in Winter ’22.
  14. Permanently Filter Read-Only Fields in Flow Builder:– When a flow creates or updates a record, the flow now filters out system fields or other read-only fields on record variables. Previously, you enabled filtering of inaccessible fields from flow requests in the Salesforce process automation settings. Now the setting is permanently enabled for all flows. You can change the setting only for flows that are configured to run on API version 51.0 or earlier.
  15. Flow and Process Run-Time Improvements in API Version 52.0:– These updates affect only flows and processes that are configured to run on API version 52.0 or later. Versioned updates let you test and adopt run-time behavior changes for individual flows and processes at your convenience. To change the run-time API version of a flow, open it in Flow Builder and edit the flow version properties. To change the run-time API version of a process, open it in Process Builder and edit its properties.
    1. Sort and limit data in a collection with the Collection Sort element – This versioned update enables the Collection Sort element in flows that run in API versions 50.0 or later.
    2. Filter system fields or other read-only fields when creating or updating records – The Filter inaccessible fields from flow requests process automation setting is now permanently enabled for all flows. You can change the setting only for flows that are configured to run on API version 51.0 or earlier.
    3. Get merge field improvements in flows – Field-level access is now enforced, and performance such as page-load time is faster for merge fields that reference formula values. In a screen flow, a merge field now returns a null value more consistently when field-level access is enforced. For example, a user who doesn’t have access to a record uses a merge field to reference a field value that isn’t returned from a formula. The merge field now returns a null value. When a merge field references a data type value that isn’t supported, we now show an error message. When a merge field references a number value on a complex data object such as an account record or a custom Apex object, the field now returns the number value. And this field doesn’t convert it to a decimal value.
    4. Automatically prepend –None– to Picklist components at run-time – For flows that run in API version 52 and later, this versioned update prepends the –None– picklist value to all picklist components when the flow runs.
  16. Build Flows on a Larger Auto-Layout Canvas (Beta):– Now you can expand your flows and avoid exceeding size limits. The new canvas is more than five times larger, designed to accommodate your most complex flows. Give it a try by converting your largest flow to auto-layout.