Top Salesforce Summer ’24 Features for Developers

The Salesforce Summer '24 release is here and packed with exciting updates that empower developers to build more robust, efficient, and secure applications. From enhanced Lightning Web Components to powerful new Apex enhancements, these Salesforce Summer ’24 Feature updates for Developers are designed to streamline your workflow and boost productivity. 

In this blog, we’ll dive into the latest developer updates, exploring how these new features can enhance your Salesforce projects and keep you ahead of the curve.

Summer '24 Developer Updates: A Quick Overview

LWC Enhancements with LWC API Version 61.0

Versioning your LWCs keeps them up-to-date and aligned with the Salesforce release they're designed for. In an attempt to empower developers, Salesforce has unveiled some massive enhancements in LWC API version 61.0.

Here's a noteworthy one:

Simpler Custom Form Controls: Building custom forms just got easier! With LWC API version 61.0 and above, you can now take advantage of the standard ElementInternals web API. This enables you to create custom form controls that behave just like standard HTML forms, streamlining the development process.

How: Use the apiVersion key in the .js-meta.xml file to specify the API version

<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
    <apiVersion>58.0</apiVersion>
</LightningComponentBundle>

Confirm Your Components  

Salesforce is making changes to the internal implementations of Lightning components, Salesforce Lightning Design System (SLDS) styles, and custom properties. This is Salesforce’s attempt to support upcoming UI enhancements. 

These modifications will not cause major UI changes if your site or component is customized with supported techniques. However, if there are any unsupported customizations, then you should update them to avoid any UI-related problems.

How: The SLDS Architecture Updates FAQ can guide you through supported and unsupported techniques, as well as provide a roadmap for updating your existing customizations.

Einstein Studio Legacy Tab Phased Out from Data Cloud

In Data Cloud, the Einstein Legacy tab has been replaced by the new Einstein Studio tab.  The new Einstein Studio tab will serve as your central hub for creating and connecting AI models. Powered with enhanced AI capabilities, including predictive and generative AI models, activity metrics, and alerts for data, models, and training processes, this feature can take your AI development to the next level. 

The new Einstein Studio tab in Data Cloud | Source: Salesforce

Monitor Model Performance with Activity Metrics

Users can now gauge the performance of their predictive or generative models using activity metrics. This will provide insights such as connection, timeout, authentication errors, and much more. To access the metrics, simply navigate to the Activity tab within Model Builder after selecting the activated model.

Activity Metrics for monitoring Model performance | Source: Salesforce

Evaluate Predictive Model Quality with Alerts

Spot Potential Issues Early with Einstein Studio Alerts!

Building the best predictive models just got easier! In Einstein Studio, you'll receive helpful alerts that highlight potential problems with your data or training process. These alerts act like early warning signs, allowing you to:

  • Identify data inconsistencies: Catch data issues that might affect your model's accuracy.

  • Fix training problems: Address any hiccups during the training process.

By addressing these alerts, you will be able to create models that deliver more precise predictions and retrain your models for even better results.

Where: Find these alerts conveniently on the model details page, settings, and activity tab. 

Cursors for Expanded SOQL Query Result

To address the limitations of batch Apex, Salesforce has introduced cursors in the Summer ‘24 Release. The Apex cursor can break up the processing of SOQL query results into manageable pieces that fit within a single transaction.

By using cursors, you can handle large query result sets without returning the entire set at once. Package and advanced developers can use cursors effectively for high-volume processing tasks.

public class QueryChunkingQueuable implements Queueable {
    private Database.Cursor locator;
    private Integer position;

    public QueryChunkingQueuable() {
        locator = Database.getCursor('SELECT Id FROM Contact WHERE LastActivityDate = LAST_N_DAYS:400');
        position = 0;
    }

    public void execute(QueueableContext ctx) {
        List<Contact> scope = locator.fetch(position, 200);
        position += scope.size();
        // do something, like archive or delete the scope list records
        if (position < locator.getNumRecords()) {
            // process the next chunk
            System.enqueueJob(this);
        }
    }
}

Note: This feature is a Beta Service.

Dynamic Formulas in Apex

By using the new Formula.builder() method in Apex, you can now construct dynamic formulas that utilize SObjects as the context object. This method allows you to configure the formula and retrieve referenced fields using the getReferencedFields() method. 

See the below example for a better understanding:

FormulaEval.FormulaInstance likelyBuyer = Formula.builder()
      .withType(Account.SObjectType)
      .withReturnType(FormulaEval.FormulaReturnType.BOOLEAN)
      .withFormula('AnnualRevenue > 10000 AND ISPICKVAL(Industry, "Biomechanical")');

Note: This feature is a Beta Service.

Retirement of Streaming API Versions 23.0 to 36.0

If you're using streaming API versions 23.0 through 36.0, it's time to upgrade. These older versions are scheduled for retirement in Winter '25 and will no longer receive support. To ensure seamless operations, consider transitioning to a recent version, preferably one equal to or greater than version 37.0. 

By upgrading, you not only guarantee continued compatibility but also unlock access to ongoing product enhancements and bug fixes tailored for newer Streaming API versions.

Retirement of Engage for Gmail Extension

The Engage for Gmail extension, built on Manifest V2, is expected to retire in June 2024 due to Google's decision to disable Manifest V2 for Chrome extensions. Nevertheless, you can continue sending emails directly through Salesforce using the Account Engagement Sales Email & Alerts feature.

Simplify Navigation on Mobile Publisher for LWR Sites

With the latest summer 24 release salesforce update, you can now enhance your customers' navigation experience in Mobile Publisher for Experience Cloud apps on the LWR platform by displaying the hamburger menu and back button. Customize these navigation options for your LWR site by using the newly introduced getNavigationConfig wire adapter. This wire adapter exposes properties that allow you to enable or disable the hamburger menu and back button for both Android and iOS apps.

Note: This feature is a Beta Service.

Complete Address Fields Accurately

This Summer 24 release Salesforce update allows customers to quickly fill out address fields by integrating Google Maps data. When entering an address, users can choose from suggested addresses, and the remaining fields will automatically update. To activate this feature, simply add a Type Ahead block to OmniScript and modify the Google Maps autocomplete settings.

Configure Order Save Behavior During Upgrade

To avoid upgrade failures, disable the New Order Save Behavior before upgrading the OmniStudio package from Spring ‘24 or Summer ‘24 to Winter ‘25 or any patch release. Complete the upgrade process, and then re-enable the New Order Save Behavior. The New Order Save Behavior will be enabled by default from Winter ‘25.

Secured HTTP Outbound Calls to AWS VPC

Salesforce Private Connect is now supported in OmniStudio Standard for HTTP Actions in Integration Procedures. This update empowers you to make secure outbound HTTP calls directly from your OmniStudio workflows to external services within an AWS Virtual Private Cloud (VPC). Simply specify named credentials in your Integration Procedures' HTTP actions, along with an outbound network connection through Private Connect.

Custom Content Types Preview in Enhanced CMS Workspaces

The enhanced CMS workspaces now let you preview custom content types directly within your LWR site, eliminating the need to switch back and forth. This powerful feature allows you to preview content before or after publishing, and even visualize how it looks on different devices by switching between desktop and mobile views. 

Secure External Links in Salesforce CMS Content with Trusted URLs

To keep things secure, Salesforce enforces strict content security policies (CSP). This means when you link to an external image in your CMS content, you'll need to add the image's hosting domain to your organization's trusted URL list. 

Assign API Names to New Enhanced CMS Workspaces and Content

Enhanced CMS now supports the use of API names, offering developers a user-friendly method to identify new workspaces and content. When creating a new workspace, you must provide an API Name, ensuring clear identification. 

For content within CMS, specifying an API Name is optional; however, if left blank, Salesforce generates one automatically. It's worth noting that once saved (after Summer '24), the API name for a workspace or content item becomes permanent and cannot be changed.

Unlimited Paused and Waiting Flows 

Salesforce has eliminated the limit on the number of paused and waiting flow interviews your org can have. Now you can focus on building more complex workflows without worrying about hitting a quota. However, keep in mind that the overall available storage space in your Salesforce org can limit the number of paused and waiting flows. 

Successfully Debug Scheduled Flows 

Now you can bypass start condition requirements and directly debug your flows. Choose the specific record you want to test, allowing you to pinpoint issues more efficiently. Additionally, you can test multiple scenarios by selecting different triggering records to see whether a record runs.

Debug scheduled flows | Source: Salesforce

Relevant Results with Objects to Always Search in Search Manager

Now you can easily customize global search configurations for different user profiles in the search manager. This means users can find the information they need faster, without having to manually select objects each time they search. Additionally, this feature has transitioned from beta to general availability, although there may be some changes compared to the earlier version.

Secured Search with Search Manager

The updated Search Manager now offers field-level security to control access to sensitive data. Standard fields are already protected, but you'll need to manually secure custom fields containing confidential information. Be aware that there's a limit of 100 secured custom fields per object.

User Permissions and Access Summary

Salesforce has introduced a new feature that simplifies user access management. This enhancement allows developers to conveniently view the permissions, public groups, or queues assigned to a user directly from their detail page. 

With this update, users can save time and effort, eliminating the need to run queries or manually check each profile, permission set, public group, or queue.

Get user access and permission summary | Source: Salesforce

Know Where a Public Group Is Used

The latest feature, Public Group Access Summary, allows you to quickly find where a public group is used and the level of access its users get, all without running queries or clicking through multiple features. 

For a specific public group, you can view the sharing rules an object is referenced in and the list views it's shared with. Additionally, you can see the report and dashboard folders that the public group can access, as well as the other public groups it's included in.

Know where public groups are used | Source: Salesforce

Developer Updates to SOQL

Some updates have been introduced in this release for SOQL errors and functionality, which may impact existing code relying on previous errors and functionality.

Updated Functionality

Queries now support negative currency values. For instance:

SELECT Name FROM Invoice__c WHERE Balance__c < USD-500

Modified Error Codes

The error code MALFORMED_QUERY now supersedes the former D_QUERY_FILTER_OPERATOR.

Revised Error Messages

The following examples illustrate how error messages for invalid SOQL queries have changed:

1. Invalid SOQL Queries:

SELECT Id FROM Account USING everything
  • Old: unexpected token: '<EOF>'

  • New: unexpected token: 'everything'

SELECT ParentId, Value FROM InteractionRefOrValue WHERE ParentId IN ()
  • Old: unexpected token: ')'

  • New: unexpected token: 'ParentId IN ()'

2. Unexpected Token within Quotes:

SELECT annualrevenue, parentid FROM Account 
WHERE (isDeleted = false AND NumberOfEmployees != 100) 
OR (isDeleted = false AND Site = '999') 
AND ParentId = '000000000000000' LIMIT 50000 OFFSET 0
  • Old: unexpected token: AND

  • New: unexpected token: 'AND'

SELECT Id, HP_Lead_ID__c, ResponseId__c, Status, Status_Reason__c, 
Nurture_Reasons__c, Nurture_Type__c, Lead_Close_Reasons__c, FirstName, LastName, 
Name, Email, Phone, MobilePhone, Company, Street, City, State, PostalCode, Country, Region__c, 
OwnerId, owner.name, HPD_Opportunity_ID__c, ProductFamily__c, Products__c, 
Reseller_Account__c, Segment__c, Sub_Segment__c FROM Lead 
WHERE RecordType.name='Commercial' 
AND ProductFamily__c<>'IA – Software' 
AND Company LIKE '%GM%' OR Domain__c='gm.com'
  • Old: unexpected token: OR

  • New: unexpected token: 'OR'

3. Using NULL Literals in WHERE Clauses:

SELECT Id, Name, Country__c, State__c, City__c, PAN_Number__c 
FROM Account WHERE PAN_Number__c like NULL AND Name LIKE '%a%'
  • Old: invalid operator

  • New: unexpected token: 'OR'

4. More Than Two Nested Functions:

SELECT convertCurrency(calendar_year(convertTimezone(lastmodifieddate))) FROM account
  • Old: expecting a right parentheses, found '('

  • New: unexpected token: '('

5. Invalid Datetime Literals:

SELECT Id FROM Account WHERE SystemModstamp > 2020-12-12t12:12:00-25:00
  • Old: line 1:67 mismatched character '5' expecting set '0'..'3'

  • New: Invalid datetime: 2020-12-12t12:12:00-25:00

SELECT Id FROM Account WHERE SystemModstamp > 2020-52-12t12:12:00-05:00
  • Old: line 1:51 no viable alternative at character '5'

  • New: Invalid datetime: 2020-52-12t12:12:00-05:00

6. Using WITH SECURITY_ENFORCED Without Proper Apex Context:

SELECT Id FROM Account WITH SECURITY_ENFORCED
  • Old: SECURITY_ENFORCED not allowed in this context

  • New: rule soqlWithIdentifierClause failed predicate:

    {this.helper.allowApexSyntax() && this.helper.hasApexContext()}?

Conclusion

The Salesforce Summer '24 Features for Developers is a significant milestone, offering a comprehensive suite of enhancements across Data Cloud, Apex, LWCs, CMS Flow, and more. The updates empower developers to build more robust, efficient, and secure solutions. Whether you're integrating these updates on your own or seeking assistance from experts like Concretio for Salesforce development services, you can ensure your solutions are optimized for performance and future-proofed, keeping you ahead in the ever-evolving landscape of Salesforce development.

References

  1. New and Changed Items for Developers

  2. Get the Latest LWC Changes with LWC API Version 61.0

  3. Developer Updates to SOQL

  4. Unlimited Paused and Waiting Flows 

  5. Einstein Studio Legacy Tab Phased Out from Data Cloud

Related Reading

Let’s Talk

Drop a note with your queries to move forward with the conversation 👇🏻

Previous
Previous

Key Einstein Summer ’24 Release Features

Next
Next

Top Salesforce Flow Features in Summer ’24 Release