Join us as we sit down with Salesforce maestro Mohith Shrivastava to unwrap the Summer ’24 Salesforce release. We take a tour through the latest and greatest enhancements that are stirring up excitement in the developer community. From the seamless integration of Data Cloud with the Salesforce core platform to the introduction of static SOQL for Data Model Objects (DMOs), our conversation lights the path to simplifying the creation of test classes with the ability to mock SOQL queries.

Listen in as we uncover the revolutionary developments in Einstein Copilot for developers and how custom actions can now be extended and built using Apex, flows, or prompt templates. Wrapping up our discussion, we celebrate the quality of life improvements that are game-changers for developers.

Show Highlights:

  • Discussion on Data Cloud integration with Salesforce core and static SOQL for DMOs.
  • Introduction of the ability to mock SOQL queries, enhancing test class creation.
  • Insights into Einstein Copilot going GA, custom action capabilities, and improved analytics.
  • Monthly updates on Einstein 1 Studio features and quality-of-life improvements for developers.
  • Apex enhancements including cursors for async processing and deepened SOQL query levels.
  • New features for Lightning Web Components (LWCs) and enhancements to ISV packaging and APIs.

Links:

Episode Transcript

René Winkelmeyer:
Welcome to the Salesforce Developer Podcast. My name is Rene Winkelmeyer, and in this podcast I am hosting Salesforce developer advocates who are going to share insightful stories, new tips, techniques, and everything actually you have to know these days as a Salesforce Developer. In this episode, we’re going to talk about the Summer ’24 release. And my guest today is Mohith Shrivastava.

Mohith Shrivastava:
Hi, Rene.

René Winkelmeyer:
Hi, Mo. Great to have you back at the podcast and also talk about one of the most exciting things that are happening in summer, which is the summer release. I know it’s action-packed, so maybe you want to tell our listeners some of the key themes that they will learn about in this podcast.

Mohith Shrivastava:
Absolutely. Thank you again, Rene, for having me.

Summer ’24, again, is a packed release. There’s a lot of innovations that are happening here at Salesforce. The ones that I think I’m so excited to talk about today would be innovations that we are bringing to Salesforce Data Cloud, also to our Einstein 1 platform, including the enhancements to Einstein 1 Studio, which includes prompt builder, copilot builder, and model builder. And then, of course, we are also making a lot of cool additions to our platform, including Apex enhancements, LWCs that I know our developers love and use for building user interfaces, and, of course, APIs and developer experience.

René Winkelmeyer:
Seems we will have an exciting podcast. So let’s start maybe with Data Cloud. And when I skimmed through the release notes, there was a ton that really improved the developer experience with this release. What would you like to share with the audience about this?

Mohith Shrivastava:
Yeah, absolutely. So Data Cloud I think is quickly becoming one of those products, which is getting a lot of improvement in terms of developer experience. Those of you who are not familiar with Data Cloud, Data Cloud is what brings data integrations and harmonization capabilities to the Salesforce platform. So think about working on a large data volume project where you want to unify this data, unlock it through automation or through all the generative AI capabilities that we are giving, Data Cloud is the one to go.

So previously, Rene, one of the things was for Apex developers when they had to work with this Data Cloud, the APIs, I would say the APIs and the classes that we used to give them had a lot of gaps in terms of their actual developer experience they were used to when working with other objects. So one of the features that we have added now is support for static SOQL for Data Cloud data model objects. That is DMOs within Data Cloud. So what this allows developers to do is treat those Data Cloud data model objects just like any other objects in Salesforce. So just like your accounts and contacts, the way you write SOQL, you’re going to use the same SOQL syntax now to write within Apex for data model objects. Is it not cool?

René Winkelmeyer:
That sounds really cool. That also means you don’t have to use the CDP query connect class any longer starting the summer, correct?

Mohith Shrivastava:
That is correct. So the CDP query class, if you’re used to using that, you had to handcraft your SOQL. And it’s dynamic SOQL, so there’s no static compilation built into it. So it was a little more of a lot of, I would say, hassle for developers because you have to hard code these, create strings out of your SOQL, then validate that the SOQL works, and then put that string into your code. So you can see that there was a lot more effort in terms of developers trying to use this.
Now, with this static SOQL support, it’s so easy. All you need to do is just know the object names and the field names, create that SOQL, put it within your Apex class, and the compiler automatically statically analyzes it. So as soon as you type, you know if there are any issues with your SOQL. I think that’s a great developer experience.

René Winkelmeyer:
Awesome. Now, talking about great developer experience, I think one thing that was also added for developers, builder Apex that integrate with Data Cloud is actually mocking SOQL queries for the DMOs.

Mohith Shrivastava:
Yeah, and I’m really excited for all the Data Cloud developers, especially Apex developers using Data Cloud, because I wish we had this functionality even within our platform. But I think Data Cloud developers get this to use it first. They are the first to use this feature.
So with this feature, basically you can mark those SOQLs. So I was talking about SOQL support, so now you can mark the SOQL. So this makes it very easy to write your test classes without you having to actually execute this SOQL in the text context. So I think that’s a great feature. Earlier developers using this CDP query class, they had to come up with their own. It was lot of effort to actually mark these SOQLs. Now, there’s native support, so this is a great developer experience enhancement that is coming for all the developers.

René Winkelmeyer:
Are there any additional Data Cloud enhancements you would like to highlight? I know the list is really long, but maybe what are the next two or three top items that you think everyone should pay attention to this release?

Mohith Shrivastava:
Absolutely. So the thing about Data Cloud that I’m liking is it’s getting the metadata support and it is… Now, the experience for Data Cloud developers is getting consistent with the developer experience that are used on the platform. So some of the features that I would like to highlight, there is 2GP packaging support. This is great if you’re an ISV. Now, you have metadata types for different Data Cloud metadata types, so you should be able to package them, distribute them. So that’s a great support.

Also, I would say we are getting closer, or we are basically architecting Data Cloud so that it can seamlessly integrate into the Salesforce core platform. So Data Cloud enrichment is one way where you can really relate Data Cloud objects with Salesforce core objects through related lists. So now, we can see there is more object support. Previously, only leads and contacts were supported. Now, there is account object support, and also there are other objects that can be supported now.

Also, as I told you, you can look up those DMOs within your org. That means if you have a Data Cloud DMO and if you have a core object within platform, you can relate those to wire relationship. And I think this is a great feature, because think of all the big data use cases where you’re storing all the engagement data, which can be billions of rows of data, and which you cannot use platform for or earlier you couldn’t use platform for, now you can easily use Data Cloud to use all those engagements within Data Cloud, and then relate to the core objects within Salesforce CRM. So these type of features are bringing these two platforms together and also making our platform future-proof. That means you can think of any requirements and they will definitely fit into either Data Cloud or core platform. So that’s what I’m excited about.

René Winkelmeyer:
Awesome, cool. And I’m pretty sure in the blog post that will publish, I think, around May 7th will have a list of all those great, exciting changes around Data Cloud.

Mohith Shrivastava:
Absolutely.

René Winkelmeyer:
Now, I want to move on to the next topic, and you mentioned that already. Einstein 1 platform AI is also really important to us and our developer audience. And we had some recent releases and also some changes coming in summer. What are those?

Mohith Shrivastava:
Yeah, so first big change that I saw was Einstein Copilot. This provides the conversational AI capability to your Salesforce apps, as we know. So this has gone GA now, so that means our customers have good access to support. So I’m really excited for that.

Now, with the Copilot, Einstein Copilot, you know for developers what is interesting is we have these standard actions, but you as a developer can extend and build actions for your business use cases using Apex flows or prompt templates. So that’s great for you. Also, in this release I saw that we have improved analytics on it. So now, you can measure the adoption and usability of this Einstein copilot. So I’m really excited for Einstein Copilot going GA. That means our developers will get proper GA support for this product.

René Winkelmeyer:
And actually, small note, if you are visiting a user group, for example, we are currently conducting a lot of hands-on activities with user groups around the globe. So, please check in with your community group leader if they’re already on the list. I think that’s something that’s also really key for this new technology. It’s not only we’re bringing GA, we’re also bringing it to you so that you can experience directly hands-on, which I think is also really amazing.

Mohith Shrivastava:
Absolutely. Yeah, I’m looking forward to some of these workshops.
Also, I would like to bring up Prompt Builder. We know that Prompt Builder is a big part of this whole Einstein 1 Studio because it lets you version your prompts, use these prompts within your application, and add those large language model capabilities to your application, making it smarter. So Prompt Builder is getting a very important feature that I think is worth mentioning. So previously, the way you ground the prompts is using data from your objects using these merge field syntax that we had, or you could ground through flows or Apex.
A very interesting feature that I saw is going GA with this release, it’s called record snapshots. So what these record snapshots will allow you to do is, instead of grounding individual fields, you can say, “I want to ground my prompt with a record snapshot.” So with this record snapshots, your prompts are automatically grounded with data available on the user’s page layout at that time. So think about, Rene, that we used to write a lot of merge fields. We used to have a lot of these merge fields on our prompts before. It used to get lengthy, too, when you used to ground them with that. I think this is a great feature where you can say that, “I want to ground with a record snapshot directly,” and the platform automatically takes care of all the grounding and the feed information for you automatically.

René Winkelmeyer:
Sounds like really a great feature because when, and remember, there’s been building my first prompts, I was like, “Cool. Now, I have to think about an additional area as my custom objects enhance and change for specific users, or for the different profiles and permissions, that would have also to maintain the prompts.” So I think it really, snapshots, as you described them, really solve this gap that I have to not maintain even more, but actually it gets automatically, which I think is very, very key.

Mohith Shrivastava:
Absolutely. And I just want to remind that these Einstein 1 features are Einstein… Studio Einstein 1 Studio, which comprises of all these tools. These get updates every month, unlike our other products, where we release based on the release cycle. These gets every month. So keep an eye on that monthly release notes because there will be features that’s going to be shipping every month.

René Winkelmeyer:
That’s a very good call-out because that is a change compared to the three seasonal releases that our Einstein features as well as Data Cloud features are getting their really monthly updates. They’re just getting better every month. So you just don’t have to wait for the next season, but also you have now to keep track of what’s coming that you can really adapt to the new changes. Very cool.

Now, we talk about all the things Data Cloud Einstein, but there’s also a lot around core platform happening. So what are your highlights there about?

Mohith Shrivastava:
Yeah, there is, again, a lot of enhancement that are happening. The blog will have a lot of details around that. I would say there are a lot of quality of life improvement features that I like to call it out for Salesforce developers, especially Apex developers. One of the features that I would like to highlight here is Apex cursors. I think this is one of my favorite features, this release. I’m really excited about Apex cursors, because previously we had this Batch Apex and Curable Apex. Each of them had its own pros and cons.
For example, Batch Apex, unlike Curable, we couldn’t chain them. Curable, it’s where you had to write your own implementation if you had to use it for a high, large data volume processing job. Apex Cursors sits in between these two. It’s in beta feature, but it’s going to solve a lot of these pain points that developers used to have for async processing large data volumes. So, really excited. Look for that in the release notes. There are code examples for that.
SOQL is getting a lot of updates. You can now go five-level deep when you’re doing your SOQL queries. Previously, it was only supported in REST APIs. So this is great feature. That means developers who are working with these nested data structures, they’ll find a lot of value in this feature because they don’t have to write a lot of code around it. They can just put everything in a SOQL.

There are a lot of features like that, small features like that. There are a lot of features and enhancement that are coming up. For example, the exception email is now going to have the organization name, username, and my domain. I think this is something that our users were asking, because it used to have only org ID, and our developers used to figure it out by going to the org ID and they had to do a lot of manual work here.
So these are some of the features that I would say for Apex that have been enhanced. There are a lot more. And just in the interest of the time, I would say go through the blog that we will have on our developer.salesforce.com or go to the release notes. And of course, we’ll keep creating some content around some of these features.
LWC, that is another one of my favorite areas. LWCs are continuously getting a lot of features from the past release itself, some of them worth noting. This release will be one of the features that our developers have been asking for, is how can we make our LWC component available via the URL so that it’s very easy to navigate. Previously, they had to use Aura component, wrap this LWC within that component, but now there’s a native support within LWC using lightning URL addressable.
So I’m really liking how we have closed this gap between Aura and LWC now. I can rarely think of use cases now that requires Aura components. So there’s a lot of additions like that. Even for developers using lightning console apps, there are APIs. And also, component versioning is also helping. If you remember, Rene, that one of the things that we promised with LWC was we are going to take LWC very close to the native web components, the web components standards that comes with the browser. So I finally see that happening with every release. So this release also, there are a lot of features, and that make it very close to the native web components support.

René Winkelmeyer:
Which I think is really great. And just looking back on what we heard last year at Dreamforce, and also at Trip [inaudible 00:15:47] last year and this year, that there are some gaps still existing in the lightning web component framework compared to the previous Aura framework because we take it really seriously to ensure that we have to close these gaps. And now, we see from release to release the changes and the adaption that people finally can stop building with Aura, just because we no longer have these gaps, which is really great. There are many more things coming through the core, like changes in setup and so forth, but I think that’s really key that we are now delivering on the promise to make sure you have a gap, we’re going to close it. I think that’s super cool.

Mohith Shrivastava:
Absolutely.

René Winkelmeyer:
Anything else you would like to point me to, as someone who has to dive now into the summer ’24 release knows that should pay attention to? I think it looks like that I have material for a couple of days to go through and [inaudible 00:16:47].

Mohith Shrivastava:
Yeah, there’s a lot of features. Again, I would say if you’re an ISV, look around the packaging enhancements because they look really awesome, because I think they’re going to improve your DevOps pipeline because we are making them faster with icing validations and a lot of features around performance enhancements. Also, I would say there are a lot of new features that we have been shipping for APIs, so take a look at that release notes.
One of the things that I saw was, finally, now you will be able to use updates. So I think we only had up certs before. Whenever we had to use external IDs, we had to use these up certs in our API. So I think now, that problem is solved because now you can update and record using the value of its external ID with the update only parameter in REST API. I think that’s good, because no more you need to use up cert kind of thing. You can just use update.
And there are a lot of improvements that are happening for Salesforce Connect and external client apps, which I think is great. Those of you who have not heard of external client apps, think of it as a modern version of connected apps. So those enhancements are here. So I think our release notes have a lot of information around that. And also, we have synthesized this with a helpful blog, so hopefully these features are going to improve your quality of life as you’re building on Salesforce platform.

René Winkelmeyer:
Awesome. Again, I think that sounds like a lot of material to digest and to work through. And when I just see the draft of a blog post that will go out really soon, it’s just the small things sometimes that really matter to, as you said, bring quality of life to the developer. And this really is actually full of those to just make it easier for us as developers, which is pretty great.
Mo, thank you very much for being my guest today on the podcast. And I would say in the next couple of days and weeks, if you’re listening to this, listen to Mo, read his blog post, and just enjoy all the changes and new additions that we bring to you as a Salesforce developer.

Mohith Shrivastava:
Awesome. Thank you so much for having me today.

René Winkelmeyer:
If you’re still here, thanks for listening and head over to developer.salesforce.com/podcast to check out all our episodes. And also, check out the show notes because that’s where you will find all the great links to provide you more information and insights about all the topics we talked about today. Bye-bye.

Get notified of new episodes with the new Salesforce Developers Slack app.