Mohith Shrivastava Uncover the future of Salesforce development with insights from Mohith Shrivastava in our latest episode, where we dissect the Spring ’24 release highlights. From the time-saving beta feature Scratch Org Snapshots to the sleek new Null Coalescing Operator and the UUID system class in Apex, we’re unpacking tools that promise to elevate your coding experience to new heights. These updates not only simplify workflows but also signify Apex’s evolution towards contemporary programming standards.

In this episode, we discuss the substantial enhancements within Lightning Web Components, like the now widely available Workspace API and the transformative Lightning Record Picker component. We also say goodbye to tools such as the Ant Migration Tool and Workbench. Meanwhile, Salesforce Data Cloud is upping its game with new features and updates that integrate data with unprecedented ease. 

Don’t miss out on the excitement for what the future holds for Salesforce releases — join us for an episode brimming with expert knowledge and tips straight from one of Salesforce’s very own developer advocates.

Show Highlights:

  • Apex language enhancements, including the Null Coalescing Operator for streamlined null checks and default value assignments and the UUID system class.
  • Updates to Lightning Web Components (LWC), along with performance improvements through component versioning and native JavaScript APIs.
  • Retirement of the Ant Migration Tool in favor of Salesforce CLI for deployment and org management.
  • Salesforce Data Cloud advancements with new features for data integrations.

Resources:

Episode Transcript

Mohith Shrivastava:
I am very excited about a feature called Scratch Org Snapshots. It’s going to make working with scratch orgs a lot more easier.

Julián Duque:
That is Mohith Shrivastava, Lead Developer Advocate here at Salesforce. And I’m Julián Duque, your host for the Salesforce Developer Podcast. And here at the podcast which are stories and insights from developers, for developers.
Today we’re going to have a special episode where I will be talking with Mo about the highlights for developers in the Spring ’24 release. Well, today we are here with Mohith Shrivastava, Lead Developer Advocate at Salesforce to talk about the Release Readiness Live and the Spring ’24 Release [inaudible 00:00:54] platform, what it’s there for us, the Salesforce developers. Thank you very much, Mo, for joining us.

Mohith Shrivastava:
Yeah, thanks so much for having me again, Julián. Happy New year to you and all our listeners.

Julián Duque:
Happy New Year to you as well. This is always exciting to know what’s available for us developers on this release. You know, for those new to the Salesforce ecosystem, we have three release per year. We have Spring, we have Summer, and we have Winter, and today we are going to be discussing all of the features that are going to be available for the Salesforce platform for Spring ’24. So, Mo, let’s talk about that feature that you are most excited about.

Mohith Shrivastava:
Yes, so I’m excited about a feature called Scratch Org Snapshots. Now this feature is in beta. The reason why I’m excited about this feature is because I have been an ISP developer myself, and working with scratch orgs, specifically when you’re building on top of multiple packages or you have a lot of configurations as a prerequisite for building your Salesforce apps, it’s always a hassle to install all these packages into your org, configure them. You might script it, but it takes some amount of time to get started with your scratch orgs every time. And I’m excited about this beta feature because it’s going to definitely make development and testing easier with scratch orgs going forward.

Julián Duque:
Nice. And how this looks like? It’s, the snapshot is being created through the setup UI, or you’ll need to use the CLI for this? How this work?

Mohith Shrivastava:
Yeah, so let me explain a brief of how this works. So to start with, what you do is you create a snapshot. So a snapshot is a copy of all of the data, metadata and packages in your org, and all of the configuration that you have done to the scratch orgs. So at a specific point in time, think of it as you’re freezing that org. Right?

Julián Duque:
Yes.

Mohith Shrivastava:
So you create a snapshot. So you can create, I think, five active snapshots per day and then you can reference that snapshot to create scratch orgs. So it’s done through the CLI. And also there is an API if you have to go through the API route, but we don’t recommend, we generally recommend Salesforce CLI. Command, there’s going to be a command actually that you can find in the documentation that I’ve linked in the blog post. You can read this blog post on our developer website, Salesforce Developers Guide to Spring ’14 Release, and I have linked to the documentation Scratch Org Snapshots, and they tell you the exact CLI commands that you need to create that snapshot or list all of these snapshots. And then it also shows you how you can use this snapshot to create your scratch orgs.

Julián Duque:
Nice. And these snapshots can be shared with anybody from my team or those are just for me?

Mohith Shrivastava:
No, it can be shared across the team. That’s the beauty of it actually.

Julián Duque:
That’s a great, great feature for sure.

Mohith Shrivastava:
Absolutely. And I mentioned data, you see I also mentioned data there. You can basically have a snapshot with packages, metadata and data, and all other configurations. Imagine all the settings that you do to your scratch orgs. I think data is critical because, to see data into the orgs, you have to write additional commands and scripts. What you can do is you can have a scratch org with all of your test data and then basically from that point you can create a snapshot and then all of your developers just create a scratch org that gets all of these packages, metadata and data, and all of the configurations that you need. Saving you so much of time.

Julián Duque:
Definitely. I can see that it will save a lot of time. Well, we are developers, we love always knowing what’s new with the languages we love. So is there going to be any new addition to Apex in this release?

Mohith Shrivastava:
Absolutely. Apex is getting some really important enhancements. So my favorite has been, one of the enhancements, actually, it’s improving the quality of life for all of our developers. The feature is called Null Coalescing Operator, and Julián, you might know this from other languages, like JavaScript already has this nullish coalescing operator, and I think this is similar here in Apex. So if you have verbose null checks in your code, it’s going to make it very easier to use this new operator.

Julián Duque:
And it’s also great, at least in the JavaScript ecosystem, to define values.

Mohith Shrivastava:
Yes.

Julián Duque:
Default values for variables.

Mohith Shrivastava:
Absolutely. And this is what it does in Apex too. You can say, you can just write an expression basically, using this operator, and it can set the default value based on whether the value is null or not. If it’s null, it’ll set the default value.

Julián Duque:
Nice. So every release we are getting more modern. I like this.

Mohith Shrivastava:
Yes, absolutely.

Julián Duque:
Any other features to mention in Apex world?

Mohith Shrivastava:
Yeah, so there is a UUID system class that got added and I think this is going to be really interesting addition. I know a lot of developers have requested this. So this UUID class generates version for universally unique identifier directly in Apex. So we had Salesforce IDs, those are great, but sometimes you still need to tag a record or maybe in memory a process with a very unique ID. An ID which is universally unique. And UUIDs are very common, it’s there in all the modern languages. Apex has it now, so I’m excited to see what developers do with this. I think this is going to help all the developers who are using Apex for integrations.

Julián Duque:
Exactly, yes. I was thinking, to define an external ID or share a created Salesforce object with a third party service and using that as the external ID for the relationship. It seems very, very good feature also as well for what you mentioned.

Mohith Shrivastava:
Yeah, and I think it’s going to help all the developers who use something like Heroku Connect.

Julián Duque:
Yeah. Definitely.

Mohith Shrivastava:
Because you can now have an external ID created in Salesforce and then sort of map that to the Postgres database there directly.

Julián Duque:
Nice. And most of the other programming languages I work for, they have a native version to create UUID. So this is something that was missing in Apex and now we have it.

Mohith Shrivastava:
Absolutely.

Julián Duque:
Awesome. Any other thing you want to mention here, or we continue?

Mohith Shrivastava:
Yeah, yeah. So I have documented all other features in this developer blog, the Salesforce Developer’s Guide to the Spring ’24 Release. The other features that I would want to mention, which are in developer preview actually, so I just want to remind all our listeners that developer preview features are for feedback and they can share all of their feedback via Trailblazer community. And again, the link for that is shared in the show notes and also in the blog. So there are a couple of very interesting Apex features that we are looking for feedback and you can enable them now in your sandbox and play with them and see if you like them. So one of them is zip writer System class. Again, zip writer, writing zip files or creating these zip files or unzipping, it requires some effort actually.
And we didn’t have anything natively in Apex. So there is a zip writer class now, you can take a look at that and look at that class in your scratch orgs, see if you like it, see if there are any feedback that you would like to let us know. We’ll be happy to take them before it kind of moves into further beta and GA state. And another very interesting class that we added is called Formula Evolve class. So typically our developers use formula fields in Salesforce in the backend, in the data model itself. Now sometimes you don’t need that to be at the database layer. You might need that formula only within your Apex runtime, so you don’t have to make use of that database field. So we are adding this feature called Formula Evolve class. So what developers would be able to do is write formulas within Apex and then use that to evaluate the Apex code. And you can write any formula that you are familiar with already on the platform. And this way you don’t have to go back to the database CPU.

Julián Duque:
I remember this feature, we mentioned it on the Salesforce Developers AMA with Daniel Ballinger.

Mohith Shrivastava:
Yes.

Julián Duque:
If you haven’t seen that, please go ahead to the YouTube Salesforce Developers channel and there you can find that AMA where a lot of different Apex features were discussed as well.

Mohith Shrivastava:
Yeah, any feedback here will be welcomed. I think this is a great feature for ISVs to build those formula builders using custom metadata. So we are looking for feedback before this becomes generally available in further releases.

Julián Duque:
Beautiful. Now let’s go to what I know most, which most people know that I’m a JavaScript person. Let’s talk about the LWC. What is new in LWC for the Spring ’24 Release?

Mohith Shrivastava:
Yeah, a lot of interesting features. Few we would go through here in the podcast, but again, look through that blog that will use it in our show links here, to learn about all of them. They have direct links to the release notes. So one of my favorite features in LWC that’s going GA this release, generally available. This release is Lightning Web Components workspace API. Now console apps are very popular. Previously you couldn’t use lightning web components on these console apps because there was no API, so our developers had to use our components and with our components it has its own programming model and it’s not so model-like lightning web components that we all love with all the ESX fancy syntax and all the performance gains that these Lightning Web Components provide. So now this Lightning Web Components workspace API is generally available. We have a lot of LWC recipes for them in our LWC Recipes app. So building console apps with Lightning Web Components is going to be fun going forward.

Julián Duque:
Nice. I also saw that the Lightning Record Picker is also going GA on these reviews.

Mohith Shrivastava:
Yeah, great. Yeah, great that you reminded me of that. So the Lightning Record Picker component, I think it’s going to be a game changer in how you design your screens. So if you have to search for records within Salesforce, you can now use this record picker. It’s flexible, you can add objects from the backend and handle events [inaudible 00:13:21] events on them. So yeah, this is going GA. We already have a blog post for all of the developers looking to learn more about this. I’ve linked this blog post again in the show links, also in the blog, so go check it out. Again, it’s going GA, generally available, so hopefully that’s going to save you a lot of time whenever you need to create a record picker for Salesforce application.

Julián Duque:
Yeah, that’s what I know of the existence of these new component, because of that blog post. So again, go ahead, check it out and check the show notes and obviously most blog posts about all of the features that are coming on the Spring ’24 Release. Anything else worth mentioning on LWC?

Mohith Shrivastava:
Absolutely, absolutely. So there are number of, I would say, under the whole changes that I think is exciting and also at the same time going to boost the performance for LWC altogether. So the first thing that I want to mention is, or I want to remind, that we have started versioning LWC components like any other Salesforce metadata.
So what this means, Julián, is let’s say that you upgrade your API version of the LWC component to 60, which is the API version in Spring ’24, there are some things that is going to perform better. So for example, so you know the spread and rest syntax as a JavaScript developer, right?

Julián Duque:
Mm-hmm.

Mohith Shrivastava:
Now, we were not using the native JavaScript APIs for that. We had our own Babel transpiler for that. And the reason why LWC team had to do this way was because we had to support all the legacy browsers like Internet Explorer at that time that did not have this capability of JavaScript to use the spread and rest syntax. So now we are getting rid of all those code that we had in place as a workaround. So all that transpilation is going away and we are basically moving towards the JavaScript standards. So because we no more have to support these legacy browsers, so this is going to boost the performance because you’re going to using the JavaScript APIs here right away.

Julián Duque:
Definitely, embracing evolution. Love this, love this.

Mohith Shrivastava:
Yes. So I’m really excited. Also on the similar lines, there was also another feature, synthetic shadow DOM. So you know how native shadow DOM works. So native shadow DOM is the browser or the web components, one of the specifications, and the specification encapsulates all the CSS and the component for you from other components on the page. So some browsers again did not have this native DOM support. So we had to use the synthetic shadow DOM previously for legacy browsers. So now what we have started to do from last release is get rid of this synthetic shadow DOM for a lot of our base components like, let’s say, lightning-input, other base components that we have created to use that native shadow DOM of the browser. Because again, we don’t have to support those legacy browsers anymore because they’re end of life, for example, Internet Explorer. So we’re really excited about the future here and how we are moving towards standards like native shadow DOM or using the native JavaScript APIs.

Julián Duque:
Wonderful. Okay, let’s move to talk about development tools and development experience. Is there anything worth mentioning for this release?

Mohith Shrivastava:
Yeah, so one thing that’s different for platform development tools, and I want to remind this to our listeners, is these tools get update every two weeks. Like Code Builder or Salesforce CLI or even the Einstein for Developers. So every two weeks we upgrade the product and there are some features that we are still finalizing again. So again, come back to this document to see what those features will be. We’ll keep updating them for you. So a couple of features that I think are going to come soon, again, safe harbor, because I think this is not at hundred percent finalized, we’re still working on them, is Einstein for Developers is going to get test code creation capability.

Julián Duque:
Oh, nice.

Mohith Shrivastava:
Yes, that’s going to be exciting, really looking forward to that. And then inline code completion using prompts. So till now they had to use this Einstein sidebar to write all of their prompts, now you can just write inline prompts and it’s going to start giving you suggestions, code snippets, based on those prompts.

Julián Duque:
Definitely another game changer there.

Mohith Shrivastava:
Absolutely. And then I want to remind our listeners that some things are being retired for good, I would say. One of the things that we are retiring this release is Ant Migration Toolkit, which was primarily used for deployments. So this has been their legacy. It’s been there from last 15 years or so. And the problem with Ant Migration tool is it only supports deployment and now with Salesforce CLI, it supports everything, not just deployments like retrievals, org management, packaging. So there’s a lot more things that Salesforce CLI offers and we don’t want to maintain two different tool sets.
So that’s why we are sort of retiring Ant Migration tool. So there is a blog post there, again, on our developers channel. We have also linked it here in the show notes and also in the blog post, on how you can migrate your Ant Migration Toolkit to use Salesforce CLI. It’s pretty simple actually. And Salesforce CLI is easy to use, more flexible than Ant Migration Toolkit, you don’t have to write a lot of XML scripts and stuff like that. There are commands that have automated all of these. So be on the latest, is what we recommend.

Julián Duque:
Yeah, the message here is, modernize, migrate ’til you see the latest version of the Salesforce CLI and also embrace Code Builder and the modern developer toolings we are offering to you.

Mohith Shrivastava:
Yeah, and a reminder on that is also for Workbench. So I know there is a tool called Workbench that’s open source. I just want to add that it is legacy and definitely not maintained by Salesforce. We never maintained it, it’s just open source. It somehow got good attention, but we have decided to spend all of our energy on Code Builder and Salesforce CLI. So we recommend that, move with the change or embrace this change and use Code Builder. Code Builder is awesome. It’s available in your orgs, use code Builder or use Salesforce CLI. Workbench can have security issues and security vulnerabilities and we don’t maintain that anymore.

Julián Duque:
Nice. And also for calling APIs, you can use our Salesforce Developers collection that it’s deployed and maintained in Postman. That’s another one that you can use for API testing.

Mohith Shrivastava:
Absolutely.

Julián Duque:
Okay. Now let’s move to one of the two main protagonists for Salesforce lately, which are Data Cloud and Einstein. So first let’s talk about Data Cloud. Is there something worth mentioning there?

Mohith Shrivastava:
Yeah, absolutely. Data Cloud is, data is powering this whole AI revolution and by now I think everyone should be familiar that the companies which will have their data unified are going to be in great shape, to use all those data for machine learning or grounding their prompts for generative AI, to get the maximum benefit out of generative AI. So I think Data Cloud for us is, I think it’s a great innovation and what I love about Data Cloud is that, as it is maturing, every release… So first of all, Data Cloud gets, I think, released every month, unlike other products where we release for pre releases, Data Cloud gets releases every month, there’s some release that’s happening on Data Cloud, it’s one of the fast moving products here at Salesforce, and there are a lot of exciting updates that are happening.
And as I said, I love Data Cloud because what I’m liking is, most of the features that are getting built is not something new. I mean, it’s something that you’re already used to, so we are reusing all the technology that you know. So even as a Salesforce developers, there is some learning curve of course, but you can still use things like Apex and flows, and record-triggered flows and whatnot, declarative UI and stuff. So that’s what I love about Data Cloud. It’s becoming very close to the platform. So the features that I’m excited this release is, the first one that I’m pretty sure, Julián, you will be excited to know is, you will now be able to use Salesforce Flow to send data to the data cloud. So this flow uses the ingestion API to send data to the data cloud.

Julián Duque:
Oh, this is great integration.

Mohith Shrivastava:
Yeah, I remember you creating some blog post on showing folks on how to do this through Postman.

Julián Duque:
You’re doing this pretty much by hand.

Mohith Shrivastava:
Yeah, yeah, exactly. So I think you still need to create those YAML files for connectors, for definitions and stuff, but insertion that can be done through the flows now, whether it’s screen flows or record-trigger flows, you can insert and that automatically has the Ingestion API built into it. So that’s going to be exciting, in my opinion.

Julián Duque:
I imagine it’s taking care of the callout from flow to the Ingestion API and you don’t need to do that call out by hand.

Mohith Shrivastava:
Absolutely, absolutely. And again, it’s not just callout, right? I mean, you have to think about authentication and all those things. So this is great. The other thing I would like to mention is last release we launched Data Cloud-triggered flows. So there are demos already and we show how to use Data Cloud-triggered flows, just like record-triggered flows, but it’s on the data lake objects and sorry, it’s on the data model objects in Data Cloud. So just a reminder for our listeners that Data Cloud has its own objects like data lake objects and data model objects. And these objects are pretty different than how the objects in Salesforce, because these can have billions of rows in them. They have this big data power in them.

Julián Duque:
I was also waiting for this feature. I remember in TDX ’23, we did a hack around this to be able to trigger a flow using data cloud information, and it wasn’t native back in TDX.

Mohith Shrivastava:
I remember we [inaudible 00:25:27] platform events.

Julián Duque:
Yeah. Platform events like deserializing JSON using Apex. It was fun though, but I prefer to have native support instead of writing my own solution for this.

Mohith Shrivastava:
So Data Cloud-triggered flows was something launched last release itself, but this release we are adding the capability to easily debug them.

Julián Duque:
This is wonderful.

Mohith Shrivastava:
Yeah. And then I’m also excited about all of the AI integration with Data Cloud.

Julián Duque:
Oh, tell me more about that.

Mohith Shrivastava:
Yes, so one of the features that I am really interested to explore more and more is this functionality of data graphs. So a data graph basically allows you to retrieve the entire customer 360 information in one single JSON object. Like imagine customer’s data profile and then the orders linked to the customer, all the order line items, assets, whatnot. So a data graph can be constructed now. So I think the real importance of this data graph is, if you are building or if you have heard of generative AI large language models, you know that these large language models can generate better responses if you provide better grounding or better context with the data, with your private data. So of course you want to mask all your private data and remove all the PII, etc. Or mask it, right? So data graphs actually generate that information automatically from Data Cloud. So then you can use that data graph to provide that contextual grounding data to the large language model so the responses are improved.

Julián Duque:
This is super powerful. And I love that now we are getting more integration with AI and basically AI is becoming also like a first-class citizen in our products.

Mohith Shrivastava:
Yeah, yeah, exactly. So Einstein Studio is another product, basically. It allows you to, we showed Einstein Studio in the last release as well, you can check out the Release Readiness Live from last release. And you’ll see that Einstein Studio allows you to bring your own custom model from, let’s say you have your own custom model on AWS, you can easily bring that into Salesforce with clicks and then use within Salesforce flows. This is so powerful and there are a lot of demos already on our YouTube channel and we showed some live coding sessions with Daniel. So there are a lot of sessions on that. So if you have already created these ML models on let’s say on Google Vertex or Amazon SageMaker, something like that, right? You can reuse them in Salesforce. That’s so cool. I think we are also adding Databricks to the game as well. So I love how open we are, allowing to reuse whatever our customers have built within Salesforce workflow.

Julián Duque:
Nice. We are running out of time, but I don’t want to leave the last topic behind, which is APIs and integrations. So can we mention the most important features for you on this category? And also remember, all of them are going to be well-documented in the blog post that Mohith already published, but give your opinion about, for you, the most important features around APIs and integrations for this release.

Mohith Shrivastava:
Yeah, absolutely. There are a number of features, and again, everything is documented as you said, Julián, but how about I mention two or three quick things that I think are going to be awesome.

Julián Duque:
Yes, please.

Mohith Shrivastava:
Like Lightning [inaudible 00:29:32]. So one of them is GraphQL APIs. These APIs continuously are improving. Now we have increased the upper limit for retrieving the [inaudible 00:29:43] to 4,000. Previously it was 2000 rows at that time. Now you can go up to 4,000 on them. Also, you can ask for returning these field labels in your local language. I think this is great. So that’s about the enhancements to the GraphQL API.
Also named credentials that you would’ve known that’s used to make sure that you integrate with your external system securely. We maintain all the keys for you. That’s getting packaging support, more formula functions, improved experience when you want to clone them in your sandboxes or when you have to migrate them to different orgs, so that’s exciting. The other feature that’s really worth noting is the Pub/Sub APIs are getting some improved event subscription tooling objects. So what this will do is it will make it very easy for our customers to subscribe to these platform events or change data capture using this Pub/Sub API, which uses HTTP2.0 Client.

Julián Duque:
Nice.

Mohith Shrivastava:
Yeah. And then finally, last but not least is, we now have a Salesforce Connect adapter. We call it a Salesforce Connect adapter for SQL. For Snowflake as well. So if you use Snowflake and if you have data there, you can just execute all those SQL queries within Salesforce, your data will still be in Snowflake.

Julián Duque:
All of these features are great. I always love waiting each release to see what’s new, where are we evolving, what tools and features are we giving our developers to continue building on the Salesforce platform. And thank you very much, Mo, for guiding us through these release. Where can we learn more about the Spring ’24 release?

Mohith Shrivastava:
Yes, that’s a great question, Julián. So we have this blog post on our developer.sales.com/blogs. Then we have this post created called Salesforce Developers Guide to Spring ’24 Release. We’ll keep updating because there are a lot more features that’s going to release in this month as well. So we’ll keep adding them here. So think of this blog as a hub. And also I wanted to remind that there’s going to be Release Readiness Live webinar for developers. This is happening on 8th of February. We’ll soon have the links again for them in our blog post. And really looking forward to show some of these in action if you’re a visual learner, through our demos. So really looking forward to that. And finally, last but not the least, look for the official release notes. They have a lot more features that’s going to be coming up.

Julián Duque:
Thank you very much, Mohith, for all of this information, and looking forward also for the next release to see what’s on the table for us, the Salesforce Developers.

Mohith Shrivastava:
All right, thank you everyone.

Julián Duque:
And that’s it. If you want to learn more about this show, head on to developer.salesforce.com/podcast where you can hear all the episodes and read the show notes. Thank you everybody, and talk to you the next time.

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