Attention Salesforce Developers — we’re excited to introduce you to our Winter ’24 Release Readiness program! Salesforce has three major releases each year, and with them comes a lot to read and learn about. If you don’t have time to scan the 604 pages of release notes to find developer features, we’ve got you covered.
Formerly known as Learn MOAR, our Release Readiness program gives you the information that matters most to developers in easy and accessible ways. Think of this blog post as the hub, and everything else as the spokes. For example, you can learn more about the latest release in video format by watching Release Readiness Live, recorded at Dreamforce 2023, listening to it in podcast format, or completing a quest on Trailhead.
Be sure to read, bookmark, and come back to this post any time you have questions about the Winter ’24 release.
Are you ready to get release ready? Let’s get started!
Winter ’24 Salesforce Platform updates
Winter ’24 is packed with a lot of platform features focusing on improving your quality of life as a Salesforce Developer.
New additions to Apex
- DataWeave in Apex is now generally available. You can now transform data in Apex using DataWeave scripts, and there is also a new Setup UI to view DataWeave scripts. See this open-source project for examples. You can use DataWeave in Apex in your managed packages as well.
- You can now set the maximum depth for chained queueable Apex jobs.
- It’s now possible to prevent race conditions and reduce contention by enqueueing a single instance of async Queueable jobs based on a signature. Use the
QueueableDuplicateSignature
class to build unique signatures. - A new comparator interface and Collator class makes sorting lists easier.
- For loops over an Iterable are now allowed in Apex without needing a while loop.
- You can now specify custom access using permission sets for the User Mode Database Operations using the new
AccessLevel.withPermissionSetId()
method. Note that this is in Developer Preview, so we request that you take time to play with it and share feedback via our social.
LWC enhancements
Winter ’24 is delivering a lot of innovations for Lightning Web Components that you’ve been asking for since we launched LWC, including dynamic components, LWC support for console apps, support for third-party web components in LWC, and much more.
Dynamic components
Dynamic components allow components to be rendered dynamically at runtime.
To enable dynamic components:
- Add the
lightning__dynamicComponent
capability in meta XML - Use the
<lwc:component>
tag where you want to inject a component - Use the
lwc:is
directive on<lwc:component>
to specify constructor of component to render dynamically
Below is an example of a simple dynamic component that renders a component dynamically. The name of the component to render is retrieved from custom metadata configuration via Apex.
dynamicComponent.html
dynamicComponent.js
dynamicComponent.js-meta.xml
LWC Workspace API (Beta)
LWC is finally getting much-needed love for developers working with console apps. In this release, we have introduced the LWC Workspace API in Beta. The LWC Workspace API provides methods to manage your workspace tabs and subtabs in a Lightning console app.
Below is an example js file from a component that shows how to open console subtabs using the LWC Workspace API.
For complete documentation about various APIs and methods under the LWC Workspace API, refer to the Salesforce console developer documentation.
GraphQL wire adapter for LWC
The GraphQL wire adapter allows streaming Salesforce object data in LWC using GraphQL, without needing Apex. It includes filtering, sorting, and pagination, and it handles CRUD/FLS and sharing rules. It also has client-side caching and data management from the Lightning Data Service.
To work with the GraphQL wire adapter, you will need to use the lightning/uiGraphQLApi
module. To learn more on how to use it, check the components prefixed with “graphql” in the lwc-recipes app.
Other miscellaneous enhancements
- The RefreshView API can now refresh components without page reload, even with Lightning Locker
- Third-party web components created using Web Component-based technology, such as Lit, can be used in LWC with the
lwc:external
directive if Lightning Web Security is enabled - Custom elements can be created in LWC (Beta) using
customElements.define()
if Lightning Web Security is enabled - With event monitoring, LWC observability can be added using the Custom Component Instrumentation API (Beta)
- Lightning Web Components in Experience Cloud Aura sites can now have Custom Property Editors (Beta), which let administrators configure component parameters when adding a component to a site with Experience Builder
- You can create and manage a list of notifications for LWR Experience Cloud sites using new LWC modules, such as
lightning/toast
andlightning/toastContainer
Salesforce Flow
You can now set up your screen flow components for reactivity. This allows developers to build single-page apps with screen flows by easily combining standard out-of-the-box screen flow components and custom LWC components.
Here are some examples of how to use the reactivity feature:
- Set a standard flow component to react to changes from another standard flow component
- Make your custom LWC components within the screen flow react to changes in the standard flow component
- Make your standard flow component react to changes in a custom LWC component
- Make your custom LWC components react to changes in another LWC component in the screen flow
We have also updated the docs with best practices to follow in your custom LWC to support reactivity. If you want to learn more check out a dedicated trailmix.
Platform development tools
Winter ’24 brings much-needed products related to developer tooling that are designed to boost developer productivity.
- Einstein for Developers, a new innovative tool that uses generative AI capabilities to create Apex code is moving to Open Beta starting today. You can install the Einstein for Developers extension from the Visual Studio Code marketplace starting today.
- Code Builder, Salesforce’s web-based IDE, will be generally available by October 2023. With Code Builder, you don’t need to install software on your computer. You can launch Code Builder directly from your Salesforce org.
- The Salesforce Code Analyzer VSCode extension is now available in Beta. This extension lets you scan code for security vulnerabilities and performance issues using static and path-based graph analysis directly within VSCode or Code Builder. It provides a graphical interface for the Salesforce Code Analyzer tool, making it easier to run scans during code development in your VSCode IDE.
- DevOps Center actions can now be triggered using the new Salesforce CLI command. Check the release notes to explore more.
- Scale Center is generally available for all unlimited edition orgs. Scale Center lets you analyze the performance of your orgs, including helping you uncover Apex Row locks, concurrency, callout errors, and more.
APIs & integrations
- Bulk API 2.0 gets some love with improved query creation, efficient processing algorithms, and better performance.
- Salesforce GraphQL APIs now support mutations (Beta). With mutations, you can perform insert, update, and delete operations for UI API-enabled objects. To explore more, check out the updated section for mutations in the GraphQL API developer guide.
- Connected Apps in Salesforce now allow you to request a JSON Web Token (JWT). You can then use these JWT tokens to access only the REST APIs.
- Event relays, which are used to send platform events/change data capture events to the Amazon bridge, are now available on Hyperforce orgs.
- Named credentials creation was added to Apex in the last release. This release adds new methods to help retrieve and delete named credentials from Apex. This should help ISVs to automate the creation of named credentials.
- Named Credentials now supports OAuth 2.0 client credentials flow for server-to-server integration.
- Change Data Capture (CDC) now supports more objects, including Health Cloud and Field Service objects. This should make it easier to synchronize data to third-party systems using events.
- The OData 4.01 adaptor for Salesforce Connect now supports External Change Data Capture. With External Change Data capture, you can track changes to data that is stored outside your Salesforce org when using the OData 4.0 and 4.01 adapters.
Data Cloud highlights
Winter ’24 is adding some fun features to Data Cloud, making it possible to use tools and technology that you already know on the Salesforce Platform.
- Data Cloud-Triggered Flows lets you write a flow on the Data Cloud data model objects and calculated insights.
- You can now query segmented data via the new Connect REST API endpoints.
- You can securely share data from Data Cloud to Snowflake using the Zero ETL capability via a datashare.
- Batch Data transforms are now available for the Data Model objects in Data Cloud. Additionally, you can now set intervals and schedules for automatic data refresh.
Cross-cloud developer features
This section covers Winter ’24 updates for cross-cloud developers. Whether you work with MuleSoft, Slack, or Tableau, we have some important updates to help you be productive.
Slack
- The new platform for building Slack apps launched in April this year. Since the launch, many new features and enhancements have been added. These include better Deno dependency caching, improved CLI prompts, and a smoother CLI authentication experience. To learn more see the Slack change logs.
- Several new templates and sample apps are now available to help developers get started building apps on the next-generation Slack platform.
MuleSoft
- MuleSoft Anypoint Code Builder, which uses the same technology as Salesforce Code Builder, is an IDE purpose-built for API and integration development. The cloud and desktop versions are currently available in Open Beta, with plans to GA the desktop version in October.
Tableau
- An out-of-box native Lightning Web Component is available starting in Winter ’24. This component makes embedding Tableau dashboards in Salesforce pages easy. To embed dashboards that require a login, single sign-on (SSO) must be set up between Salesforce and Tableau.
- The Tableau Embedding Playground lets you quickly create exportable code to embed interactive visualizations in any web app, including Salesforce Experience Cloud sites.
More Winter ’24 learning resources
- Are you more of a visual learner? Watch Developer Preview: Winter ’24 Release Readiness Live, recorded live at Dreamforce 2023.
- Want to hear about the release on the go? Listen to the Salesforce Developers Podcast episode all about developer highlights in the Winter ’24 release.
- View the official release notes or download the PDF version.
- Follow and complete the Winter ’24 Release for Developers Quest on Trailhead by October 20, 2023, 11:59 p.m. PT to earn a special community badge to add to your profile.
- Join the Salesforce Developers Trailblazer Community group to connect with the global developer community.
- Join Release Readiness Trailblazers to stay up to date on the latest and greatest product enhancements and innovations across the Salesforce ecosystem.
About the authors
Mohith Shrivastava is a Developer Advocate at Salesforce with a decade of experience building enterprise-scale products on the Salesforce Platform. Mohith is currently among the lead contributors on Salesforce Stack Exchange, a developer forum where Salesforce Developers can ask questions and share knowledge. You can follow him on LinkedIn.
Kaitlin Benz is a Senior Developer Marketing Specialist at Salesforce. She’s most passionate about storytelling, podcasts, and vegan food. Find her on LinkedIn.