Salesforce Spring’23 Release Quick Summary

Salesforce Spring’23 Release Quick Summary

Last Updated on January 5, 2023 by Rakesh Gupta

Currently, the Spring’23 release is available under the pre-release program. On the 06th of January 2023, Sandboxes will be upgraded, and as a result, your organization will get the look and feel of the Spring’23 release.

In 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, Einstein Automate, Customer Data Platform, Field Service, Marketing Cloud Account Engagement (aka Pardot), Quip, CRM Analytics, Salesforce CMS, Salesforce Payments, Subscription Management, Enablement Sites(myTrailhead), and APIs.

For example, some exciting features like Einstein Conversation Mining (Beta), Use DataWeave in Apex to Enable Data Transformation to Different Formats (Beta), Use the UTAM Browser Extension to Identify Page Objects (Beta), Choose the Permission Sets Display When Setting Field-Level Security (Beta), Interrupt Long-Running Work to Handle Time-Sensitive Work (Pilot), and Monitor Contact Center Health in the Omni-Channel Wallboard (Pilot) are coming to Salesforce. 

Also, check out these beta and pilot features:

  1. Configure Searchable Fields for Each User Profile (Beta): – Help your team get results related to their work by configuring all your searchable fields for each user profile. In Search Manager, you can now edit the fields to make them searchable or not searchable for each user profile.
    1. From Search Manager in Setup, create a configuration setting and edit the fields to make them searchable or not searchable for each user profile.
  2. Enhance Lightning Dashboards with Text and Graphics (Beta): – Explain charts, describe metrics and KPIs, and clarify tables with rich text right in context. Add company logos and branding, flow diagrams, and embedded images. Guide users through their data with section titles, narrative text, and even animated GIFs. 
  3. Recalculate Account Sharing Rules Faster (Beta): – Salesforce is changing the way that automatic sharing rule calculation works behind the scenes for case objects. The implicit share records between accounts and their child case records are now virtual. Sharing calculations for an account’s related objects can influence account-sharing rule calculation. So speeding up case object calculation leads to faster org-wide default and account-sharing rule recalculation. 
  4. Approve Content and Create Workflows in Enhanced CMS Workspaces (Beta): – Use CMS Workflows, available in enhanced CMS Workspaces, to create custom workflows directly from your CMS content items. Approvals, translation requests, and more are built into the content and available with a couple of clicks. Use the prebuilt CMS Basic Approval Workflow in Flow Orchestrator to get started.
    1. From Setup, in the Quick Find box, enter Digital Experiences, and then click Settings. Under Workflows and Approvals in Enhanced CMS (Beta), select Use workflows in CMS and save your changes. After workflows are turned on, they appear on the content detail page of your CMS content items.
  5. Focus Your View with More Dashboard Filters (Beta): – Refine and target your dashboard data with additional filters on Lightning dashboards. No more maintaining separate versions of the same dashboard for different business units and regions with only three filters. Segment and slice data with improved granularity with up to five filters.
  6. Create Component Visibility Rules in Enhanced LWR Sites (Pilot): – Make your enhanced LWR sites as dynamic as your users. With Expression-Based Visibility, you can hide or show individual components based on the conditions you choose. From the new Visibility tab on your components, create rules and apply them based on User object fields, such as User > Manager > Department
    1. Create conditions using AND/OR logic and show your components at just the right time to the right people.
  7. Fetch Data Using the GraphQL Wire Adapter (Pilot): – Built on the Salesforce GraphQL API, the GraphQL wire adapter enables you to use UI API-enabled objects with the object-level security and field-level security of the current user. Lightning Data Service provides the wire adapter with client-side caching and data management capabilities.
  8. Increase Case Resolution with Einstein Search Answers (Pilot): – Einstein Search Answers instantly extracts relevant text from a knowledge article to speed up case resolution. You can also interact with the answers and copy the link or answer to your clipboard.

Supported Browsers for Lightning Experience

Lightning Experience is supported by Apple® Safari®’s latest version on macOS. The most recent stable versions of Microsoft® Edge Chromium, Mozilla® Firefox®, and Google Chrome™ are also supported.

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.

Customers / Administrator’s Point of View

  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.
    1. Select the relative value option when setting up a filter on a user field, such as Opportunity Owner or Created By. 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 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.
    1. From Setup, enter Reports in the Quick Find box, 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.
    2. 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. Connect Security Center and CRM Analytics with Data Sync: – Analyze Security Center data in CRM Analytics without manually uploading CSVs. Security Center objects can now be directly synced through the Salesforce Local connector in data sync.
  4. Highlight Important Content in Repeater Widgets with Conditional Formatting: – Make key data in repeater widgets stand out by adding rules to format text, numbers, charts, or images. Previously, you could apply conditional formatting only to dynamic text in a repeater. You can intuitively define a separate rule for each widget in the repeater based on a value or range. The options available vary depending on the widget type. For example, on a text widget, you can apply a formatting rule to a field or the entire widget, while you can display symbols with conditional rules on an image widget.
    1. With the repeater widget selected in the dashboard designer, click Edit Repeater Content in the Widget tab.
    2. In the repeater, select the widget to which you want to add the conditional formatting rule, and then click Add Rule (1). For text widgets, add the query data before creating the rule.
    3. Define the rule settings and apply your changes (2).
  5. Facet SOQL Queries on Related Salesforce Objects with Ease: – Surfacing trends between Salesforce objects with parent-child relationships is now easier. For example, you can track related opportunities and cases without code on a dashboard set up to monitor Salesforce account records. Parent-child faceting between steps built on Salesforce objects is enabled by default on new dashboards.
    1. To facet opportunities and cases based on accounts, after adding queries for the three data sources in the dashboard, click the drop-down on the dashboard designer (1) and then select Connected Data Sources (2).
    2. In Data Source Connections, on the Related Salesforce Objects tab (3), select Configure Connections Based on Existing Relationships (4).
    3. Close the window and save your changes to the dashboard. In preview mode, click an account to review related opportunities and cases.
  6. Apply Powerful Formulas and Functions to Direct Data: – Save time when you run complex calculations on data in Customer Data Platform, Snowflake, and Google BigQuery. Use the column editor to create text string formulas, work with math functions, or perform calculations across rows of data with windowing functions. Previously, you wrote custom SQL queries in CRM Analytics Direct Data.
    1. Open the live dataset or Customer Data Platform record in a lens. In Table mode, select Compare Table.
    2. Under Measures, click the Plus button under measures, and then click Add Formula.
  7. Chain Processes in a Sequence with Workflow Orchestration: – Trigger Customer Data Platform processes only when required or when a previous process has finished running. Now you can chain workflow processes, such as ingestion (Salesforce CRM and Amazon S3 data streams), segments, and activation, and configure the sequence in which they run. For example, you can chain the processes to refresh calculated insights or run segmentation when data ingestion is completed. You can also define your own workflows using Flow Builder.
  8. 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.
    1. 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.
  9. Track External Services Limits: – Five visual (flat) gauges at the top of the page now show current usage and maximum values for each per org limit. Previously, when you first entered External Services from Setup, two lines of text at the top of the page showed the number of total actions and active actions registered.
  10. Build Your Own Forecasts Pages in Lightning App Builder: – Customize desktop forecast pages to include all the information sales leaders require to drive accurate forecasts that support your unique business.
  11. Get More Flexibility for Tracking Forecasts by Custom Date:– To make accurate predictions for your unique business process, forecast using custom dates. For example, if your company recognizes revenue when products ship, add a custom date field to capture planned shipping dates. Then, use that field to create your forecast types. Previously, based on the forecast type, sales leaders could forecast only by Close Date, Product Date, or Schedule Date.
    1. Create and activate a custom date on the Opportunity object. Then, when you’re adding a forecast type based on the Opportunity, Opportunity Product, or Opportunity Split object, your custom date is available to select as the date to use in forecast calculations.
  12. Connect Salesforce to MuleSoft with Fewer Clicks: – Use the new MuleSoft Services page in Setup to log in to MuleSoft AnyPoint Platform before importing REST APIs from Anypoint Exchange as external services. Previously, you created a connected app in MuleSoft and all the necessary credentials and permissions on multiple Setup pages. Now, when you log in to the MuleSoft AnyPoint Platform from the MuleSoft Services page, the system creates all these objects for you in the background, drastically reducing the amount of configuration required.
  13. Get the Play-by-Play with Field History Tracking for Activities: – See a list of changes to events and tasks when you turn on field history tracking. Track up to six fields so that sales reps can see what’s changed in the Related tab for events and tasks.
    1.  Add the Activity Record History component to your custom event and task lightning pages.
  14. Let Customers Pick Their Own Meeting Times in Lightning Experience: – When emailing customers, reps can now avoid the back-and-forth and include a link to their Outlook or Gmail calendar so that the customer can choose their meeting time.
    1. This change applies to Lightning Experience in Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions with Salesforce Inbox and Enhanced Email.
    2. Users with the Use Inbox user permission, available with a High-Velocity Sales, Sales Cloud Einstein, or Inbox license, can use this feature.
    3. When creating an email, reps click the scheduling icon and select Add Scheduling Link.
  15. Assign Targets to Multiple Cadences for Separate Purposes: – Now managers can assign the same target to different cadences to achieve different goals. For example, add a target to one cadence for collecting a current invoice and another for cross-selling additional products.
    1. In Sales Engagement Setup, Assign Targets to Multiple Cadences is turned on by default. You can disable it if you prefer to allow only one cadence per target. Turning off this feature prevents new targets from being added to multiple cadences but doesn’t remove targets from any cadences.
    2. Users can add targets to up to five cadences. The Sales Engagements component on target records shows pending steps for all cadences the target is assigned.
  16. Improve Your Site SEO with Structured Data: – Now you can use the <script> tag to add structured data to individual site pages. Structured data provides key page details in a standardized format that helps search engines understand the content and meaning of a web page. With better comprehension of your site’s content, search engines display your pages in more engaging ways, which can drive higher traffic to your site. You can add structured data to your pages from the Head Tags section of a page’s Properties tab in Experience Builder or with ExperienceBundle and DigitalExperienceBundle Metadata API types.
  17. Convert Processes to Flows with the Migrate to Flow Tool: – The updated Migrate to Flow tool can help your transition to Flow Builder. In addition to workflow rules, you can now use the Migrate to Flow tool to convert Process Builder processes into flows. Flows can do everything that processes can do and more.
  18. Schedule Complex Work More Efficiently with Expanded Same Start Capabilities: – Create Same Start dependencies for up to five service appointments when scheduling complex work among service territories using Enhanced Scheduling and Optimization. Previously, you could schedule Same Start dependencies for only up to two appointments in a dependency group.
    1. Turn on Enhanced Scheduling and Optimization in Field Service Settings and set up the service territories that use enhanced scheduling. Then create scheduling dependencies between service appointments.
  19. Improve Efficiency in Your Business Unit with Account Engagement Optimizer (Beta): – Get actionable recommendations to help you maximize efficiency and get ahead of issues in your business unit. The recommendations Optimizer gives can help you improve email send times, keep visitor tracking running smoothly, and more. You also get an overall status for your business unit so you know if something critical needs your attention. Plus, use Optimizer’s table action manager to pause and prioritize actions.
  20. The Option to Run Automation Rules in Real Time Is Being Retired: – The option to run automation rules in real-time is scheduled for retirement in all Account Engagement editions in June 2023. After retirement, existing automation rules that use this setting continue to run but don’t run in real time. When you create a new rule or edit an existing rule, the option to run in real-time is no longer available. 
  21. Monitor External Action Errors to Keep Automations Running Smoothly: – Review third-party app integration error root causes and pinpoint which automation, steps, and actions are affected. Identify, diagnose, and fix errors preventing your automation from running as expected.
    1. Use the External Action Errors table in Account Engagement Settings to identify issues with your integrations.
  22. Request the Right Swarm Member with Searchable Skills: – Make it easier for agents to find the right expert to add to the swarm with skills that are searchable from Expert Finder. Agents save time scrolling through available skills and can instead search for exactly the right skill combination.
    1. When an agent starts a swarm with Expert Finder, they can search for and add swarm member required skills. Skill selections use And logic, meaning the swarm member must meet all selected skill requirements.
  23. Find Work Items or Agents with the Right Skills: – Filter by skills more precisely in the Skills Backlog and Agent Summary tabs in Omni Supervisor. Previously when you filtered the skills column in the Skills Backlog tab, for example, it showed work items with any of the selected skills. Now you can list work items that require all the selected skills and quickly identify the skill sets you need.
    1. Select One or more selected skills or All selected skills on the Skills Backlog or Agent Summary tabs. Then choose the skills of interest.
  24. Build Shifts Fast with Shift Patterns: – Save time and create multiple shifts at the same time with repeating shift patterns.
    1.  Create shift templates that define shift start times, durations, and job profiles. Create a shift pattern and set its length, such as 7 for a weekly pattern. In the pattern’s related list, add shift pattern entries with a day position and a shift template. For example, to create 10 shifts each weekday and 5 on Sundays and Saturdays, add 10 entries for day positions 2 through 6 with the Weekday shift template. Add 5 entries for day positions 1 and 7 that use the Weekend shift template. In the shift manager, click New from Pattern to quickly create the shifts you need for the upcoming weeks.
  25. Downsell a Subscription (Subscription Management): – You can now decrease the quantity of a subscription you’ve sold. Previously, the only change you could make to a subscription was to increase its quantity. Quantity decreases can originate in your system or via your self-service portal, and an asset’s dashboard shows them along with quantity increases. If you use Subscription Management to support your billing process, you can decrease a quantity on the next billing date. Otherwise, you can amend on any date between today’s date and the subscription’s end date.

Additional Enhancements Worth Noting!

  1. Major Release Notification Emails Are Streamlined: – To reduce the number of emails you receive, the Release Is Live email is updated, and the Features Enabled email is discontinued. When a major release upgrade is complete for your instance, you receive an email with a subject line that starts with “Release Is Live.” That email now includes updated language about the timing of feature availability. Previously, you received a separate email with a subject line that started with “Features Enabled” that outlined feature availability for the release.
  2. Schedule Video Appointments with Amazon Chime: – Salesforce Scheduler now provides integrated Amazon Chime for video calls. The feature operates in the Bring-Your-Own-Application (BYOA) model and requires an Amazon Chime account. After you enable and configure video call settings, Salesforce Scheduler uses Amazon Chime for all its video appointments. Salesforce Scheduler also provides Virtual Appointment Email Templates that you can use to send notifications to unauthenticated users for their upcoming video appointments. This feature is available in the Salesforce Lightning Console and Experience Cloud sites but isn’t available for APIs.
  3. Stay Informed on Dashboard and Report Subscriptions: – You’re no longer in the dark about which reports, dashboards, or other analytic assets your users are subscribed to. Manage data access by determining what kind of attachments are sent, who receives them, and who the running user is. Stay on top of scheduling and limits with a quick report showing when subscriptions run and who set them up. Create a custom report type on Analytic Notifications to view the source, owner, running user, and schedule of subscriptions.
  4. Edit Queries That Contain Interactions: – Queries that have interactions (bindings) are now editable. Rather than rebuilding the query, you can open a query to view it as a lens and validate results or add format changes, such as conditional formatting for emphasis.

    1. This change applies to CRM Analytics in Lightning Experience and Salesforce Classic. CRM Analytics is available in Developer Edition and for an extra cost in Enterprise, Performance, and Unlimited editions.
  5. Add Salesforce Payments to B2B Checkout: – Give your customers a smooth payment experience for B2B stores created with the LWR template. Use Salesforce Payments to provide credit card support for the template’s checkout component.
  6. Activate Segments for Google or Meta Advertising Platforms: – Activate audience segments securely in the Customer Data Platform to use in targeted Google and Meta advertising campaigns. Use out-of-the-box activation connectors to send audience lists to Google and Meta with just a few clicks.
  7. 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.
  8. Set Up Amazon DynamoDB External Data Sources with Fewer Clicks: – Use the new setup wizard to define an external data source for Amazon DynamoDB. The wizard walks you through connecting an Amazon DynamoDB data source and integrating the data in Salesforce. Use the guided interface to select the DynamoDB table to map and create an external object in Salesforce from a table with representative sample data.
  9. Take Action More Quickly in the Dynamic Activity Composer: – The dynamic activity composer gives reps activities at the click of a button and offers more choices than the tabbed activity composer.
    1. Users click the buttons to perform the action, or they can click the dropdown menus for more actions.
    2. The dropdown menus offer new features. In the Email dropdown, if a user has more than one email address, they can choose from up to three addresses to send the email. Users can also get to their email preferences quickly. And users can easily add email to their to do list.
  10. Return Characters in a String in Reverse Order: – Use the Reverse function when building formulas to return the characters of a source text string in reverse order.
  11. Open Support Cases with the Contact Support Form Component in LWR Sites: – Use the Contact Support Form in your LWR sites to let users efficiently create cases and easily contact support. The form’s preconfigured fields reduce your cost-to-serve by streamlining the collection of information about the user’s request. The form contains several custom fields you can configure to your company’s preferences.
    1. Previously, you could only use the Contact Support Form component for Aura sites.
  12. Require Granular Flow Permissions for Experience Cloud Guest Users Release Update): – In Winter’22, Salesforce discontinued the Run Flows permission for the Guest User and Experience Cloud External User profiles in new orgs. In Spring ’23, Salesforce removes Run Flows from the Guest User profile in all orgs. The change improves site security by requiring explicit guest user permissions to run Flows. To give your users the detailed access they need, use the more granular permission structure embedded in Flows. To avoid future access issues, update your sites to the new permission structure before the enforcement date. This update was first available in Summer’22 and is enforced in Spring’23.
  13. Get the Impact of In-Day Optimization With the Optimization Hub Dashboards: – In-day optimization requests continuously optimize your team’s schedule, for one or more service territories, during the day of service. When rapidly responding to last-minute schedule upsets, use the Optimization Hub dashboards to measure improvements in the organizational KPIs following the in-day optimization changes. For example, track improvements in response time to service appointments and in the mobile workers’ workload.
  14. Track Asset Performance with Asset Attributes: – Improve asset management and help your mobile workers efficiently repair and maintain assets by defining attributes that represent asset health and performance. Enable asset managers to shift to proactive, and ultimately predictive, service models that promote higher equipment uptime and compliance. Track and analyze multiple asset attributes by defining thresholds using recordset filter criteria. For example, define a threshold based on attribute values, such as engine temperature, engine pressure, engine oil level, engine air influx, and engine RPM. You can then check the engine for faults by monitoring these attributes. Customers who participated in the pilot and beta program must re-create attribute definitions, asset attributes, and recordset filter criteria monitors.
  15. Track File Downloads in Near Real-Time with FileEvent (Beta): – With FileEvent in Salesforce Real-Time Event Monitoring, you now get real-time notifications when a user downloads a file containing sensitive information. File Event supports transaction security policies.
  16. Set a Cache Duration for CMS Content Served in Salesforce CDN Channels: – You have the flexibility to define how long the Salesforce CDN for Digital Experiences stores CMS content served in a channel. This change can help you optimize content delivery.
    1. To configure the cache duration, open the channel settings, and then enter a value. Set the duration for as little as 1 hour and as many as 8,760 hours, which is 1 year. In a public channel or a site channel, use a long cache duration for images and documents that change infrequently, like your company logo. The default is 720 hours, which is 30 days. In a public channel, for other content types that change frequently and that you want to render soon after you publish, use a short duration. The default is 1 hour.
  17. Improve Contact Center Operations with Efficient Shift Scheduling: – Assign agents where and when they’re needed so that customers receive the best support possible from your teams. Shift scheduling includes tools so that your planners can match agents to work shifts effortlessly based on scheduling rules, constraints, and business objectives.
    1. After you set up Salesforce for Shift Scheduling, your planners define the criteria for scheduling decisions, such as Match Territory and Match Skills scheduling rules. Your planners then create shifts to represent the locations and types of work to be done. They can then use the scheduling tools to match agents to shifts.
    2. For example, if you need agents who speak Spanish to handle calls weekdays from 8:00 AM to 5:00 PM, your planners create shifts for those days and times. The shifts use a job profile that specifies Voice and Spanish skills. Your planner can then use the tools—mass shift update, batch assign, or get candidates—to find agents in the right location who have those skills.
  18. 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.
    1.  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.
    2. If a restriction rule blocks access to the record, a message appears to confirm that access is blocked.
  19. Receive Inbound Files with an Enhanced Bot: – Enhanced bots can now receive files from your customers, so you can reduce agent handle time by collecting files before an agent joins the conversation. For example, a bot can request documentation related to an insurance or a reimbursement claim. Or a bot can prompt a customer for additional information about a possible issue, such as a screenshot of an error message. An agent can then review the files, which are attached to the messaging session and stored in the Files page of Setup. 
    1. In the Bot Builder, on the Dialogs page, drag the File dialog step onto the canvas. In the Step Properties panel, in the File Interaction field, select Receive File. Then enter a message to the customer, specify a variable to save the file reference, and enter file upload success and optional failure messages.
  20. Salesforce for Outlook Is Retiring in June 2024: – Full product retirement for Salesforce for Outlook is scheduled for June 2024. For the latest integration with Microsoft Outlook, we recommend moving to our next-generation products, the Outlook integration and Einstein Activity Capture.
  21. Limit Increased
    1. Get more actionable reports and dashboards delivered to your inbox on schedule and with the latest data. Each user in an Unlimited Edition org can now subscribe to up to 15 reports and 15 dashboards. The previous limit was 7 reports and 7 dashboards.
    2. Limit the Maximum Number of Loaded Lightning Console Tabs in a Session.

Developer’s Point of View

  1. Manage and Release Changes with DevOps Center (Generally Available): – Salesforce DevOps Center provides an improved experience around change and release management that brings DevOps best practices to your development team, regardless of where team members fall on the low-code to pro-code spectrum. All developers and builders can work together to deliver value to customers in a repeatable and scalable way.
  2. Use Lightning Web Security Enablement for Orgs with No Custom Components: – Lightning Web Security (LWS) for Lightning web components (GA) and LWS for Aura (beta) is enabled by default for orgs that don’t contain custom Lightning web components or Aura components. This enablement continues the gradual rollout of the LWS architecture announced in Spring ’22. If your org has no custom components, this enablement has no impact unless you subsequently add Lightning web components or Aura components or install a managed package that contains Lightning web components or Aura components.
    1. Use the lockerServiceNext boolean in scratch org definition files to enable and disable LWS in your scratch orgs. For example, add these lines to the definition file to disable LWS in your scratch org.
      
      
      "settings": {
           "securitySettings": {
               "sessionSettings": {
                  "lockerServiceNext": false
                 }
            }
      }

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

    2. 
      
      export default class extends LightningElement {
        renderedCallback() {
          console.log(this.refs.myDiv);
        }
      }

  4. Use the Improved Conditional Directives: – The lwc:iflwc:elseif, and lwc:else conditional directives supersede the legacy if:true and if:else directives.
    1. With the lwc:iflwc:elseif, and lwc:else conditional directives, the property getters are accessed only one time per instance of the directive.
      
      
      <!-- conditionalExample.html -->
      <template>
          <template lwc:if={isTemplateOne}>
              This is template one.
          </template>
          <template lwc:else>
              This is template two.
      </template>

    2. Both lwc:elseif and lwc:else must be immediately preceded by a sibling lwc:if or lwc:elseif. Pass in an expression to lwc:if and lwc:elseif, but not to lwc:else. If expression1 returns a truthy, none of the other property getters are accessed.
      
      
      <!-- example.html -->
      <template>
          <template lwc:if={expression1}>
              Statement 1
          </template>
          <template lwc:elseif={expression2}>
              Statement 2
          </template>
          <template lwc:else>
              Statement 3
          </template>
      </template>

  5. View Debug Information for Your Wired Properties: – Access debug information for wired properties and methods on a component via custom formatters in Chrome DevTools.
    1. Consider a wired property that looks like this.
      
      
      import { LightningElement, wire } from 'lwc';
      import getContactList from '@salesforce/apex/ContactController.getContactList';
      
      export default class ApexWireMethodToProperty extends LightningElement {
          @wire(getContactList) contacts;
      }

    2. To start debugging your wire adapter:
      1. Enable debug mode in your org.
      2. Open Chrome DevTools, and then enable custom formatters.
      3. Find your code in the Sources panel.
      4. Next, inspect your component using this or inspect the rendered custom element. To inspect the rendered custom element, click the <c-apex-wire-method-to-property> element in the Elements panel of Chrome DevTools.
      5. After you click the element, open the Console panel and enter $0 to return the debug information.
  6. 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.
  7. Find Which Apex Classes Implement an Interface (Generally Available): –ApexTypeImplementor is now generally available and is updated since the beta release. Use the object to find Apex classes that directly or indirectly implement an interface. Using a SOQL query, you can get information about public or global Apex implementors.
    1. This example demonstrates how an interface allows flexibility in a configuration, record, or user-driven selection of the rounding strategy to apply. The multiple implementations of the interface can be discovered using ApexTypeImplementor and the specific implementation chosen based on user requirements.
      
      
      // Common interface that all rounding strategies will implement
      public interface RoundingStratergy {
          Decimal round(Decimal toRound);
      }
      
      public abstract class RoundingStrategies {
          public class Ceiling implements RoundingStratergy {
              public Decimal round(Decimal toRound) {
                  return toRound.round(System.RoundingMode.CEILING);
              }
          }
          
          public class HalfDown implements RoundingStratergy {
              public Decimal round(Decimal toRound) {
                  return toRound.round(System.RoundingMode.HALF_DOWN);
              }
          }
          
          public class TwoDecimalPlaces implements RoundingStratergy {
              public Decimal round(Decimal toRound) {
                  return toRound.setScale(2, System.RoundingMode.HALF_UP);
              }
          }
      }
      
      List<ApexTypeImplementor> interfaceImpls = [
                  SELECT ClassName, ClassNamespacePrefix
                  FROM ApexTypeImplementor 
                  WHERE InterfaceName = 'RoundingStratergy' and IsConcrete=true];
              
      // For example, an Admin could be presented with a list of Apex classes 
      // that could be applied. Simulated selection of 2 decimal places
      ApexTypeImplementor selectedRoundingStratergy = interfaceImpls[2];
      System.assertEquals('RoundingStrategies.TwoDecimalPlaces',
          selectedRoundingStratergy.ClassName);
              
      // Create an instance of the class that implements the interface
      RoundingStratergy rs = (RoundingStratergy)   Type.forName(selectedRoundingStratergy.ClassNamespacePrefix,
          selectedRoundingStratergy.ClassName).newInstance();
              
      Decimal rounded = rs.round(7.1459);
      System.assertEquals(7.15, rounded);

  8. Salesforce Flow Enhancements: – There are several enhancements in Salesforce Flow as follows:
    1. Bring External Data into Flow Builder Without Code (Beta): – Automate processes with external data by creating Flow Builder actions that call web-based service APIs using HTTP Callout. After you add the details of the API, Flow Builder generates a reusable action that you can use right away in Flow Builder and across Salesforce. Set up direct integrations as needed without code or a middleware service, such as Mulesoft. Read this article for more information.
    2. Build Screens with Interactive Components (Beta): – Configure supported components or your custom Lightning Web Components to react to changes in other components on the same screen. Previously, components on the same screen couldn’t talk to each other, so if you needed one component to influence another, you placed them on separate screens. Now you can build screens that feel like single-page applications and reduce the number of screens for your user.
      1. Opt into the Beta program from this setting in the Process Automation Settings page from Setup.
      2. By checking “Opt in to Reactive Screens Beta,” you agree that the Unified Pilot Research Agreement governs use of this Beta feature in this Org. View Agreements
      3. Add the needed components to your screen. Refer to Record Fields on Flow Screens for complete information on how to set up your components.
      4. Ensure that the output components have API names set.
      5. In the other component, set the appropriate input to an output from the component you set previously. Save and run the flow as usual. Notice that the input component reacts to changes from the output component.
    3. Add Lookup Fields to Your Flow Screens with Ease: – Easily add Lookup fields to flow screens and create a record directly from the Lookup field with Dynamic Forms for Flow. On the Records tab, hover over a Lookup field from your record resource, and then drag in your desired Lookup field. Read this article for step-by-step instructions.
    4. See Element Descriptions on the Flow Canvas: – Now you can easily see what each element is doing within a flow in Auto-Layout. Previously, to see the user-provided description, you opened the element.
    5. Select a Value from a List of Choices with the Choice Lookup Component (Beta):Prompt your users to search for and select an option from a set of choices on a flow screen. With the Choice Lookup (beta) flow screen component, your users can select from a list of external data values, picklist values, static values, or records that you filtered when you configured the flow. For example, rather than asking users to scroll through a long picklist to select a value, use the Choice Lookup (beta) component to enable users to search for values. The Choice Lookup (beta) component supports all choice resources, including collection choice sets and picklist choice sets. Read this article for step-by-step instructions.
    6. Use Flow Screen Components with Flow in Slack (Generally Available): – Screens in flows that run in Slack can contain the following flow screen components: Checkbox, CheckboxGroup, Currency, Date, Date & Time, Display Text, Long Text Area, Number, Picklist, Radio Button, and Text.
      1. In Flow Builder, build a screen flow that includes only screen components supported in Slack. When you save the flow, select the Make Available in Slack checkbox in the Advanced area of the Save the flow dialog box.
    7. Make Paused Flow Interviews Resume in the Same Context (Release Update): – With this update enabled, paused autolaunched flows resume in the same context as when they were paused. Also, for each flow that runs in API version 57.0 or later, user permission to run the flow is verified before an interview resumes. If your Process Builder processes launch flows that contain Pause elements, we recommend configuring those flows to run in API version 57.0 or later. Otherwise, this update can change the context of resumed interviews. Instead of resuming in system context without sharing, the process-launched flows resume in the context specified in the flow version properties. This update was first available in Winter ’21 and enforcement was scheduled for Winter’22. We then postponed the enforcement date to Spring’23 and postponed again to Winter’24.
    8. Use More Flow Elements: – The limit of 2000 flow elements was removed. Other limits still apply. In API version 56.0 and earlier, flows could have a maximum of 2000 flow elements.
  9. Flow Orchestrator: – There are several enhancements in Flow Orchestrator as follows:
    1. Use Advanced Settings for an Orchestration: – Exercise more control over the usage and execution of your orchestration with advanced settings. You can also turn your orchestration into a template and use it as a starting point for creating other orchestrations in Flow Builder.
      1. In Flow Builder, click Save As, and then click Show Advanced.
    2. Enable Sharing for Flow Orchestration Objects (Release Update): – After Enable Sharing for Flow Orchestration Objects is selected, the Manage Flow user permission no longer grants users access to Flow Orchestration objects. The Manage Orchestration Runs and Work Items user permission, along with sharing rules and role hierarchies, control user access to Flow Orchestration objects. Users who run orchestrations and execute work items must still have the Run Flows user permission.
    3. Create a Record-Triggered Orchestration on the Core Tab: – Want to create a record-triggered orchestration? Look no further than the Core tab in the New Flow window to get started.
  10. Use the System.enqueueJob Method to Specify a Delay in Scheduling Queueable Jobs – A new optional override adds queueable jobs to the asynchronous execution queue with a specified minimum delay (0–10 minutes). Using the System.enqueue(queueable, delay) method ignores any org-wide enqueue delay setting. The delay is ignored during Apex testing.
    1. Here are some cases where it can be beneficial to adjust the timing before the queueable job runs. 
      1. If the external system is rate-limited and can be overloaded by chained queueable jobs that are making rapid callouts.
      2. When polling for results, and executing too fast can cause wasted usage of the daily async Apex limits.
    2. This example adds a job for delayed asynchronous execution by passing in an instance of your class implementation of the Queueable interface for execution. There’s a minimum delay of 5 minutes before the job is executed.
      
      
      Integer delayInMinutes = 5;
      ID jobID = System.enqueueJob(new MyQueueableClass(), delayInMinutes);

  11. Dynamically Pass Bind Variables to a SOQL Query: – With the new Database.queryWithBindsDatabase.getQueryLocatorWithBinds, and Database.countQueryWithBinds methods, the bind variables in the query are resolved from a Map parameter directly with a key rather than from Apex code variables. As a result, it’s not necessary for the variables to be in scope when the query is executed.
    1. In this example, the SOQL query uses a bind variable for an Account name. Its value (Acme Corporation) is passed in using the acctBinds Map.
      
      
      Map<String, Object> acctBinds = new Map<String, Object>{'acctName' => 'Acme Corporation'};
      
      List<Account> accts = 
          Database.queryWithBinds('SELECT Id FROM Account WHERE Name = :acctName',
                                  acctBinds, 
                                  AccessLevel.USER_MODE);

  12. Discover the Source SObject of a DescribeFieldResult Instance: – Use the new getSObjectType() method to get the SObjectType of a Schema.DescribeFieldResult object. The returned type is that of the source sObject describe object that was originally retrieved, eliminating the need for additional mechanisms to determine parent relationships.
    1.  This example uses the getSObjectType() method to create a Salesforce object of the same type as the passed in field’s originating object and then dynamically populates the field’s value.
      
      
      public class ObjectCreator {
      
          public static sObject createAndSet(Schema.sObjectField field, object fieldValue) {
              Schema.DescribeFieldResult fieldDescribe = field.getDescribe();
              Schema.sObjectType sourceType = fieldDescribe.getSObjectType();  
              sObject newObj = sourceType.newSObject(null, true);
              newObj.put(field, fieldValue);
              return newObj;
          }
      }

    2. Here’s how to call the sample createAndSet() method.
      
      
      sObject o = ObjectCreator.createAndSet(Account.Industry, 'Development');
      Assert.isInstanceOfType(o, Account.class);
      Assert.areEqual('Development', ((Account)o).Industry);

  13. Restrict Anonymous Apex Access to Core Users: – By using the RestrictCommunityExecAnon preference, admins can restrict anonymous Apex execution to core users, such as Standard and CsnOnly users. The feature is enabled by default in new orgs but disabled in existing orgs to avoid disrupting customer usage. When enabled, noncore users can’t execute anonymous Apex regardless of any other user permissions that are set, such as Author Apex. Noncore users include these user types: PowerPartnerPartnerPowerCustomerSuccessGuest, and CSPLitePortal.
    1. From Setup, in the Quick Find box, enter Apex Settings, and then select Restrict non-core users from executing anonymous Apex.
  14. Choose Any Name for a Global Value Set: –When you create a custom global value set in API version 57.0 or later, the developer name is appended with the suffix __gvs. You can now create a global value set with any name that doesn’t conflict with a standard entity of the same name.
    1. This change is transparent except when you:
      1. Use a Metadata API CRUD-based call on the GlobalValueSet metadata type. When you make any CRUD-based call, such as createMetadata(), you must append the suffix __gvs to the fullName field.
      2. Use a CRUD-based call on the GlobalValueSet Tooling API type. When you make any CRUD-based call using SOAP API or REST API, you must append the suffix __gvs to the FullName field.
  15. Limit User Profile Access for Packages Installed via Metadata API: When you use Metadata API to install a managed package, you can specify which user profiles in the org can access the package. Use the new securityType field on the InstalledPackage metadata type, and select either all users or admins only. If a security type isn’t specified, the default behavior provides access to the package to all user profiles in the org.
  16. Monitor and Analyze System Performance with Scale Center (Beta)): – Scale Center provides self-serve and near real-time access to your Salesforce performance metrics, helping you build and scale apps with confidence. With Scale Center, you can monitor production health and performance metrics, identify scale hotspots and view detailed diagnostics during performance testing, resulting in high-performing apps on the Salesforce platform.
    1. You can enable Scale Center in sandboxes and in production on first-party infrastructure (1P) and Hyperforce.
    2. From Setup, in the Quick Find box, enter Scale Center, and then select Scale Center. To join the Scale Center beta release, contact your Program Architect and Account Executive.

Additional Enhancements Worth Noting!

  1. Query Delegated Group Access via Tooling API: – Run API queries on users granted delegated administrator roles to confirm access. With the available objects, you can run queries on members of a delegated group, permissions granted to the delegated group, and users who are members of the delegated group.
  2. Quickly Clone Partial and Full Sandboxes (Generally Available): – For Partial and Full sandboxes hosted on Hyperforce, the Quick Clone technology enhances the speed at which they’re replicated. Teams can focus more time on building and testing solutions, and less time waiting for sandboxes to be cloned.
    1. Salesforce admins don’t have to enable this feature. Quick Clone is the default for all sandboxes hosted on Hyperforce.
  3. Disable lwcRuntimeFlags to Improve Lightning Page Security: – Setting properties on lwcRuntimeFlags no longer affects Lightning Web Components. Previously, you could call the lwcRuntimeFlags API to enable or disable features of Lightning Web Components.
    1. For example, the change prevents these statements from enabling mixed shadow mode.
      
      
      lwcRuntimeFlags.ENABLE_MIXED_SHADOW_MODE = true // No effect, won’t enable mixed shadow mode
      window.lwcRuntimeFlags.ENABLE_MIXED_SHADOW_MODE = true // No effect, won’t enable mixed shadow mode

  4. Generate UTAM Page Objects from HTML Files: – The UTAM Generator command-line tool makes it easier for you to create page objects for UI testing. It generates UTAM JSON page objects from HTML files. An input HTML file can be a raw HTML file downloaded from a browser or the HTML source of a web component, such as a Lightning web component.
  5. Configure Code Completion for UTAM JSON Page Objects: – Most source code editors or IDEs support code completion (IntelliSense) for UTAM JSON page objects either automatically or through configuration by pointing at the schema file. Code completion helps you to quickly pick the appropriate properties available in a page object. The JSON schema for UTAM page objects is available at the Schema Store.
    1. The JSON schema for UTAM page objects is available at the Schema Store.
    2. To configure your IDE, such as Visual Studio Code, for code completion, see utam.dev.
  6. Specify an Org-Wide Default Delay in Scheduling Queueable Jobs – Admins can define a default delay (1–600 seconds) in scheduling queueable jobs that were scheduled without a delay parameter. Use the delay setting as a mechanism to slow default queueable job execution. If the setting is omitted, Apex uses the standard queueable timing with no added delay.
    1. From Setup, in the Quick Find box, enter Apex Settings, and then enter a value (1–600 seconds) for the Default minimum enqueue delay (in seconds) for queueable jobs that do not have a delay parameter. To enable this feature programmatically with Metadata API. 
    2. A minimum delay specified using the org preference doesn’t apply to jobs that are enqueued using the System.enqueue(queueable, delay) method.
  7. Run the SandboxPostCopy Script as Automated Process User:– Test the SandboxPostCopy script with the same user access permissions as used by post-copy tasks during sandbox creation. Using the same permissions enables the test to better simulate the class’s actual usage and uncover potential issues.
    1. Run the Test.testSandboxPostCopyScript(script, organizationId, sandboxId, sandboxName, RunAsAutoProcUser) the method as Automated Process User by setting the RunAsAutoProcUser parameter to true.
  8. lightning-barcode-scanner New Component: – This component embeds an icon that launches a barcode scanner when the user clicks it. You can configure this component to only scan certain barcode types, change the size of the camera view, customize the icon, and more.
  9. Disable Ref ID and Transition to New Email Threading Behavior (Release Update): – This update turns off Ref ID threading and transitions to Lightning threading in Email-to-Case. With the new Email-to-Case threading behavior, incoming emails aren’t matched using Ref IDs. Instead, they’re matched using a new secure token in the email subject or body. If no match is found, we also check metadata that’s contained in the email headers. This update replaces an update that was first made available in Winter’21 and has no scheduled enforcement date. 
  10. Publish Standard Events Without Using Allocations: – Publish standard events without worrying about reaching the hourly event publishing allocation. Typically, Salesforce publishes standard events and not users, but users can publish a small subset of standard events that support the create() call. Salesforce-published standard events continue to be exempt from the publishing allocation. 
    1. The event publishing allocation still applies to custom platform events.
    2. The affected standard events include:
      1. FlowOrchestrationEvent
      2. ProcessExceptionEvent

Salesforce Mobile App Enhancements

Legacy tablet experiences are now retired. Enjoy an improved contacts experience with Enhanced Contacts (beta). Learn about and enable all available mobile features in one place with the new feature panel in Setup. Automatically optimize reports for mobile devices with Enhanced Reports, now generally available. To prepare for the retirement of setting security policies with custom attributes, migrate your configurations to the Mobile Security Setup UI.

  1. Landscape Support for Phones (Beta) Is Now Available: – You can opt-in to a beta feature that allows you to use your phone in landscape orientation. It isn’t recommended for production use as there are numerous usability issues to address. Rotation continues to be supported on tablets.
    1. From Setup, enter Salesforce Mobile App in the Quick Find box, and then toggle Landscape Support on Phones (Beta) to on.
  2. Get Optimized Mobile Reports with Enhanced Reports (Generally Available):- Enhanced Reports automatically optimizes reports for consumption on mobile devices without reconfiguring the report formats. In this improved mobile experience, you get a responsive user interface with mobile-friendly features such as faster load times, more consistent performance, and text wrapping within tables for minimized scrolling.
    1. When you open a report, the report name appears (1), followed by a Summary Information ribbon (2) and the report header row and data (3).
  3. Go Mobile with Assigned Orchestration Work: – Users can now complete their assigned work in the Work Guide on the Salesforce mobile app. The Flow Orchestration Work Guide component in Lightning App Builder supports both the mobile web browser and the Salesforce mobile app. The Flow Orchestration Work Guide component in Experience Builder supports only the mobile web browser.
  4. Plan for the Retirement of Setting Security Policies via Custom Attributes: – In Winter ‘24 (October 2023), Salesforce will end support for setting and enforcing mobile app security policies via Connected App custom attributes.
    1. If you have set and enforced mobile security policies through Connected App custom attributes, Salesforce strongly encourages you to migrate the configurations to the Mobile Security Setup UI as soon as possible.
    2.  In Setup, search for Mobile Security and select Mobile Security.
  5. Reduce Setup Complexity with a New Feature Panel: – New features are now consolidated in a panel in Setup so that you can easily learn about and enable or disable capabilities within the Salesforce Mobile App for iOS and Android. Each feature details the behavior that is enabled and its current feature status.
    1. From Setup, in the Quick Find box, enter Salesforce Mobile App. Use the easily accessible toggles to turn features on or off.

Key Resources:

Check out the resources below to learn about some of the most exciting innovations before officially GA on February 10th!

Formative Assessment:

I want to hear from you!

What are your favorite Spring’23 release note gems? You can download release notes in HTML format!, for PDF files.

Feel free to share in the comments below.

Have feedback, suggestions for posts, or need more information about Salesforce online training offered by me? Say hello, and leave a message!

One thought on “Salesforce Spring’23 Release Quick Summary

  1. Would have loved to have seen some info on –
    Collect Valuable Customer Data with Hidden Pre-Chat Fields in Messaging for In-App and Web in Spring 23.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.