Salesforce Winter ’23 Release Top New Features.
1. Enhance More Object Record Pages With Dynamic Forms
You can make your account, including person account, contact, and opportunity record pages more robust by configuring them with Dynamic Forms.
Dynamic Forms benefits you three ways.
- An instant upgrade from page layouts: Place fields and sections wherever you want.
- Dynamic layouts: Use visibility rules to show and hide fields and sections.
- Simpler layout management:
- Manage the fields and sections on your pages in the Lightning App Builder without touching the page layout editor.
- Reduce the number of page layouts you need with component visibility rules.
- Take advantage of a single assignment model for the Lightning page instead of the dual model of assigning a Lightning page and a page layout.
In the Lightning App Builder, open an account, including person account, contact, or opportunity record page. Click the new Fields tab, and place fields anywhere on the page. Or automate the process by migrating your Record Detail component to use Dynamic Forms with the click of a button.
2. Do More with Dynamic Related List Filters
Now when you filter dynamic related lists in the Lightning App Builder, you can select multiple filter values for picklist fields. For example, on the Contact record page, filter a dynamic related list to show all cases with a priority of Medium or High. Previously, you could filter by only one picklist value.
3. Clean Up Inactive Picklist Values (Beta)
Manage your inactive picklist values and enforce limits on inactive values for custom picklists to improve system performance and overall health. You can now bulk delete inactive unused picklist values. Previously, custom picklists with many inactive values were difficult to maintain because you deleted inactive values one at a time.
Opt in to Bulk Delete Inactive Picklist Values (beta) from the Picklist Settings page. From the Inactive Values section of the picklist field, click Delete Unused Values. This feature is available only for custom picklists with predefined values.
4. Bulk Manage Picklist Values (Beta)
Save time managing your picklists. You can now delete, activate, deactivate, or replace multiple custom picklist field values at once. Previously, you modified them one at a time. This feature is available in production and in sandbox orgs.
Opt in to Advanced Picklist Values Management (beta) from the Picklist Settings page. Then navigate to the custom field definition page. The Values and Inactive Values sections show a checkbox next to each picklist value. You can select multiple values and use one of the new buttons: Delete Selected, Deactivate Selected, Replace Selected, or Activate Selected. This feature is available only for custom picklists with predefined values.
5. Set Field-Level Security for a Field on Permission Sets Instead of Profiles During Field Creation (Beta)
Now when you create a field on an object, you can follow best practices and set field-level security for a field on permission sets instead of profiles. And rather than manually granting access to a field in each permission set, you can set field-level security on permission sets during field creation. This feature is also available when you set field-level security on a field or change the field type on a field.
Enable Field-Level Security for Permission Sets During Field Creation (beta) in User Management Settings. Then create an object, set field-level security on a field, or change the field type on a field. When you can assign field-level security, a list of permission sets appears instead of profiles. The list includes permission sets that have Create, Read, Edit, or Delete access on the field’s object. If no permission sets have that access on the field’s object, the list contains all the permission sets. If you must assign field-level security to profiles, turn off Field-Level Security for Permission Sets During Field Creation (beta) in User Management Settings. View Field Accessibility isn’t currently updated by this feature.
6. Identify Which Sandboxes Get a Preview of the Next Salesforce Release
View which sandboxes get upgraded early (preview), and which sandboxes are scheduled to be upgraded with production orgs (non-preview) during major Salesforce releases. Preview sandboxes provide early access to new features, so you can test your configurations before the production upgrade. Preview sandboxes are upgraded approximately 6 weeks in advance of production orgs during every major release.
7. Quickly Clone Developer and Developer Pro Sandboxes
For Developer and Developer Pro sandboxes hosted on Hyperforce, the Quick Clone technology enhances the speed at which they are replicated. This feature allows admins to make copies of customized sandboxes for each of their developers. Teams can focus more time on building solutions, and developers can be more productive.
8. Develop from Anywhere Using Salesforce Code Builder (Beta)
Code Builder (beta) is a modern, web-based development environment that makes it easy for you to develop from anywhere without downloading software to your local device. With Code Builder, you can get a modern development environment that includes your favorite languages and frameworks, such as Apex, SOQL, and Lightning Web Components, all from within a browser.
Install the Code Builder (beta) managed package from AppExchange. Go to Code Builder documentation to learn about how you can try Code Builder.
9. Develop Event-Driven Apps with Pub/Sub API (Generally Available)
Publish and subscribe to platform events and change data capture events using Pub/Sub API, a secure, highly performant, and scalable API based on gRPC. Use one of the 11 supported programming languages, including Python, Java, Go, and Node. Get peace of mind with final publishing results instead of intermediate queueing results. And with subscription flow control, fine-tune the number of event messages that you receive based on your event processing speed.
gRPC requires defining a service, which specifies the methods that can be called remotely with their parameters and return types. The server implements this interface and runs a gRPC server to handle client calls. The client has a stub that mirrors the methods available on the server.
Pub/Sub API uses protocol buffers as the Interface Definition Language (IDL) and as the underlying message interchange format. The Pub/Sub API service is defined in a proto file, with RPC method parameters and return types specified as protocol buffer messages. Within those protocol buffer messages, the payload of the published and delivered events is encoded in binary Apache Avro.
This proto file example is based on the Pub/Sub API proto file, but we shortened it in this illustration. This proto file defines the service by listing the methods to publish, subscribe, get the schema, and get the topic information.
10. Cut and Paste Flow Elements
Change the order of flow elements in auto-layout faster by using cut and paste. Previously, to move an element on the canvas, you copied and pasted the element then deleted the original element, and then you updated the API name of the pasted element.
To cut an element, click the element and select Cut Element (1).
To paste the element that you cut, hover over where you want to paste, and then click (2).
Salesforce Winter ’23 Release Top New Features
11. See All Incoming Go To Connections in the Toolbox
Now you can easily find incoming go to connected elements because they’re listed in one place instead of spread out on the canvas.
Open the Toolbox (1) and click to show the details of an element with connections (2) or (3).
All incoming go to connections for that element are listed in the Toolbox (4). Click for an incoming go to connection (5), and then focus is moved to that element on the canvas (6).
12. Use Record-Triggered Flows to Update Related Records
Now you can use record-triggered flows to update any records related to the triggering record.
Use the Update Records element and select Update records related to the objectName
record that triggered the flow. Then, select the related records you want to update. You can also set filters to update only certain related records. If you don’t specify a filter, all related records are updated.
13. Use In and Not In Operators in Flows to Find Related Records
With the new In and Not In operators, a flow accesses a collection of primitive values to get related records without using the Loop element. The flow uses fewer SOQL queries and DML statements, and performs faster. The new operators support accessing collections of type Text, Number, Date, Date/Time, Currency, and Boolean. The operators are available in the Get Records, Update Records, and Delete Records elements.
To ensure your flows don’t exceed governor limits, use the In operator. For example, a flow gets all related contacts if their role equals Decision Maker and if their related accounts have a shipping state in California. With the new In operator, the flow executes the Get Records element only three times. That’s three SOQL queries no matter how many contacts the flow finds.
Because the In and Not In operators don’t support accessing values on record collections in this release, the flow assigns the account IDs to a text collection, caAccountIds. The Get Records element gets all related account contact roles if their account IDs are in caAccountIds and if their Role equals Decision Maker.
The Get Records element gets all related contacts if their contact IDs are in contactIDs. And you’re done.
Previously, the Loop element iterated over a collection of values to get related records. Each time the flow got a related record via the Loop element, the flow used one SOQL query. If the flow got over 100 records, the flow failed because it exceeded the governor limit of 100 SOQL queries per transaction. If you debugged the flow, the debug details showed over 100 executions of the Loop and Get Records elements.
Here’s some more examples of using the new operators:
- Get a list of related account contact roles if their account IDs aren’t in the caAccountIds example.
- Update a collection of contacts based on an opportunity’s roles when an opportunity is Closed – Won.
- Get a list of accounts in a list of countries to display in a data table.
- Get a list of records using the Record ID Collection output of the newly enhanced Lookup screen component.
- Get a list of products from a custom action that outputs a collection of IDs from an external system.
14. Launch Screen Flows With Lightning Web Components
Embed a screen flow from any Lightning Web Component with the new lightning-flow component. Developers can supercharge their flows by customizing finish behavior, setting custom styling, or launching flows from their Lightning Web Components. And they can offload complex input collection and branching logic to Flow, saving time and money.
This example shows an LWC component with the Survey_customers
flow API name.
<template>
<lightning-flow flow-api-name='Survey_customers'>
</lightning-flow>
</template>
15. Specify Time Offsets in Months for Scheduled Paths
For each scheduled path on record-triggered flows, new offset options let you schedule the path to run on the same calendar day of another month. Previously, after you selected a time source for a scheduled path, you could specify offsets only in days, hours, and minutes. Also, the Configure Scheduled Paths window features clarified content.
When you add or edit a scheduled path, select Months After or Months Before to run the scheduled path on the same calendar day of another month.
In this scheduled path, the time source is the flow-triggering event, and the schedule is offset to run the path 2 months after the contact is created or updated.
16. Get More Canvas Space with the Toolbox Hidden
Now you can decide when to show the Toolbox for resource and element management while in auto-layout. The Toolbox is hidden by default.
To make the Toolbox visible, click (1).
17. Enjoy More Room When Building Flow Screens
Get a larger flow screen editor that follows the Salesforce Lightning Design System (SLDS) standards. Now there’s more room to lay out components, such as when working with multiple columns.
Previously, the screen editor offered a medium canvas.
Now the screen editor offers a larger canvas.
18. Find Flow Elements Faster with Search
The Add Elements dialog box in the Flow Builder canvas now includes a search bar.
In the Add Element dialog box, search for the flow element to add by name. Don’t search by element type. For example, instead of searching for Action, search for a specific action type such as Send Email.
29. Select Multiple Records in the Lookup Flow Screen Component
Now you can search and then select more than one record with the Lookup flow screen component. You can specify a selection maximum and one or more default records.
Add the Lookup component to your screen flow and set the Maximum Selections field to a value greater than 1.
20. Select Multiple Records from a Table in a Flow Screen (Beta)
Leverage the new Data Table (beta) flow screen component to display a list of records on a flow screen. You can set the table to read only, or enable your users to select one or more records and use their selections later in the flow. And users can change the width of table columns and wrap or truncate overflowing text.
Add the Data Table (beta) component to your screen flow and configure the fields.