The Spring ’25 release is rolling out to your sandbox and production environments starting in January and continuing through February 2025. Get ready — this release includes product updates and new features to enhance your development experience. Whether you’re looking to build agents for your business, build a solid data foundation on Data Cloud, or work with platform features, you’ll find significant new capabilities in this release.
Let’s take a look at the highlights for developers in Agentforce, Data Cloud, Apex, LWCs, developer tools, and APIs.
Agentforce features
Agentforce enables you to customize pre-built agents, or create and deploy new agents that work seamlessly across Salesforce apps, Slack, websites, and third-party platforms and apps. In the upcoming release, we are adding some important features. However, Salesforce releases Agentforce updates frequently, so keep an eye on the monthly release section of the Salesforce release notes for the latest information.
Agentforce support in scratch orgs
You can now create agents and applications using Salesforce’s generative AI features, which include Agentforce, Prompt Builder, Model Builder, and the Models API — all within scratch orgs. Refer to the official documentation for instructions on setting up a generative AI scratch org. After creating your scratch orgs, assign the permission sets related to the features that you want to build with. For example, you must assign the Prompt Template Manager permission set to use Prompt Builder.
Agentforce Testing Center
With the new Agentforce Testing Center, you can test your agents in bulk to see if they select the right topics and actions. The Agentforce Testing Center allows you to auto-generate test cases using AI, or upload your test cases. In later iterations, we will integrate this with Salesforce CLI and provide APIs.
Preview conditions in Agent Builder
Now, you can use Agent Builder to specify the context of an agent conversation to more precisely test Agentforce (Default) or an Agentforce Service Agent (ASA) behavior. For example, when testing Agentforce, you can simulate a conversation that’s specific to the user’s language, app, or current page type, including a specific object or record. Also note that Agentforce (Default) is the new name for the agent type, previously known as Einstein Copilot for Salesforce.
For an ASA, you can simulate a conversation that’s specific to the enduser’s ID or contact ID. If your ASA is connected to Messaging for In-App and Web channels, and uses context variables, you can also simulate a conversation based on the session variables you’ve added to your agent.
LLM Open Connector recipes
The Salesforce LLM Open Connector is an Open API specification that allows developers to connect any LLM to Salesforce to build custom actions for Agentforce. We have added recipes to show you how to bring your own model from your preferred inference provider.
Agent API
Agent APIs are scheduled to go live in February. These APIs allow you to invoke Agentforce headlessly from other agents and applications. Watch this video for a preview of the API.
Agent versions
Now, you can easily create up to 20 versions of your agent to test, troubleshoot, or save backups without disrupting the active version. This ensures smooth iteration and quick recovery. This feature will be available in the February monthly release.
Data Cloud release highlights
JDBC driver
The Java Database Connectivity (JDBC) driver allows for a connection to Data Cloud ANSI SQL API. This connection lets you access and retrieve data using your favorite JDBC-supported tools. Find the driver in our GitHub repo (see here), and to learn more, see the documentation.
New Data Cloud REST APIs
There are several new Data Cloud Connect REST APIs, making it easier to create activations and validate transforms. Below are some APIs that are now available.
Action | Method | Request URI |
---|---|---|
Create an Activation Target | POST | /ssot/activation-targets |
Update an Activation Target | PATCH | /ssot/activation-targets/{activationTargetId} |
Create an Activation | POST | /ssot/activations |
Update an Activation | PUT | /ssot/activations/{activationId} |
Validate Data Transform Logic | POST | /ssot/data-transforms-validation |
Get Data Transform Run History | GET | /ssot/data-transforms/{dataTransformNameOrId}/run-history |
You can learn more about the Data Cloud REST APIs in the docs, or explore them in our updated Postman collection.
Data Cloud flow enhancements
- Flow Builder now supports data types from Data Cloud: Email, URL, Phone, Percent, Boolean, and Currency. Use Data Model Object (DMO) and Calculated Insight Object (CIO) fields of the newly supported data types to set entry conditions in Data Cloud-triggered flows, send data to Data Cloud with the Send to Data Cloud action, and specify filter conditions in the Get Records element.
- You can now deploy changes made for Data Cloud-triggered flows in sandbox to production.
Data Cloud One now supports enrichments
In the last release, Salesforce launched Data Cloud One, which equips multiple orgs with a unified customer profile and Data Cloud-powered features through one central Data Cloud. This release adds support for enrichments, which allows you to add information from Data Cloud to your Salesforce CRM record pages using related lists or a copy fields feature. This feature will ship in February.
Ground your prompt templates with Data Cloud data graphs and Data Model Objects (DMOs)
Prompt Builder now supports grounding in Data Cloud data graphs and Data Model Objects (or DMOs). Data graphs bring data from multiple systems into a comprehensive dataset. With a centralized dataset now accessible in Prompt Builder, you gain a 360-degree perspective of customer data for richer, more insightful prompt responses.
The screenshot below shows how to ground prompt templates with data graphs in Prompt Builder.
Platform encryption for Data Cloud with customer-managed root keys
By default, all data in Data Cloud is encrypted at rest in AWS by an AWS-managed Data Encryption Key (DEK). With Platform Encryption for Data Cloud, you can generate a Data Cloud root key in Salesforce. Your Data Cloud root keys are specific to your org and secure the DEKs that encrypt and decrypt your data. This way, you control the key chain that encrypts your data. To learn more, check out the docs.
The above are only a handful of features that are developer-focused. If you work with Salesforce Industries or a specific Salesforce cloud product, like Service Cloud, Sales Cloud, Marketing Cloud, or Commerce Cloud, be sure to review the release notes to explore more.
Apex enhancements
Compress and extract zip files in Apex
Developers have long requested the ability to compress and extract zipped files. This release finally makes this feature generally available. You can use the Compression
namespace (see docs) to compress and extract files. Note that Apex has heap size limits, so make sure you test your code and find the max size of the files you can work with. The heap can differ based on the compression methods used to zip the file.
Below is a quick teaser example showing how to use Compression.ZipWriter
to create a zip file containing documents from a specific library and save it back to the same library.
Dynamic formulas in Apex
Use the class methods in the FormulaEval
namespace to build and evaluate dynamic formulas. This feature, now generally available, supports accessing polymorphic relationship fields. You can also reference standard and custom lookups in formula fields. To find use cases for using dynamic formulas in Apex, checkout the demo video, Apex Updates for Developers: Summer ’25.
Changes to the concurrent, long-running Apex requests limit
Previously, organizations were limited to 10 concurrent Apex requests for transactions that took more than five seconds. With the new release, this limit is now determined by the number of licenses that an organization has. The limit starts at a minimum of 10 requests and can go up to a maximum of 50 requests.
The new limit is calculated based on a ratio of 100 permits for each long-running Apex request. For example, if an organization has 4,000 licenses, the new limit would be 40 concurrent requests. However, for organizations with more than 5,000 licenses, the limit is capped at a maximum of 50 concurrent requests.
Pause and resume scheduled jobs in Apex
Use the new pauseJobByName()
, pauseJobById()
, resumeJobByName()
, and resumeJobById()
system methods to pause and resume scheduled jobs programmatically. In the example below, we show how you can pause a scheduled job.
Miscellaneous updates
There are several miscellaneous Apex changes that apply to version 63.0 and beyond that you should be aware of. These changes include the following:
- The JSON serialization method for exception types has been updated. Apex no longer supports JSON serialization of custom exception types and most built-in exceptions.
- The restrictions on reparenting master-detail relationships in Apex have been enforced more strictly. With version 63.0 and beyond, an attempt to reparent a child record in Apex throws a
System.DmlException
exception if the option to allow reparenting isn’t selected in the master-detail definition. - The default value for the Accept header in Apex callouts has been modified. The default value for the Accept header is now
*/*
starting in version 63.0. Previously, it wastext/html
,image/gif
, image/jpeg
,*; q=.2
, and*/*; q=.2
.
LWC enhancements
Local development is Generally Available
Local Dev is now generally available in Spring ’25 sandboxes and scratch orgs. It allows you to preview your LWC instantly as you code — without the need for page refreshes or reloads. We use hot module reloading and WebSockets to allow you to locally preview your LWC for LWR sites, mobile apps, and the Lightning Experience. To learn how to set up tooling and work with this feature, check out the documentation or watch this video.
Introducing Salesforce Lightning Design System (SLDS) version 2 (Beta)
SLDS 2 (Beta) is available to new and existing orgs that opt in to Salesforce Cosmos. You can use SLDS 2 (Beta) design systems to build user interfaces with themes that adapt to future changes. You can use the SLDS Validator extension to see if your LWC components comply with SLDS 2 guidelines. The extension also suggests code fixes as needed for a smoother transition from SLDS to SLDS 2.
LWC API version 63.0 updates
With API version 63.0, we’ve made several important improvements.
- In LWC API version 63.0 and later, TypeScript developers will benefit from enhanced type checking for
@wire
configuration and property values. This type checking also ensures that reactive properties resolve to the type used by the component. - Additionally, developers can update JavaScript selectors to remove any extra whitespace. If your markup starts or ends with a space or tab, these will be removed for consistency starting with version 63.0. Therefore, ensure that your JavaScript code is also updated to eliminate any unnecessary spaces. Check out examples in the release notes.
Mobile LWCs with ESLint rules
Use the new ESLint rules plugin to help you develop code that works with mobile and offline Lightning web components. The ESLint rules flag violations for: Apex usage, Offline GraphQL feature limitations, and Offline GraphQL hard limits.
Enhancing Salesforce Extensions for mobile offline performance
The latest version of the Salesforce Extensions for Visual Studio Code comes with new diagnostic improvements to help flag and resolve mobile and offline performance-related issues. The new diagnostic improvements flag potential performance issues related to:
- Large number of fields exceeding 32KB
- Base Lightning web components that aren’t optimized for mobile offline use
- Use of wire adapters
getRelatedListRecords
andgetRelatedListCount
while offline
Platform development tools
Agentforce for Developers
Agentforce for Developers is a suite of AI-powered tools that help developers write Salesforce-specific code, like Apex and LWC. We are shipping several improvements to Agentforce for Developers in the upcoming month.
- Improved context understanding for Inline Autocomplete – now considers your metadata schema and related Apex or LWC files.
- We have now removed a setting that allowed users to choose between long and short autocompletions. Now you’ll always have the best autocompletion experience, based on your context.
- Test Case Generation for LWC Jest Unit Tests
- LWC Code Optimization to scan and improve your existing LWCs for accessibility, style, and mobile offline
- Fix suggestions for errors caught by Code Analyzer.
Watch the release updates to discover these features as they roll out.
Salesforce CLI updates
Salesforce CLI receives updates every week. Check the Salesforce CLI release notes weekly for helpful updates. Recent major improvements include:
- You can now specify multiple
--query
flags to the data export tree command. As a result, you can easily export records from junction objects and their parents, so that their many-to-many relationships are preserved. - There are new commands for working with Bulk APIs. With these commands, you can now easily work with Bulk API 2.0 from Salesforce CLI.
- You can execute a SOSL search in your org from the command line with the new
data search
command. - There is a new Beta command,
api request rest
, to send REST calls to your org. - You can use the new Beta
api request graphql
CLI command to execute a GraphQL statement. The command uses the GraphQL API to query or modify Salesforce objects. - You can open an agent in your org’s Agent Builder UI with the new
org open agent
command. Use the--name
flag to specify its API name. For example:sf org open agent --name Coral_Cloud_Agent
. - Improved tabular outputs for commands are available where it is appropriate, like
org list limits
. You can customize it as well with new environment variables.
Code Analyzer
Code Analyzer version 5 is now in Beta. With version 5, we have rearchitected Code Analyzer to be more intuitive and flexible, so that you can add your own rules. Some of its features include:
- Flowtest, a new data flow engine to scan flows for security problems
- Copy/Paste Detector (CPD) engine to detect duplicate code
- An expanded PMD ruleset for ISV apps, in line with the AppExchange Security Review
- An expanded Regex ruleset with new rules for Apex
- A new GitHub action for Code Analyzer 5
- We also now output results in the Static Analysis Results Interchange Format (SARIF), a standard, JSON-based format for the output of static analysis tools
APIs and integrations
- You can now get notified about Bulk API V2 Query jobs with platform events (Beta). Subscribe to the
BulkApi2JobEvent
platform event to get notified about the progress and completion of Bulk API V2 query jobs. This avoids having to poll the API for job completion as described in this blog post. - Private Connect support for AWS integrations is available in new regions in Asia.
- You can package and distribute event relays as a part of second generation (2GP) Managed Package. Event Relay lets you stream events to AWS natively without writing an integration app between Salesforce and AWS.
More Spring ’25 learning resources
- View the official release notes or download the PDF version
- Join the Salesforce Developers Trailblazer Community group to connect with the global developer community
- Join the Release Readiness Trailblazers Community group to stay informed about the latest product enhancements and innovations across the Salesforce ecosystem
About the authors
Mohith Shrivastava is a principal 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.