Last Updated on May 12, 2023 by Rakesh Gupta
Currently, the Summer’23 release is available under the pre-release program. On the 05th of May 2023, Sandboxes will be upgraded, and as a result, your organization will get the look and feel of the Summer’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), Data Cloud, Financial Services Cloud, Revenue Cloud, Salesforce CPQ, and APIs.
For example, some exciting features like Create Rich Search Results with Structured Data (Pilot), Check Voice Channel Performance with More Metrics (Pilot), Interrupt Long-Running Work to Handle Time-Sensitive Work (Pilot), Guide Your Mobile Workers at the Right Place and the Right Time (Pilot), Use DataWeave in Apex to Enable Data Transformation to Different Formats (Beta), and Enrich Predictions with Data from Related Objects (Beta) are coming to Salesforce.
Also, check out these beta and pilot features:
- Configure Searchable Objects for Each User Profile (Beta): – Help your team get results related to their work by configuring all your searchable standard and custom objects for each user profile. In Search Manager, you can now choose which objects to make searchable or not searchable for each user.
- This change applies to Lightning Experience in Professional, Enterprise, Performance, Unlimited, and Developer editions.
- Start a Dynamic Flow Directly from a Dashboard Widget (Beta): – Launch flows from your Analytics dashboard using flow interactions. For example, on a dashboard tracking cases, design a text widget that launches your custom case assignment flow with a single click. The flow interaction passes dynamic user ID values to the flow, so users don’t have to leave your dashboard to do their work. Flow interactions are available only for the text widget.
- 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.
- In the dashboard editor, select the widget. On the Interactions tab on the Widget Properties panel, add a Start a Flow action and select the flow.
- After adding the interaction, a user can click the text widget (1) and preview the dynamic values before starting the flow (2).
- Add to the Actions Bar in LWR Sites (Beta): – Help your LWR site users take more action on Salesforce records with increased action support in the Actions Bar component. Show a custom set of Salesforce actions on an object detail page and then customize the bar to match your branding. In this release, you can add the Edit standard action and Create a Record and Update a Record quick actions to the Actions Bar. Previously, only headless Lightning web component quick actions were supported.
- This change applies to LWR sites accessed through Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. You must have at least one active community license in your org to use this feature.
- The Actions Bar component is available by default for Account, Case, Contact, Lead, Opportunity, Product, and custom object detail pages. To see the component on other object detail pages, go to Show all components. Drag the Actions Bar component anywhere on an object detail page and add your actions to the bar.
and select
- Accelerate Sales Cycles with Einstein Bots for Sales (Beta): – Deliver personalized conversations and generate qualified leads with a customer-centric website bot. Einstein Bots for Sales transform the web-to-lead experience and help you build customer relationships at scale. The bots include dialogs and automation flows designed to streamline sales. For example, they can pitch your products’ value to customers after business hours, gather customer information, and schedule customer meetings. And you can personalize Einstein Bots for Sales to meet your business needs. Get a website bot up and running quickly with a guided onboarding experience.
- This change applies to Lightning Experience in Enterprise, Performance, and Unlimited editions.
- Build Bots Faster Using Einstein Bot Blocks (Beta): – Bot Blocks help you use and share great bot functions without building a whole bot, saving you time and effort. With this feature, now in beta, you can add a dialog group to multiple bots. Great examples of blocks include a payment processor, a conversational experience, and an integration with a specific flow.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Setup for Einstein Bots is available only in Lightning Experience.
- On the Bots Setup page, click the Bot Blocks tab. Click New Block to create a block. To create a block from a dialog group, click the dropdown next to the dialog group and select Export as Block.
- Resolve Cases Faster with Einstein Search Answers (Pilot): – Get extracted relevant text from a knowledge article to speed up case resolution. Interact with the answers, and copy the link or answer to your clipboard. Plus, you can easily view the answer source.
- This change applies to Lightning Experience in Essentials, Professional, Enterprise, Performance, and Unlimited editions. Lightning Knowledge and Einstein Search for Knowledge must also be enabled.
- Ask your Salesforce admin to turn on Einstein Search Answers from Knowledge Object. This feature activates 24 hours after it’s turned on. If you have feedback or issues, email tryeinsteinsearch@salesforce.com.
- Monitor Contact Center Health in the Omni Supervisor Wallboard (Pilot): – Show supervisors real-time metrics to help them identify and resolve issues quickly. In this continuing pilot, the wallboard includes more charts. On the Omni Supervisor tab, supervisors can select a queue of interest to filter the metrics shown.
- This change applies to Lightning Experience in Professional, Enterprise, Performance, Unlimited, and Developer editions.
- In Omni Supervisor, open the Wallboard tab and optionally select a queue. Wallboard charts show agent work statuses, handle times, average speed to answer time, average active work time, and after conversation work times for the last hour. Supervisors also see metrics about current work item status, maximum wait times, agent capacity statuses, and used and available capacity. The wallboard excludes work that’s routed using skills-based routing.
- Include Email Conversations When You Build Your Conversation Mining Reports (Pilot): – Now you can use email conversations to build reports with Einstein Conversation Mining. These reports help you better understand and identify common cases or customer issues. Previously, Einstein Conversation Mining looked only at your live chat transcripts.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Setup for Einstein Conversation Mining is available only in Lightning Experience.
- Go to Einstein Conversation Mining in Setup and turn on the email channel pilot. Then, when you create a report, select Email Messages for the channel.
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.
Salesforce treats touch-enabled laptops, including Microsoft Surface and Surface Pro devices, as laptops instead of tablets. You can’t access the Salesforce mobile app on these devices. Users are redirected to the full site experience that’s enabled for them—Lightning Experience or Salesforce Classic. Only standard keyboard and mouse inputs are supported on these types of devices.
Customers / Administrator’s Point of View
- Post Lightning Dashboards with CRM Analytics for Slack: – Share analytics with colleagues across your Slack workspaces and channels. Recipients can view dashboard details, share, subscribe, view a real-time snapshot of the dashboard, and quickly open the dashboard in Salesforce.
- This change applies to Lightning Experience in Group, Essentials, Professional, Enterprise, Performance, Unlimited, and Developer editions. The CRM Analytics for Slack app is available for use where approved by a workspace admin and installed in Slack.
- Users must have the Connect Salesforce with Slack permission in Salesforce, and they must connect their CRM Analytics for Slack app in their Slack workspace to their Salesforce account.
- In a Lightning dashboard, click the Post to Slack icon.
- Reduce Customer Wait Time with Waitlists: – Greeters (front desk reps) can capture the details of customers and check them in. Greeters assign each customer to a waitlist based on their reason for the visit, and then Salesforce Scheduler notifies the appropriate service resources.
- Focus Your View with More Dashboard Filters: – Save time and effort and reduce dashboard redundancy. No more cloning dashboards for different teams and business units. Refine and target your dashboard data with up to five filters on Lightning dashboards. The previous limit was three filters.
- This change applies to Lightning Experience in Unlimited Edition.
- Reuse the same dashboard for all your regional teams while preserving existing filters that are already set up for each team. Previously, if you filtered on Stage, Opportunity Owner, and Type, you couldn’t add a Region filter that would allow you to reuse the dashboard for all your teams. Now you can include the Region filter and even have room for a Created Date filter as well.
- Enhance Your Visualizations with Images, Rich Text, and Dashboard Widgets: – Explain Lightning dashboard charts, describe metrics and KPIs, and clarify tables with rich text right where users need it. Add company logos and branding, flow diagrams, and embedded images. Guide users through their data with section titles, narrative text, and even animated GIFs. Components are now called widgets in Unlimited Edition. Dashboards now support up to 25 widgets, including a maximum of 20 charts and tables, 2 images, and 25 rich text widgets. The previous limit was 20 in total.
- View Table Totals and Subtotals in Direct Data: – To quickly summarize large amounts of data from Snowflake or Data Cloud, add totals to crucial data columns, such as sales amounts, in a lens or dashboard table. For a comparative analysis on data segments, such as sales by region, group the data in the table and add subtotals. The summary options available depend on the table type. You can include column totals in values tables and totals and subtotals in compare tables. In pivot tables, you can include row and column totals as well as subtotals.
- Salesforce Payments (Generally Available): – Salesforce Payments is now generally available on the Salesforce platform, compatible with B2B Commerce, D2C Commerce, and Salesforce Order Management. You no longer have to use the Salesforce Payments managed package, except for limited use cases, such as B2C Commerce customers who accept PayPal payments and want to issue refunds with Order Management. Read this post for more details.
- Make Component Widgets Dynamic with Parameters: – Use parameters to make a component’s widgets and query properties respond to user input or query interactions. With parameters, you can customize a component’s content, such as a chart or metric, without recreating it for each use case. Previously, component widgets couldn’t be changed and you had to recreate them each time you wanted them to contain something different. For example, when you add the same component to multiple dashboards it can now change dynamically and integrate with the content of the dashboard.
- 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.
- For example, if you want to enable interactions between a component and a dashboard filter, edit a component or create one. In the Advanced Editor, click Create Parameter (1). Add a parameter label (2), optional description (3), and a default value (4).
- After the parameter is created, it can then be used in an interaction(binding) to enable the dashboard filter to update the component.
- Set Field-Level Security for a Field on Permission Sets Instead of Profiles (Generally Available): – When you create a field, set its field-level security on permission sets instead of profiles. Or, modify the field-level security for an existing field for all permission sets in Object Manager. This change makes it easier to follow the user access control best practice of using permission sets to manage your users’ permissions rather than profiles. This feature, now generally available, includes an enhancement so that you can see each permission set’s object permissions for the field’s object without leaving the page.
- From Setup, in the Quick Find box, enter User Management Settings, and then select User Management Settings. Enable Field-Level Security for Permission Sets During Field Creation. Now, when you create a field, set field-level security on an existing field, or change a custom field’s type, you assign field-level security for permission sets instead of profiles.
- Give Your Mobile Users the Dynamic Forms Experience (Beta): – With Dynamic Forms, you can add and remove fields individually from a Lightning record page, break up record details into multiple sections, and set conditional visibility rules for fields and field sections, all in Lightning App Builder. Previously, Dynamic Forms was available only on desktop. Now, with Dynamic Forms on Mobile (beta), your mobile users can have the same customized experience that your desktop users have.
- From Salesforce Mobile App Setup, enable Dynamic Forms on Mobile (Beta).
- If you add dynamic forms to a Lightning record page and that page includes a Record Detail – Mobile component, your users see only the Record Detail – Mobile component from their mobile device, even after you enable Dynamic Forms on Mobile Beta. So that your users can view Dynamic Forms on Mobile content on pages that you upgrade to Dynamic Forms, remove the Record Detail – Mobile component from the page. New tips in Lightning App Builder remind you to opt in to the beta feature and to remove your Record Detail – Mobile components.
- After you enable Dynamic Forms on Mobile (beta), Lightning record pages that you upgrade to Dynamic Forms don’t display the Record Detail -Mobile component in Lightning App Builder. Your users see Dynamic Forms on their mobile devices without configuration.
- From Salesforce Mobile App Setup, enable Dynamic Forms on Mobile (Beta).
- Clone Lightning Apps: – To quickly create a custom Lightning app based on an existing custom app, use the Clone action in the App Manager. As you progress through the Clone application wizard, you can configure the app details, app options, utility bar and more. You can also use the Quick Save option at any step and skip the rest to copy the configuration as is. This feature is available only for custom Lightning apps. It isn’t available for standard, connected, managed, community, or classic apps.
- Boost Productivity with Mass Quick Actions on Related Lists (Beta):– Save your users time by decluttering the actions in the highlights panel and adding quick actions directly on related lists. Your users can create related records for items in the list without leaving the page. Or they can select up to 100 records in the related list and perform mass updates instead of single record updates.
- You can add quick actions on a related list in one of two ways. Only Create a Record and Update a Record quick actions are supported in this release.
- To add quick actions from the Lightning App Builder, add or select the Dynamic Related List – Single component on the record page, and then, in the properties pane, click Add Action.
- To add quick actions using the page layout editor, from the object management settings for the parent object, open the page layout. Double-click to open the related list properties, and then expand the Buttons section and select the quick actions that you want to add. If you don’t see the actions on the related list, from the Lightning App Builder, set the related list type to Enhanced List.
- Now the related list includes the quick action that you added (1) and users can apply the action to the records that they select (2).
- You can add quick actions on a related list in one of two ways. Only Create a Record and Update a Record quick actions are supported in this release.
- Personalize the Size and Placement of the Guidance Center Panel: – Remove barriers to productivity in your flow of work by personalizing how the Guidance Center appears on your screen. Previously, the Guidance Center panel overlapped part of the Lightning Experience page, and you had to close and reopen the Guidance Center when switching between working and learning. Now, you can pin the Guidance Center so that it appears side by side with the Lightning Experience page with no overlap. You can also toggle the width of the Guidance Center for videos and Trailhead units, depending on your preference for viewing those content types.
- To pin the Guidance Center, click the pin icon
in the Guidance Center header. To exit the side-by-side view so that the Guidance Center panel overlaps with the Lightning Experience page again, click the pin icon again. A user’s pin selection is remembered for the device and browser that they’re using.
- For videos and Trailhead units, the Guidance Center panel automatically expands to a larger width. To resize the Guidance Center after it expands, toggle the arrow icon.
- To pin the Guidance Center, click the pin icon
- Organize Your LWR Site Pages with Tabs: – Use the new Tabs component to add up to five horizontal or vertical tabs to your LWR site pages. Drop any content component into a tab region to show the content that you want. Use a data bound component to show products in one tab, another tab for a button to contact support, and a third that lists your product’s most amazing features.
- Show All the Availability Information on the Gantt: – Show dispatchers detailed information for available resource hours on the Gantt when in the 3 Days, Weekly, and 2 Weeks date resolutions by scrolling horizontally. Previously, only a limited amount of information could be displayed.
- Build In Lead Time on Usage-Based Work Orders: – Factor lead time into anticipated usage-based preventive maintenance to complete work orders more efficiently. With lead time, you can accommodate prerequisite tasks, such as notifying customers early, gaining site access, or coordinating the necessary resources.
- Monitor the Source of Prospect Changes: -Find out which features are creating or updating prospect records in your business unit with the Prospect Change Monitor. Use the monitor to help you adjust your API integrations and automations that could be eating up processing power in your business unit. Access the Prospect Change Monitor from the Optimizer page in Account Engagement.
- Manage Cadence Step Timing More Precisely: – New fields on email, call, LinkedIn, custom, and listener steps let cadence builders control when the step starts and when it becomes overdue. These fields help simplify managers’ cadences and replace wait steps. By eliminating the need for wait steps, the new fields simplify cadence structure, reduce the number of steps, and make cadence authoring faster.
- This change applies to Lightning Experience in Enterprise, Performance, and Unlimited editions with Sales Cloud.
- The new Start This Step, Start Time, and Due Date fields let cadence creators specify:
- How much time passes between the previous step and the current step
- The time of day the step starts
- When the step is due to be completed
- Whether the step due date is locked. When not locked, the due date can be updated when the target reaches the step.
- To pause or change the timing of a step in the Sales Engagement component, users can select Adjust Cadence Timing. Then they can change when the step is due or pause the step indefinitely.
- Let Users Control When Cadence Tasks Are Assigned to Them: – Sales Engagement users can now choose when cadence tasks are assigned to them and appear in the To Do List and Work Queue. By setting their Cadence Assignment Availability in their profile, users have more control over their work and prevent cadence tasks from becoming overdue during times when they don’t plan to work on cadences. Cadence step tasks for targets they own are only added during those hours.
- Empower Sales Reps with the Revenue Intelligence Command Center: – Get all the details you need for sales success from the Sales Rep Command Center. You can see whether you’re aligned to meet your quotas, which opportunities are stuck, and overdue activities. You can also see step progression, and amount changes.
- This change applies to Revenue Intelligence in Sales Cloud in Lightning Experience in Enterprise and Unlimited editions for an additional cost.
- To use Revenue Intelligence, you must have a Revenue Intelligence Admin permission set. To access the Revenue Intelligence app, users must have a Revenue Intelligence User permission set.
- In the Sales Rep Command Center, you can immediately see if you’re on track (1). You can view stuck opportunities (2), overdue activities (3), step progression (4), and amount changes (5).
- Assess the Health of Your Sales Forecasts with Built-In Charts: – Sales managers can use built-in charts to visualize the state of their forecasts and better assist their sales reps in meeting their sales targets. With forecast charts, see the changes to the current period’s forecasts and measure how this period’s forecasts compares to past periods, without having to manually crunch the numbers.
- This change applies to Lightning Experience in Enterprise and Unlimited editions with the Sales Cloud.
- Ensure that Historical Trending is on for Forecasting Item. To get the most out of the charts, set the maximum retention period available. Then, for any forecast type, sales leaders click Charts on the forecasts page.
- In the Forecasts Changes chart, review how the current forecast has changed week to week by forecast category.
- In the Historical Trends chart, evaluate how forecasts for the current period compare to the same time in past periods. Understanding trends across periods can help to identify areas where sales reps or managers need assistance and mentoring and where they excel.
- Add Custom Columns That Include External Data: – Make forecast decisions using all the data that matters to your business by adding your own external data to a column on the forecasts page. For example, add a column that shows data imported from an external source, such as Stretch Quota or Internal Booking Target. Having all the information used to project sales in one place helps provide more accurate forecasts without requiring you to navigate to other applications.
- This change applies to Lightning Experience and all versions of the mobile app in Enterprise, Performance, and Unlimited editions with the Sales Cloud.
- Add a custom number or currency field to the Forecasting Custom Data object to store the data. Then, users with access to import data and who have the Manage Forecast Custom Data permission can import data to each forecast type using Data Loader or through the API. The data you import can be unique to each forecast type. The custom values don’t roll up into forecast numbers and aren’t available for adjustment.
- After the data is available, add a custom column to the forecast type that references the custom field in the Forecasting Custom Data object.
- Add the new column to the forecast type to see it on the forecasts page.
- Nail Your Meetings with Salesforce Meeting Digest: – Meeting digest is now available for all users automatically. And, it’s the default tab in Event record details for users with Einstein Activity Capture. Enable an activity sync solution, such as Einstein Activity Capture, to get the most out of Meeting Digest, including RSVPs, insights, and recommended actions.
- Manage CMS Content from the Improved Content Detail Page: – Content authors and managers can see a summarized view of content from the new detail page in enhanced CMS Workspaces. If a content item has multiple variants, you can switch between variants from the menu on the left. View content details, version history, and see where the content is published or referenced. Edit, publish, or unpublish, and run content workflows for your content.
- Navigate Your Enhanced CMS Content with Search Improvements: – Discover all your translated content with every search. Searches in enhanced CMS workspaces now match against all text fields in translation variants, including alt text, body, and title. Previously, searches matched against all text fields for primary content, but only title fields for translation variants. And when you create a news content item and browse for an image to include, you use the same smart search functions available to explore your full enhanced content library.
- Schedule Appointments with an Enhanced Bot: – Enhanced bots now support the time selector messaging component, so your customers can schedule appointments or deliveries within a bot conversation. The component presents customers with a selectable list of time slots and saves their responses.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Setup for Einstein Bots is available only in Lightning Experience.
- To use a time selector component with an enhanced bot, in the Bot Builder, add a dialog step to reference the Apex class or flow that provides available time slots and any other input parameters. Then add the Time Selector dialog step to reference the associated time selector messaging component, and configure inputs, outputs, and error handling.
- Ask Questions with Dynamic Options with an Enhanced Bot: – Enhanced bots now support the question messaging component with dynamic options, so the bot can identify records specific to the customer and modify them or pass them along to an agent. Create a question with options that are filled dynamically from the object and fields you specify. For example, ask customers to choose from a list of their recent orders or cases. Then present options to your customer in rich messaging formats that can include custom text, images, and buttons. For a plain text experience, you can still use the Dynamic Question dialog step with enhanced and standard bots.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Setup for Einstein Bots is available only in Lightning Experience.
- To use a question with dynamic options with an enhanced bot, in the Bot Builder, add a dialog step to reference the Apex class or flow that dynamically provides choices and any other input parameters. Then add the Question (Dynamic) dialog step to reference the associated question with dynamic components, and configure inputs, outputs, and error handling.
- Open Your Service Catalog to Customers and Partners: – Create a Service Catalog site that provides your customer and partners a self-service portal for the seamless browsing and requesting of items from your Service Catalog. Build, style, and launch your site effortlessly with point-and-click Aura components built for Service Catalog and with prebuilt Aura site templates from Experience Cloud.
- This change applies to Lightning Experience in Enterprise and Unlimited editions with Service Cloud.
- You must have a Customer Community, Customer Community Plus, Partner Community, External Apps, or Channel Community license to use this feature.
- The Service Catalog site uses several custom, no-code Aura components that provide you with an easy setup experience to quickly open your Service Catalog to your customers and partners. Just drag the components onto the customizable site pages from Experience Cloud, and then style each component to match your branding preferences.
- Here’s an example of a Service Catalog site that uses the custom Aura components.
- Map External Credential Principals to Permission Sets and Profiles: – Assign external credential principals to users using permission set groups and profiles so that they can make callouts to remote systems with appropriate access. Previously, you had to assign users directly to a specific permission set or profile. Now you can assign permissions via permission set groups as well.
Additional Enhancements Worth Noting!
- See Tenant IDs in the Your Account App: – Now you can see the ID of your Salesforce org, Tableau deployment, Mulesoft org, Commerce Cloud tenant, and your Marketing Cloud MID (Member ID) in the contracts area of the Your Account app. When you purchase a product, it’s assigned and provisioned to a specific tenant. Seeing tenant IDs in your contracts list helps you monitor license usage by tenant.
- Undo Field Changes with a Click: –When you type in an input field on a Lightning Web Components record page, an undo button appears and the background color changes until you save. Clicking the undo button removes your unsaved changes. This functionality doesn’t occur in Dynamic Forms—enabled pages. Previously, to use the undo button, you clicked a field, entered content, and then clicked outside the field.
- News, Automated Account Fields, and Account Logos Are Being Retired: – The News, automated account fields, and automated account logo features are being retired in all Salesforce orgs in Winter ’24 on October 13, 2023. After these account features are retired, Salesforce doesn’t prompt users with suggestions for account names and doesn’t fill out fields or add company logos automatically. The News component is removed from page layouts.
- Allow Delegated Admins to Manage Permission Set Group Assignments: – Delegated administrators can now manage the assignment of permission set groups for users in their delegated group, giving you more time for other admin tasks.
- From Delegated Administration in Setup, create or select a delegated group. Then in Assignable Permission Set Groups, select the permission set groups that delegated admins can assign to users or remove. Delegated administrators can manage assignments for the permission set groups in their delegated group, but they can’t modify those permission set groups.
- Align Fields Horizontally in Field Sections: – Control field alignment across columns by using a new property on Dynamic Forms Field Section components. The Align fields horizontally property prevents fields in multicolumn Field Sections from collapsing upward when there’s a gap due to differences in field heights. Fields remain horizontally aligned with their neighbors in the same row. But even with this property selected, if a field is hidden because of visibility rules, the fields in its column still collapse upward to fill the empty space.
- To see the new property, click a Field Section component on a Dynamic Forms-enabled page in Lightning App Builder.
- For example, these two versions of the same field section contain account fields. The left image shows the behavior without the new property selected. On the right, the horizontal alignment setting was selected, causing the Website field to stay aligned horizontally with Account Name instead of collapsing upward.
- To see the new property, click a Field Section component on a Dynamic Forms-enabled page in Lightning App Builder.
- Optimize Your App Pages with the Accordion and Tabs Components: – Make your Lightning pages more organized and effective with the Accordion and Tabs components, now supported on app pages. The Accordion and Tabs components are container components that you can drop other components into to better organize your pages and improve page performance. Open an app page in the Lightning App Builder, and drag an Accordion or Tabs component onto the canvas. Put other components inside the accordion or tab sections. You can customize the labels of each tab and accordion section to whatever you want.
- Declaratively Edit External Services Created by HTTP Callout: – With the general availability of Flow Builder HTTP Callout in Summer ’23, you can now declaratively edit external services that were originally created by HTTP Callout. Editing an external service is similar to the existing Modify behavior, except that you can change only the description and named credentials. To edit an operation, go to the external service’s Details page and select Edit HTTP Action.
- The CASESAFEID Function Has Changed: – The CASESAFEID function now converts only valid Salesforce 15-character IDs to case insensitive 18-character IDs. If you pass in an invalid ID, the function returns the ID passed in. Previously, in Salesforce Classic, the function converted only valid Salesforce 15-character IDs. In Lightning Experience, the function converted any 15-character ID whether or not it was valid. The CASESAFEID function now behaves the same way in Lightning Experience and Salesforce Classic.
- For example, if you pass in an invalid ID of
A01xx000003DHur
, the function returns the IDA01xx000003DHur
. This ID isn’t valid because it begins with a capital letter. If you pass in a valid ID of001xx000003DHur
, the function returns something like001xx000003DHurAAG
.
- For example, if you pass in an invalid ID of
- Quickly Create Full Sandboxes (Generally Available): – The Quick Create technology enhances the speed at which Full sandboxes are created or refreshed. Teams can focus more time on developing and testing solutions, and less time waiting for sandboxes to be built.
- Enable Faster Account Sharing Recalculation by Not Storing Case and Contact Implicit Child Shares (Release Update): –To improve performance, Salesforce is changing the way that automatic account sharing recalculation works behind the scenes for the Case and Contact objects. We no longer store implicit child share records between accounts and their child case and contact records. Instead, the system determines whether users can access child case and contact records when they try to access them. This release update is available starting in Summer ’23.
- View Knowledge Articles in LWR Sites with the Knowledge Article Component: – With the new Knowledge Article component, site visitors can view knowledge articles from their LWR sites. Previously, the Knowledge Article component was available only in Aura sites.
- Manage Follow-Up Appointments from the Field: – Set up the Follow-Up Appointment Lightning web component (LWC) to let your mobile workers create and schedule follow-up appointments for customers directly from the mobile app, without contacting customer services.
- Trigger an External Action After a Prospect Engagement: – Now you can trigger an external action on any Account Engagement asset that has a completion action. For example, after a prospect completes a sign-up form, you can register the prospect for a webinar. You can send a text message after a prospect clicks a custom redirect link or send an alert to your sales team when a prospect visits a pricing page.
- This change applies to Account Engagement Growth, Plus, Advanced, and Premium editions.
- Convert Unused Dynamic Lists to Static Lists: – Save processing power in your business unit by converting your old or unused dynamic lists to static lists. After you convert a dynamic list, you must manually add and remove prospects because the list no longer updates based on rule criteria. Select inactive or unused dynamic lists and use the table action dropdown menu to convert them to static. You can also convert individual lists from the record home.
- This change applies to all Account Engagement editions.
- Copy Assets Between Account Engagement Business Units More Easily: – Share marketing assets, such as email templates, files, Engagement Studio programs, and custom redirects, across business units without manually recreating them. Work with your developer and use Account Engagement API V5 to query, read, and create assets as needed.
- This change applies to Account Engagement Growth, Plus, Advanced, and Premium editions.
- Control Who Can Use Organization-Wide Email Addresses: – We heard you. You want greater control over who can use organization-wide email addresses in the From field on outgoing emails. Now you can use permission sets to limit who can use each organization-wide email address. As before, you can also use profiles or make each organization-wide email address available to all users.
- To add permission sets to an organization-wide email address, go to the Organization-Wide Addresses page in Setup.
- Find Flow User Permissions More Easily: – Flow user permissions are now all consolidated under a new Flow and Flow Orchestration section in App Permissions. Previously, they were dispersed throughout System Permissions.
- Use Salesforce MFA for SSO Logins: – Now there’s a new and better way to use the Salesforce multi-factor authentication (MFA) service for SSO logins. After you enable MFA for your users, you can easily extend it to SSO by selecting a setting on your SSO configuration page. You control which SSO configurations use a third-party MFA service and which use Salesforce MFA. And unlike the previous method for applying Salesforce MFA to SSO logins, this method is fully compatible with Visualforce pages.
- Track Consent Objects with Field Audit Trail: – Stay compliant with data privacy laws like the General Data Protection Regulation (GDPR), and maintain a record of your users’ consent changes in Field Audit Trail.
- This change is available to customers who purchased Privacy Center and either Field Audit Trail or Salesforce Shield add-on subscriptions.
- Track and retain changes made to these consent management objects.
- Authorization Form Consent
- Communication Subscription Consent
- Contact Point Consent
- Contact Point Type Consent
- Party Consent
- Track File Usage in Near Real-Time with FileEvent (Generally Available): – Files are a treasure trove of sensitive and important information. Use FileEvent and FileEventStore, now generally available, to track file previews, uploads, and downloads from the UI and API. And because file events support transaction security policies, you can take steps to proactively control how users interact with specific files.
- This change is available to customers who purchased Salesforce Shield or Salesforce Event Monitoring add-on subscriptions.
- Track Insecure Login Flows:- With Real-Time Event Monitoring, you can now monitor for insecure flows that can expose user credentials to security risks. Use LoginEvent and LoginEventStream to track OAuth user-agent and username-password flows.
- This change is available to customers who purchased Salesforce Shield or Salesforce Event Monitoring add-on subscriptions.
- Schedule a Knowledge Article to Publish at a Specific Time:- Knowledge article authors and knowledge managers can publish articles in 15-minute intervals to better address the targeted nature of certain types of communications. For example, if you release a new update to your app, you can select a publishing time so that the knowledge article announcing the update gets published as close as possible to the time that the update goes live. Previously, you could schedule article publication only on a certain date.
- Send Voice Messages in Enhanced Messaging Channels:- Voice is the new text, so make sure your agents don’t miss out. Agents can now easily record and send voice messages up to one minute long to customers in enhanced WhatsApp and enhanced Facebook Messenger channels. Previously, agents had to use a separate app to record messages and then send the audio files as attachments.
- This change applies to enhanced WhatsApp and enhanced Facebook Messenger channels. View required editions.
- To record a message during an enhanced messaging session, make sure your web browser has access to your microphone. Then, click the microphone icon in the message field (1) and start talking. Click the stop icon (2) when you’re done. Optionally, play back your message (3) or delete it (4). When you’re ready, send it to the customer (5).
- After a voice message is sent, the customer can access it for 30 days. Voice messages are included in the conversation transcript just like any other message.
Developer’s Point of View
- Access Labels in Apex Dynamically: – Use the
System.Label.get(namespace, label,language)
method to get a custom label, optionally specifying a language. The feature now allows dynamic resolution of label names at run time, including overriding the user’s current language if a translation exists for the requested language. Previously, retrieving labels required compile-time knowledge of the label API name.- From Setup, create custom label strings and then assign translated values by turning on Translation Workbench and adding translation mapping.
- Retrieve the label for a default language setting or for a language and namespace by using
System.Label.get(namespace, label, language)
. You can also check if translation exists for a label and language in a namespace by usingLabel.translationExists(namespace, label,language)
. You can’t access labels that are protected in a different namespace.
- Use the Iterable Interface with Set Type: – The Set class now implements the Iterable interface, so you can directly iterate over sets. Both sets and lists are iterable, allowing for more code reuse.
- This example uses the
String.join
method with a Set, which was previously unsupported because Set didn’t implement Iterable.Set<String> letters = new Set<String>{'a','b','c','d'}; System.debug(String.join(letters, '...'));
- This example uses the
- Query Five Levels of Parent-to-Child Relationships in SOQL Queries: – SOQL now supports relationship queries that traverse up to five levels of parent-child records. Use a single SOQL query to get parent-child records from five different levels. This ability is limited to SOQL queries via the REST and SOAP query calls on standards and custom objects.
- In API version 58.0 and later, SOQL relationship queries can contain a parent root as the first level of the query and child relationships up to four levels deep from the parent root.
- This example SOQL relationship query returns records from the parent object Account and its child objects Contacts, Assets, WorkOrders, and WorkOrderLineItems.
SELECT Name, (SELECT LastName, (SELECT AssetLevel, (SELECT Description, (SELECT LineItemNumber FROM WorkOrderLineItems) FROM WorkOrders) FROM Assets) FROM Contacts) FROM Account
- Attribute Names Support More Patterns: – Attribute name restrictions are loosened to support more use cases. Previously, issues could arise when attribute names were used with a less restrictive syntax environment, such as with a Java-based compiler. Additionally, only a subset of all the possible public properties could be addressed declaratively via the template. Some patterns like
$myattribute
and_myattribute
are valid public properties that couldn’t set set via an LWC template.- This change applies to custom Lightning web components in Lightning Experience, Experience Builder sites, and all versions of the Salesforce mobile app. This change also applies to Lightning web components in Open Source.
- Attribute names can now start with:
- An underscore (_)
- A dollar sign ($)
- Additionally, attribute names can include duplicate underscores (__) and an underscore followed by a hyphen(_-). Also, a hyphen followed by an underscore (-_) is allowed if the hyphen isn’t the first character in the attribute name. For example, these attribute names are valid.
- _myattribute
- $myattribute
- my_-attribute
- Assign CSS Stylesheets to a Component: – Now you can extend stylesheets from a superclass component to a subclass component using super.stylesheets. The new stylesheets static property on the LightningElement constructor loads styles from CSS stylesheets into light DOM and shadow DOM components. Previously, CSS custom properties and CSS ::part() were the only standard mechanisms for customizing components. Also, you couldn’t directly reference stylesheets from an extended base class.
- This change applies to custom Lightning web components in Lightning Experience, Experience Builder sites, and all versions of the Salesforce mobile app. This change also applies to Lightning web components in Open Source.
- The stylesheets property accepts a static array of stylesheets, and its default value is an empty array. Stylesheets are injected into a component in the order that they’re listed in the stylesheets array.
- Create Scoped Slots in Light DOM: – Scoped slots are now supported in light DOM Lightning web components. Use scoped slots to access data from a child component and then render it in slotted content inside of a parent component. Because the slotted content belongs to the parent component, any styles on the parent also apply to the content of the scoped slot.
- This change applies to custom Lightning web components in Lightning Experience, Experience Builder sites, and all versions of the Salesforce mobile app. This change also applies to Lightning web components in Open Source.
- The child component must use light DOM. Scoped slots in shadow DOM aren’t supported. The parent component can be a light DOM or shadow DOM component.
- To introduce scoped slots into your components, add the directives
lwc:slot-data
andlwc:slot-bind
to the parent and child components, respectively. See Lightning Web Components Developer Guide: HTML Template Directives for guidance about how to use these directives.<!-- c/parent.html --> <template> <!-- Parent component doesn’t need to be light DOM --> <c-child> <template lwc:slot-data="item"> <span>{item.id} - {item.name}</span> </template> </c-child> </template> <!-- c/child.html --> <template lwc:render-mode="light"> <!-- Child must be light DOM --> <ul> <template for:each={item} for:item="item"> <li key={item.id}> <slot lwc:slot-bind={item}</slot> </li> </template> </ul> </template>
- Set Dynamic Values for the Slot Attribute in Lightning Web Components: – Now you can dynamically specify a value for the
slot
attribute of an HTML element. Previously, this value could only be a static string.
- This change applies to custom Lightning web components in Lightning Experience, Experience Builder sites, and all versions of the Salesforce mobile app. This change also applies to Lightning web components in Open Source.
- In this example, the <span> element has a slot attribute set to the variable dynamicName.
<template> <c-item> <span slot={dynamicName}></span> </c-item> </template>
- This change applies only to the slot attribute of HTML elements. It doesn’t impact attributes of <slot> elements. For example, you still must pass a static string into the attribute name for a <slot> element.
<template> <slot name=”staticName”></slot> </template>
- Salesforce Flow Enhancements: – There are several enhancements in Salesforce Flow as follows:
- Send Salesforce Data to an External Server Without Code via HTTP Callout (Beta): – If you can’t GET enough with HTTP Callout, now you can use the POST method to send Salesforce data to an external server in Flow Builder. Previously, only the GET method was available, which you can use to bring external data into Salesforce.
- Select POST (Beta) to make a callout request that adds the resource to the external server.
- Enter a sample JSON request body that the API expects when configuring the HTTP Callout, and the API infers the external data structure.
- After you create the callout action, set the body for the flow by creating a resource and selecting the Apex class for the external server’s body.
- After you configure the action, add an Assignment element before the HTTP Callout action element, and assign values for each of the fields on the resource.
- When the flow runs, the values are set on the resource and the data is created in the external server.
- Select POST (Beta) to make a callout request that adds the resource to the external server.
- Build Screens with Reactive Components (Beta): – Configure supported standard screen components or your custom Lightning web components to react to changes in other Flow Screen components on the same screen. Build screens that feel like single-page apps and reduce the number of screens your user needs to click through. Previously, components on the same screen couldn’t talk to each other. If you needed one component to influence another, you placed them on separate screens.
- Screen Flow reactivity means your Screen Flow component updates the properties of other components on the screen based on user input. For example, you can make a Name component’s First Name field react to the Text component output.
- Your existing flows start displaying reactivity when you opt into Beta and explicitly save them with API version 57.0 and later.
- From Setup, on the Process Automation Settings page, select Opt into Reactive Screens Beta. Then add components to your screen, upgrade your flow to Runtime API Version 57.0, and save and run the flow as usual. The input component reacts to changes from the output component.
- Update the Screen in Real-Time using Formulas (Beta): – Working with supported formula functions, you can configure a screen component to perform real-time formula calculations and logic. When the flow detects a change in any of the values in the formula, it recalculates and updates the value of the screen component.
- For example, the user sees a real-time screen update of a price discount, tax amounts, and shipping costs. Now it isn’t necessary for users to remember what they selected on a previous screen, thus less confusion and fewer clicks.
- Your existing flows only start displaying reactivity when you opt into the Beta program and explicitly save them with API version 57.0 and later.
- From Setup, on the Process Automation Settings page, select Opt into Reactive Screens Beta. Then add components to your screen, upgrade your flow to Runtime API Version 57.0, and save and run the flow as usual. The input component reacts to changes from the output component.
- Log Emails Sent with the Send Email Action: – Now you can automatically log emails to a record’s Activity Timeline when using the Send Email action. You can log an email to a recipient record, which includes leads, contacts, and person accounts. You can also log an email to a non-recipient record, like an account or opportunity. Or, you can log an email to both. Previously, emails sent using the Send Email action couldn’t be automatically tracked in Activity Timelines.
- Use Email Templates in the Send Email Action: – Reuse email content with Lightning and Classic email templates in the Send Email action. If your email template has merge fields, you can use the recipient record or a related record to populate the merge fields. Or, you can use both. Previously, you couldn’t use email templates in the Send Email action.
- Search and Display Data Table Results in Screen Flows: – Now users can search and filter their Data Table record results. The search returns the first 1,500 items. Initially, 200 records display. As you scroll through the results, additional records load progressively in groups of 100. The search results also show the number of items displayed and the total number of items found.
- Reference Choice Sets Only in Choice Components: – When configuring flow screen components, Flow Builder only lets you reference record choice sets, collection choice sets, or picklist choice sets from a single location – a choice component’s data source. Previously you could set the reference from several other places such as conditions, filters, or component default values, but those references were unsupported and could generate an error. Now you won’t see these options as a choice in places where they are no longer allowed.
- If you have unsupported references in existing flows, don’t worry: your flows continue to run as they did in ’Spring 23. This change ensures that no new flows contain unsupported references.
- View More Elements on the Flow Builder Canvas: – Now you can see more elements on the Flow Builder canvas with a new compact layout and a smaller Add Element button. Previously, elements were further spread out, requiring you to move the canvas more frequently to see additional elements.
- Send Salesforce Data to an External Server Without Code via HTTP Callout (Beta): – If you can’t GET enough with HTTP Callout, now you can use the POST method to send Salesforce data to an external server in Flow Builder. Previously, only the GET method was available, which you can use to bring external data into Salesforce.
- Flow Orchestrator: – There are several enhancements in Flow Orchestrator as follows:
- Get Refreshed Record Variables When an Orchestration Resumes: – When you reference a record variable or a record collection in an orchestration configured to run on API version 58.0 and later, records are refreshed with their latest values each time the orchestration run resumes. In an autolaunched orchestration run, all referenced records are refreshed. In a record-triggered orchestration, all referenced records except $Record_Prior are refreshed. To refresh record variables in an existing orchestration, save a new copy and set the API version to 58.0 or later. Record values aren’t visible in the debugger details for an orchestration run.
- Control the Running Context of an Orchestration: – Choose the context to launch and resume an autolaunched orchestration to control the access associated orchestration runs have to Salesforce data. The selected context also controls the record-level access for evaluation flows and background steps when the associated orchestration runs in a system context. A record-triggered orchestration always runs and resumes in system context. For orchestrations running on API version 58.0 and later, the context used to resume an orchestration is always the context of how the orchestration was launched.
- In the autolaunched orchestration’s Edit version properties window, under Advanced, select an option from the How to Run the Orchestration dropdown.
- Create Steps to Run MuleSoft Actions: – You can now call a MuleSoft action from a step in your orchestration. The step runs asynchronously in system context.
- Get Refreshed Record Variables When an Orchestration Resumes: – When you reference a record variable or a record collection in an orchestration configured to run on API version 58.0 and later, records are refreshed with their latest values each time the orchestration run resumes. In an autolaunched orchestration run, all referenced records are refreshed. In a record-triggered orchestration, all referenced records except $Record_Prior are refreshed. To refresh record variables in an existing orchestration, save a new copy and set the API version to 58.0 or later. Record values aren’t visible in the debugger details for an orchestration run.
- Manage Toast Notifications with a Toast Container (Beta) – Fire and manage a list of toast notification message components, including their position, with lightning/toastContainer for LWR sites. The module creates a container that handles and displays your page-level toast notifications.
- This change applies to Lightning Web Runtime (LWR) sites accessed through Lightning Experience in all editions.
- Use the maxToasts attribute to set the maximum number of toasts in the container. Use containerPosition to position the container, and use toastPosition to position the toast components within it.
// c/myApp.js import { LightningElement } from 'lwc'; import ToastContainer from 'lightning/toastContainer'; export default class MyApp extends LightningElement { connectedCallback() { const toastContainer = ToastContainer.instance(); toastContainer.maxShown = 5; toastContainer.toastPosition = 'top-right'; } }
- Develop Offline-Ready LWCs with the LWC Offline Test Harness: – The LWC Offline Test Harness (or Test Harness, for short) is a lightweight testing and debugging app that enables developers to iteratively develop, test, and debug Lightning web components for use in LWC Offline-based mobile apps. The streamlined app experience accelerates the interactive development lifecycle, making it easy to quickly test incremental improvements and fixes to your mobile LWCs.
- This tool is publicly available for download as both an app file (iOS) and an APK file (Android).
- For details on how to use Test Harness during offline component development, see Develop Offline-Ready LWCs with the LWC Offline Test Harness in the Mobile Offline Developer Guide.
- Validate Your Lightning Web Components for Offline Use with the Komaci Static Analyzer: – The Komaci Static Analyzer (or static analyzer, for short) is a new developer tool that validates code to ensure it can be used in offline environments. Perfect for developers who are looking to try their hand at writing offline functionality. (Or are already doing it!)
- This feature is publicly available as an ESLint plugin, and can be installed with a package manager such as npm or Yarn.
- For details on how to use Komaci Static Analyzer during offline component development, see Validate Lightning Web Components for Offline Use in the Mobile Offline Developer Guide.
- Configure Stack Depth of Chained Queueable Jobs (Beta): – You can now set a maximum stack depth of Queueable jobs, overriding the default limit of five in Developer and Trial Edition organizations.
- Enqueue jobs by using the new System.enqueueJob() overload. The method overload has an optional AsyncObjects parameter where you can specify the maximum stack depth and the minimum queue delay.
- Use these methods in the new System.AsyncInfo class to determine the current and maximum stack depths and to get the minimum queueable delay.
- getCurrentQueueableStackDepth()
- getMaximumQueueableStackDepth()
- getMinimumQueueableDelayInMinutes()
- hasMaxStackDepth()
- This example uses stack depth to terminate a chained job and prevent it from reaching the daily maximum number of asynchronous Apex method executions.
// Fibonacci public class FibonacciDepthQueueable implements Queueable { private integer nMinus1, nMinus2; public static void calculateFibonacciTo(integer depth) { AsyncOptions asyncOptions = new AsyncOptions(); asyncOptions.MaximumQueueableStackDepth = depth; System.enqueueJob(new FibonacciDepthQueueable(null, null), asyncOptions); } private FibonacciDepthQueueable(integer nMinus1param, integer nMinus2param) { nMinus1 = nMinus1param; nMinus2 = nMinus2param; } public void execute(QueueableContext context) { integer depth = AsyncInfo.getCurrentQueueableStackDepth(); // Calculate step integer fibonacciSequenceStep; switch on (depth) { when 1, 2 { fibonacciSequenceStep = 1; } when else { fibonacciSequenceStep = nMinus1 + nMinus2; } } System.debug('depth: ' + depth + ' fibonacciSequenceStep: ' + fibonacciSequenceStep); if(System.AsyncInfo.hasMaxStackDepth() && AsyncInfo.getCurrentQueueableStackDepth() >= AsyncInfo.getMaximumQueueableStackDepth()) { // Reached maximum stack depth Fibonacci__c result = new Fibonacci__c( Depth__c = depth, Result = fibonacciSequenceStep ); insert result; } else { System.enqueueJob(new FibonacciDepthQueueable(fibonacciSequenceStep, nMinus1)); } } }
- Manage DML Exceptions in User-Mode Database Operations: –Database methods for user-mode DML operations generate the correct DMLException. Previously they generated a SecurityException. This behavior is versioned, and the correct exception is generated in API version 58.0 and later versions.
- In this example, a DmlException is generated because the required Name field isn’t populated.
Account acct = new Account(); try { insert as user acct; Assert.fail('DmlException expected due to missing Name field'); } catch (Exception ex) { Assert.isTrue(ex.getMessage().contains('REQUIRED_FIELD_MISSING')); // This assertion fails with API versions below v58.0 because a SecurityException is generated Assert.isInstanceOfType(ex, DmlException.class);
- In this example, a DmlException is generated because the required Name field isn’t populated.
- Deploy Scalable Apps and Analyze System Performance with Scale Center: – Scale Center provides self-service and near-real-time access to performance metrics. Diagnose root causes and act on scale issues earlier in your development cycle. Improve the scalability of your Salesforce implementation. Identify issues with performance or scale. Launch analyses to troubleshoot errors. Retrieve customized insights and recommendations.
- This service is available with a restricted license. Users opt to use Scale Center and are subject to the applicable terms provided at Agreements and Terms.
- Enable Scale Center in sandboxes and in production on first party infrastructure (1P) and Hyperforce. From Setup, in the Quick Find box, enter Scale Center, and then select Scale Center. To get access, contact your program architect or account executive.
- Start an analysis report.
- Track the Publishing of Platform Events with Apex Publish Callbacks (Generally Available): – Get the final result of an EventBus.publish call through an Apex publish callback that you implement. After you receive the final publish result, you can decide what action to take, such as attempting to republish failed events. Because event publishing is asynchronous, the publish operation is queued in Salesforce. When no immediate errors are returned and when resources become available, the system carries out the queued publish call. Without the callback, you can get only the intermediate queueing result in Database.SaveResult of an EventBus.publish call, not the final result.
- To track failed event publishes, write an Apex class and implement the
EventBus.EventPublishFailureCallback
interface. If the asynchronous publish operation fails, theonFailure
method is invoked. In the implementedonFailure
method, you can write logic to act in response to the final result of the publishing operation. Theresult
parameter contains theEventUuid
field values for each failed event, but doesn’t contain the data for the event. Use thegetEventUuids
method to correlate the failure results with the published events.public class FailureCallback implements EventBus.EventPublishFailureCallback { public void onFailure(EventBus.FailureResult result) { // Your implementation. // Get event UUIDs from the result List<String> eventUuids = result.getEventUuids(); // ... } }
- To track successful event publishes, write an Apex class and implement the
EventBus.EventPublishSuccessCallback
interface. If the asynchronous publish operation succeeds, theonSuccess
method is invoked. In the implementedonSuccess
method, you can write logic to act in response to the final result of the publishing operation.public class SuccessCallback implements EventBus.EventPublishSuccessCallback { public void onSuccess(EventBus.SuccessResult result) { // Your implementation. // Get event UUIDs from the result List<String> eventUuids = result.getEventUuids(); // ... } }
- Because most publish calls typically succeed, processing successful event publishes isn’t likely a concern. A large volume of events can be published successfully, so watch the performance and Apex limits when processing results.
- To track failed event publishes, write an Apex class and implement the
Additional Enhancements Worth Noting!
- Connect External Data Sources Managed via GraphQL from Salesforce (Generally Available): – Use the new Salesforce Connect adapter for GraphQL to access and integrate data from external sources that expose their capabilities via GraphQL. GraphQL APIs are more flexible and efficient than traditional REST APIs and provide a modern way to integrate applications. Perform queries, execute mutations, such as insert, update, and delete, and manage metadata to configure external objects easily. The new adapter also includes special extensions for AWS AppSync and provides seamless access to Amazon RDS.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Unlimited, Developer, and Performance editions.
- Work with your Amazon administrator to use the setup template and configure AWS AppSync. Define an external data source of type
GraphQL
and connect Salesforce to access AWS data stores, without copying or syncing the data.
- Scan More Barcodes at Once, Save Time–Improved Bulk Scanning with BarcodeScanner: – Scanning barcodes gets even easier! When you use BarcodeScanner in your LWC, you now have the option to enable scanning of multiple barcodes simultaneously. This much-requested feature makes processing large quantities of barcodes a breeze!
- Building barcode-scanning functions using the BarcodeScanner API only works in the mobile application, not the web version on mobile or desktop.
-
New scan() Function for BarcodeScanner Does It All: – The original BarcodeScanner API consists of three separate functions:
beginCapture()
,resumeCapture()
, andendCapture()
. The newscan()
function replaces them by combining the functionality of all three, allowing for a simplified development experience with BarcodeScanner.- Salesforce recommend migrating to the new
scan()
function to take advantage of the streamlined development experience it offers. The functionsbeginCapture()
,resumeCapture()
, andendCapture()
remain available, but will be retired in a future release.
- Salesforce recommend migrating to the new
- See Improved Logging with Assert Class Methods: – Reduced redundancy in stack trace output simplifies and clarifies logging. Previously, when some
Assert
class methods caused a test to fail, the logged stack trace showed duplicate entries. - Conduct Quick, Easy, and Accurate Performance Tests with Performance Assistant: – Performance Assistant gives you a Test Ops suite that contains Test Plan Creation, Test Environment Setup, and Test Execution. Run quick and accurate tests for any use case. Access insights into performance hotspots, trial runs, test trends, and more. Be confident that your implementation scales and adheres to your performance SLAs.
- Enable Performance Assistant (Test Ops) in sandboxes and in production on first party infrastructure (1P) and Hyperforce. From Setup, in the Quick Find box, enter Scale Center, and then select Performance Testing to view all three tabs in the Test Ops Suite. To get access, contact your program architect or account executive.
- Get Enhanced Event Usage Metrics – Aggregate usage data by event name and determine which event is using up more of your allocations. Group usage by client to find out how many clients subscribed to a particular event and how your event delivery usage is shared among clients. Use granular time aggregations of daily, hourly, and 15-minute periods to slice and dice usage data. When you query PlatformEventUsageMetric, you can use these new fields:
EventName
,Client
,EventType
, andUsageType
.- Enhanced usage metrics is available in API version 58.0 and later after you enable this feature in Metadata API using PlatformEventSettings.
- This example query returns hourly event usage for delivered events from April 1 through April 2 in UTC time. The query aggregates the results into one-hour intervals as specified by the
TimeSegment
field. Results are grouped per event and client because theEventName
andClient
fields are specified in the SELECT statement.SELECT EventName, Client, Value, StartDate, EndDate FROM PlatformEventUsageMetric WHERE TimeSegment='Hourly' AND UsageType='DELIVERY' AND StartDate >= 2023-04-01T00:00:00.000Z AND EndDate <= 2023-04-02T00:00:00.000Z
- Integrate Real-Time Events with Amazon EventBridge with Point and Click:– Easily create and manage your event relays in the new Event Relays page in Setup. You can manage status, monitor errors, and make edits. Previously, you could create and manage event relays only through the API. Now you can create event relays in the UI. Event relays send platform events and change data capture events from Salesforce to Amazon EventBridge.
- This change applies to Lightning Experience and Salesforce Classic in Enterprise, Performance, Unlimited, and Developer editions. Event Relay isn’t available in Non-Hyperforce Public Cloud, Government Cloud, and Hyperforce instances.
- To create an event relay, from Setup, in the Quick Find box, enter Event Relays, and then select Event Relays. From the Event Relays page, click New Event Relay. Using the event relay creation wizard, provide the requested information.
- The Event Relays page shows the event relays that you create.
- Save Time by Linking Contacts to Cases in Email-to-Case: – Add a flow that puts customer information at your agents’ fingertips. The flow lets agents link contacts to cases created in Email-to-Case.
- Use the individual-object linking flow template called Find Contact for Associated Case from Email-to-Case. Add it to the Actions & Recommendations component. If you customize and save it as a screen flow, for example, you can use it elsewhere.
- The flow finds all contacts with email addresses that match the inbound email address that resulted in the case. Your agent then selects the right contact to link to the case.
- Async SOQL Retirement: – Async SOQL is scheduled for retirement in all Salesforce orgs in Spring ’23. Async SOQL is used for Big Objects, Field Audit Trail, and the Connect REST API. Read this article to find more details.
- Transfer Package Ownership to a Different Dev Hub (Generally Available): – Ownership transfer of an unlocked package or second-generation managed package from one Dev Hub org to another is generally available. A transfer can occur internally between two Dev Hub orgs that you own, or you can transfer a package externally to another Salesforce customer, Salesforce Partner, or ISV. This change provides a way to sell an unlocked or second-generation managed package.
- This change applies to unlocked packages and second-generation managed packages.
- To initiate a package transfer, log a case with either Salesforce Partner Support or Salesforce Customer Support. Because this procedure is complex, Salesforce performs the package transfer process for you.
- For security reasons, package transfers between a Dev Hub located in Government Cloud and a Dev Hub located outside Government Cloud aren’t permitted.
Salesforce Mobile App Enhancements
Salesforce Mobile App Plus combines mobile offline access, enhanced app security, and branding capabilities. Enable Dynamic Forms on Mobile (beta) to give your mobile users the same customized record-page experience as your desktop users. View your analytics collections on Salesforce Mobile Home.
- Salesforce Mobile App Requirements Have Changed: – Salesforce revised the requirements for using the Salesforce mobile app for iOS and Android. The Salesforce mobile app is supported on phones and tablets that meet these mobile platform requirements.
- Android 9.0 or later
- iOS 15.0 or later
- See Recent Changes in Forecast Categories:- See week-over-week changes for each of the forecast categories so that you can adjust your sales strategies accordingly.
- Access Your Analytics Collections on Salesforce Mobile: – Collections have now been added as a card on Salesforce Mobile Home. When you curate a collection of Lightning reports and dashboards, and CRM Analytics assets on your desktop, you can view it automatically on your mobile device.
- Mobile Offline Is Generally Available: – Mobile Offline, available with Salesforce Mobile App Plus, gives users the ability to do their jobs from anywhere, including places with poor network connectivity. With Mobile Offline, Lightning web components that have been developed for offline use can display and update records while a mobile device is disconnected from the internet. When the device returns online, changes automatically synchronize back to the Salesforce service.
- The Salesforce Mobile App Community License Access Retirement Is Paused: – Salesforce has decided to pause the previously communicated retirement of Community License users using the Salesforce Mobile App. There is currently no planned retirement timeline. This retirement announcement applies to all users with these licenses:
- Company Community License
- Customer Community
- Customer Community Plus
- Customer Portal
- High-Volume Portal User
- Lightning External Apps
- Lightning External Apps Plus
- Partner Community
- Partner Portal
Key Resources:
Check out the resources below to learn about some of the most exciting innovations before officially GA on February 10th!
- Keep Track of Upcoming Release Dates: Mark your calendar for when you can preview and roll out Summer ’23 Release updates.
- Salesforce Website: Your one-stop-shop to learn all about the latest release
- Release In a Box: A summary deck you can share with your organization, leadership team, and/or community
- Demo Videos By Salesforce: 2-3 minute overviews of our top innovations
- Release Trail: Earn that badge and march towards Ranger Status
- 10 Hottest Salesforce Summer’23 Features for Admins
Formative Assessment:
I want to hear from you!
What are your favorite Summer’23 release note gems? You can download release notes in HTML format!, for PDF files.
Feel free to share in the comments below.
wonderful
Thought this was interesting though the date will probably move like most things “The Classic Knowledge data model is no longer available starting with the Summer ’25 release. All Classic Knowledge need to be migrated to Lightning Knowledge by 1st June 2025.”