Listen in as Mohith Shrivastava, Lead Developer Advocate at Salesforce, and I unwrap the most anticipated features in the Winter ’24 release. We share our excitement for Dynamic Components in LWC, a feature that Mohith believes will revolutionize the game for ISV developers. We explore how Dynamic Components can store component definitions on the backend, allowing developers to render components at runtime and use dependency injection.
We continue our exploration with a look at how developers can use LWC recipes and the GraphQL wire adapter to create powerful table or grid views on the client side. The GraphQL APIs now support mutations and offer the potential for developers to use custom elements to incorporate third-party components and web standards for reusability. Plus, we discuss new mobile capabilities like document scanning, NFC, and biometric functionalities.
We shed light on how DataWeave, a MuleSoft data transformation language, can be used in Apex and the improvements made to Queueable Apex. We also look at Code Builder, a browser-based development platform that aims to make developing Salesforce applications more straightforward than ever.
Tune in and get a head start on what’s coming in the Winter ’24 release!
Show Highlights:
- The exciting features in Salesforce’s Winter ’24 release, focusing on the game-changing Dynamic Components in LWC for ISV developers.
- New mobile capabilities in the Winter ’24 release, including document scanning, NFC, and biometric functionalities.
- Examination of the Winter ’24 DataWeave and Apex enhancements.
- Overview of new features for Salesforce developers in the Winter ’24 release.
- Introduction to Salesforce Code Analyzer, a new VS Code extension, and how it improves the quality of code reviews.
Links:
- Mohith on LinkedIn: https://www.linkedin.com/in/mohith-shrivastava-9a36464a/
- Blog: The Salesforce Developer’s Guide to the Winter ’24 Release
Episode Transcript
Mohith Shrivastava:
It’s going to be hard to pick one up, but looking at all of the features, I would say the most exciting one to me is dynamic components in LWC. That’s really exciting. The reason is I’ve been an ISV developer for a long time, and I know that this is going to be a real game-changer for ISVs out there.
Julián Duque:
And that is Mohith Shrivastava, lead developer advocate here at Salesforce. I’m Julian Duque, your host for the Salesforce Developer Podcast. And here in the podcast, we share stories and insights from developers, for developers. Today, we are going to have a special episode where I’ll be talking with Mo about the highlights for developers in the Winter ’24 release. Mo, thank you very much for joining us on this special edition of the Salesforce Developer Podcast. Today we are going to be talking about the Release Readiness Live for Winter ’24. Mo, how are you doing?
Mohith Shrivastava:
Hey, Julian, thanks for having me. I’m doing great. Really excited for the Dreamforce season, and also for Winter ’24 release.
Julián Duque:
Of course. There are a lot of exciting features. I’ve been going through the release notes and, oh, my god, there is a lot of new things, especially for us developers. So why we don’t use this time to go through all of those new things in Apex, LWC, platform API, so our developer audience can start improving their applications and building on top of platform?
Mohith Shrivastava:
Absolutely, Julian, absolutely. Really super excited to be here and talking about all of the innovations that’s going on. On Apex, LWC, as you said, a lot of cross-cloud innovations as well, and APIs, of course, and developer tooling and platform developer tools. I’m so excited to see this release rolling to our customers. And of course, for our developers, I’m too excited, because that’s going to let them solve some of the problems that they have not been able to work around.
Julián Duque:
Okay. Let’s start on a high note. Which is the most exciting feature for you on this release?
Mohith Shrivastava:
It’s going to be hard to pick one up, but looking at all of the features, I would say the most exciting one to me is dynamic components in LWC. That’s really exciting. The reason is I’ve been an ISV developer for a long time, and I know that this is going to be a real game-changer for ISVs out there.
Julián Duque:
Okay, so let’s expand a little bit more about dynamic components. What are those?
Mohith Shrivastava:
Yes, yes, definitely. Dynamic components means when you actually have a component on a page, you pretty much use today’s standard definition or you pretty much know that this is the component that you have to render. And you probably indicate that in your HTML markup. What dynamic components allows us to do is store that component definition on, let’s say, backend in custom metadata. So I can have a custom metadata where I can store that, hey, these are five different components that I want to render based on user behavior.
So imagine, Julian, that you have a custom metadata where you’re storing different chart types, like for example, bar chart or pie chart or any other chart types. And then you have a picker for a user on your Lightning Web Components where they can select the type of chart they want. And based on that, you are dynamically rendering it. So previously you could do that, kind of, but it was hackish, so you could write lot of if-else templates. But when you have hundreds of these, how much scalable it can be? It’s not going to scale. You are going to repeat a lot of code. And upfront you’re loading all of these components, so there’s going to be a lot of performance impact if you have too many components. Dynamic components allow you to render components at runtime, so also allows our developers to do things like dependency injection, which previously was not possible.
Julián Duque:
Yeah, I feel the pain, I’m doing exactly that same thing today with a single-page application. There is a lot of logic in the view that I don’t want to manage in the view. I want to have a different way to manage this logic, especially when there are components that are very similar to each other, but I need some sort of way to be able to render those depending of logic that comes from the backend and not giving that management to the view. So now I see why this is a great, great feature. So this is coming in Winter ’24 as a GA?
Mohith Shrivastava:
Yes, exactly. So this is going to be a GA in Winter ’24 release, and we’ll have a lot of content. I know the release notes do not have code examples and our community has been asking for some of them. Join us at Release Readiness Live, streaming on Salesforce+, of course. But also if you are at Dreamforce, join us live where we’ll have product experts walking through these features. And dynamic components is one where we really dig deeper. We show a couple of examples. We show a lot of code examples of how to use a dynamic component. So I’m really excited for all of the ISVs and also for all of the customers looking for dynamic component.
And you know what, Julian? I remember five years ago when LWC was launched, the first thing that I saw in the community was people requesting for this feature, dynamic components. And has taken some time, but I think it is here. Probably one of the reasons I think is obviously our team had to find out optimal solution of how to give this feature and also at the same time manage performance. Because see, one of the things that we do is we performance optimize all of the components that gets rendered on the page. And with dynamic components, that’s a little bit of challenging, but I think it’s here, so I’m really excited to see what developers build with this feature.
Julián Duque:
Beautiful. We need to spend some time to go through this maybe on a live-streaming or blog post so folks can see the code, how it’s done, because definitely this is a game-changer. Continuing on the LWC line, what’s any other feature that we are expecting on Winter ’24?
Mohith Shrivastava:
Yeah, there are a lot of features. Let me break one of the features that or dive deep into one of the features that I think is going to be definitely useful. So LWC workspace, API. So I know there are developers who actually build console applications. Console applications in Salesforce is like it lets you create tabs, sub-tabs, and it gives a complete view. You can have many sub-tabs and tabs all opened on a page so that it is easier for, let’s say, somebody like service agent who’s working with multiple customers at the same time so they can open their different cases, their different customer information, all on a single window. So console apps has been here. But you know what? For developers, it’s been challenging to move to LWC because we don’t give anything at all. There was no API for that in LWC.
They always had to work with Aura components. So either they were working with Visual Force or Aura components. And you know that LWC is always much, much faster and easier to program. And also, the syntax feels really native to JavaScript developers. So I’m excited about this LWC workspace API. Again, this is in beta, hopefully it goes GA next release. But I think this is a great opportunity for developers to look at their applications, see what Aura components they have, if there are performance implications on some of these components, try this workspace API and convert them into LWCs and see if that kind of improves the overall page performance.
Julián Duque:
Great. This is also another great feature. Currently beta, but soon it will be GA. So for the folks out there, go ahead try it and give us feedback. We will like to hear from you, how can we improve this feature.
Mohith Shrivastava:
And the next exciting feature, Julian, and I’m pretty sure you’re going to love it as soon as you hear it, is GraphQL wire adapter for LWC.
Julián Duque:
Oh, of course, of course. Of course I love it.
Mohith Shrivastava:
You see, the reason why this is awesome is we have developers in the community who came from front-end background. They’ve been just using JavaScript to build their applications. And if you have to fetch data, for example, if I have to stream lists of data, I’m not talking about single record, you can use wire adapter that’s there today for streaming a single record based on the record ID. But let’s say you need list of data from an object or you want to fetch data from multiple objects for your LWC component, you no more have to write Apex with GraphQL wire adapter. So GraphQL wire adapter by default gives you features like filtering, sorting, pagination, it handles CRED, FLS for you when sharing rules. And it has all the client side caching and data management because it is slightly integrated with our Lightning data service, right?
Julián Duque:
Mm-hmm.
Mohith Shrivastava:
So there’s a new module called Lightning/UI GraphQL API, and you know what? It was in beta last release, too. So we took some time to write LWC recipes for them. You can find them in our LWC recipes sample application where you can see all of these recipes. They start with named GraphQL in them. So you’ll have a recipe for pagination, sorting, filtering. So imagine you are building a table view or a grid view for showing some records, right? You can now use GraphQL wire adapter and write your GraphQL all on client side.
And let’s say you want to add pagination or filtering or sorting, those kinds of capabilities. You don’t have to write Apex queries. You can just do it all on front-end. Now, I want to recommend that… It might feel like we are moving away from Apex here, but I know a lot of you love Apex, and Apex is going to be here. You can write Apex for sure, but if somebody is coming from front-end background, they know this industry standard GraphQL, this is a welcome addition for sure, because they can just program everything including getting data right within LWC.
Julián Duque:
I had the opportunity to try this in beta, and I was amazed by the performance. And also, another thing that I like a lot, you were mentioning pagination, and one of the things I like is that the GraphQL API that we support, it uses the relay specification. So we use open source, battle tested specs. So developers, as you say, that are coming from different backgrounds, don’t need to relearn a new technology or a new way to query data because we are already using a defined standard. And with the relay aspect, it’s very straightforward to perform that pagination to even do rate limiting of requests, edits performance, the data can be cached. So this is a great feature also for LWC developers.
Mohith Shrivastava:
Yeah, absolutely. Absolutely. And talking about these GraphQL wire adapter here, right? I want to plug another feature that’s coming in API, GraphQL API. So way this happens, Julian, is first the GraphQL APIs are built, and then on top of it we have GraphQL wire adapter. So for GraphQL APIs now it’s going to support mutations. I know that you have some session for developers at Dreamforce. Are you also talking about mutations there?
Julián Duque:
I will be covering mutations, also by the time this episode is live, there will be a Code Live where I will be covering also these new GraphQL features. So you will be able to join me and see how this is being done live. Of course, this is one of my favorite topics, so I will be covering a lot.
Mohith Shrivastava:
Yeah. So I just wanted to remind everyone that GraphQL wire adapter doesn’t support mutation at this point, but GraphQL API does, and I hope that in future they port over mutations, too, to this GraphQL wire adapter.
Julián Duque:
Yeah, it will be supported for sure, but let’s wait for future Release Readiness Lives or future episodes on this podcast to cover those features.
Mohith Shrivastava:
Yeah. And you asked me about other features. There are a bunch of features, actually, and we will list them out in our blog post that will be out on 11th of this month, so go check it out. But one of the features I think it’s worth discussing here in this podcast is ability to now create custom elements, like web standards custom elements using… custom elements that are defined right within your LWC. So this allows us to bring third party components. They might not be built using Lightning Web Component technology, but let’s say something like LIT, I don’t know, Julian, I’m a big fan of LIT as well. It’s a web component framework that allows you to build applications pretty quickly.
So let’s say you build something on LIT, you can port a world to Lightning Web Components pretty easily just because now we allow these, and there is a new directive called LWC External. So as soon as you indicate that your Lightning Web Components know that, okay, now I can consume custom elements defined through web standards. So you’ll be able to bring your third party components or your own components built using any web component technology that uses custom elements. Only thing you need to remember is your org should require Lightning Web Security, and Lightning Web Security is a setting, it’s the upgraded version, more secure version, but same performance as a current locker. We’re recommending everyone to move to this Lightning Web Security based setting rather than using the Lightning Locker. But of course, this is a transition. You have to analyze if all of your components are working correctly under this security model. So it’s going to take some time for everyone to be there, but if your org is already on Lightning Web Security, this feature, it’s really awesome.
Julián Duque:
This makes me happy, because it is one of the promises around web components in general, is reusability, me being able to use different web components developed by a framework or using the standard web component definition in any other application. So now we will be able to use third party web components in LWC. This is, in my opinion, also another game-changer.
Mohith Shrivastava:
Awesome.
Julián Duque:
Well, any other important LWC feature that we need to mention in this episode?
Mohith Shrivastava:
I think worth calling out some of the things, for example, if somebody has event monitoring, which is a security feature which comes with Shield, now you can enable absorbability for your LWC. That means you can track all the events that you have in your LWC architecture. So I think this is going to be great for all the customers who have even monitoring enabled. There are some new mobile capabilities, like let’s say you’re building a mobile application and using LWC, you can use device-specific features, like document scanning, NFC, and biometric capabilities. So these are all exciting.
Julián Duque:
Wow.
Mohith Shrivastava:
Yeah, this is great. This is exciting. You can find more details about them in the mobile app developer guide with LWC, and we’ll post links in the blog post as well.
Julián Duque:
Well, all of you all LWC developers, be super happy because all of these features are amazing. But you mentioned something that caught my attention that it might seem that we are forgetting about Apex, and that’s not true. So what’s coming for Apex in this new release?
Mohith Shrivastava:
Yeah, this has been quite a release for Apex, I would say. One of the features that is going GA is DataWeave in Apex.
Julián Duque:
Nice.
Mohith Shrivastava:
DataWeave in Apex is generally available. For all those of you who don’t know what is DataWeave, DataWeave is MuleSoft data transformation language. So it pretty much is a functional language like JavaScript. If you know JavaScript, it will not take a lot of effort to actually learn this because everything like syntax and the grammar, everything looks pretty much similar to JavaScript. And also, this might be a great language to learn, especially if you’re looking to learn some functional programming. So once you learn that, of course, you can write these data weave scripts in Salesforce, deploy as a metadata and then reference that data weave script in Apex. Because in Apex you can now pretty much do all of the data transformations. For example, let’s say somebody has CSV file and they want to convert into XML. That’s a lot of Apex code if you try to do it yourself.
But with DataWeave script, it’s a script that you can add. You can define your transformation rules there, you can map your transformations, and then you just run the script and it does it for you. And one of the things I heard from community, especially on LinkedIn, is people are excited to see that it has got some performance boosts compared to beta. So it’s been in beta for a couple of releases now. So really excited to see this come through and go GA, and this is going to make data transformations, especially for those developers who are integrating Salesforce with other external systems and they’re using Apex to do all those parsing logic, I think this is very scalable and a very neat way to build your transformations.
Julián Duque:
This is great news for us Salesforce developers and for the folks out there that already have strong experience with MuleSoft and with DataWeave. Now you can use it in Apex.
Mohith Shrivastava:
Absolutely.
Julián Duque:
Well, what else do we have in Apex for this release?
Mohith Shrivastava:
Yes, so the other thing that I’m excited to share is a lot of implements coming to Queueable Apex.
Julián Duque:
Oh, nice.
Mohith Shrivastava:
Queueable Apex are one of the best ways to do your processing of your business logic using asynchronous patterns. So a couple of features that are coming there is setting up maximum depth for your chain Queueable Apex jobs. That means previously there was no maximum depth, and if developer don’t handle it, and if you have a recursion of something, it used to fail and it used to go chain itself for, let’s say, N number of times. So I think now you can set that maximum depth available for even developer orgs. So previously for developer orgs, we had a hard limit of you can chain things only for five times. Of course, our reputation was not there for other orgs, but developers build in developer orgs, so they might want more depth to experiment. So I like that you can now set maximum depth for chain Queueable Apex shop.
But that’s not all. There is one more enhancement that I think is worth calling out, is now you can make sure that you are in-queuing only a single instance of your queueable jobs. And the way you do that is by building a signature. So there’s a new signature class that allows you to build signatures for your job. So let’s say if somebody, for example, wants to make sure that there’s no duplicate jobs that are happening, they can use this signature and build a single instance of queueable jobs. So the system will make sure that it’s not duplicating. Also, it reduces roll log and concurrent Apex errors that we’ve been having.
Julián Duque:
Nice. All these improvements are great.
Mohith Shrivastava:
Yeah. And then there are developer quality-of-life, I would say, improvements as a developer. Some of the features that our developers have been asking, like for example, being able to use for loops for an iterable. So it’s interesting, we never had for loop support for an iterable. Iterable is a type of variable that you can define. We always had to write verbose syntax with while loops, and I’m glad that now you have a for loop support. So you can have an iterable variable and you can just use for loops, regular for loops. That’s a great language improvement, I would say.
The other feature that I’m excited is comparator operator. It’s called Apex Comparator, Apex Comparator and Collateral Interface. I think this is a great language improvement because previously if you had to do your own comparison or let’s say a list sorting, you had to build multiple classes and then build multiple rules. So it was a lot of verbose code, and I think this simplifies it. There’s a new interface called Comparator. So basically for any class you can implement that comparator interface. And then when you do the list sorting for that specific class, you can pass in the comparator as a parameter. So that kind of improves the whole sorting experience, I would say. And it’s just weird that we never had this.
Julián Duque:
This is great. Apex is a very mature language, but by seeing these features that… I love what you mentioned, these improve the developer quality. I love it. And I’m pretty sure we will see way more features like this in the future that are being added to Apex.
Mohith Shrivastava:
Awesome.
Julián Duque:
Well, what else do we have? Is there anything new around development tools?
Mohith Shrivastava:
Yes. Platform developer tools is my favorite topic, because all of these features, if we don’t have good developer tooling, it’s going to be hard for developers to be efficient. So I’m excited that Winter ’24 is actually solving a lot of problems in this space. We have made great strides here. One of them is Code Builder. Code Builder will go live in somewhere in mid of October or first week of October, will confirm the dates via the blog post. But this is huge. Code Builder is huge, because it will let our developers use browser to build Salesforce applications.
So today, I know a lot of you are Windows, it takes a lot of time to install these software. Some of you work for organizations where your laptops are strictly governed by IT. So you are having challenges installing softwares like Salesforce CLI, VS Code. But now with Code Builder everything is on web, and we take care of security for you and we pre-install all the tools that you need to build applications. So all you will need is get access to Code Builder by asking your administrator. And once you have, you create environments. And from there, you can launch Code Builder directory from your Salesforce org and start building your apps. This is exciting using web to build apps.
Julián Duque:
Nice. Or if you are traveling and you don’t have your computer, you can just use another one logged in and do your work.
Mohith Shrivastava:
Absolutely, absolutely. Code Builder is really exciting. But I like that Code Builder is also getting a new tool which uses generative AI.
Julián Duque:
Wow.
Mohith Shrivastava:
Generative AI is hot topic out there. Everyone is exploring how to create tools and products to make everyone efficient, so I’m excited to share that. Einstein for Developers, that’s our new generative AI capability. That’s our new VS Code extension for our Salesforce, and also it’s going to be available for Code Builder. So this is moving open beta by October timeframe. So we plan to have an open beta, that means anybody can install the extension, get it enabled for your org, use this tool, Einstein for Developers, to generate Apex classes. So we start with a very basic functionality. You can write prompt and generate these Apex classes and then copy/paste it to your actual working code. But I’m sure there are a lot of exciting features coming.
Julián Duque:
Nice. And this is going to be only available for Code Builder?
Mohith Shrivastava:
Yes. So the idea is that extension, Einstein for Developers, is published on open source. I think there is a place where you can publish open source VSX, I think it’s called Eclipse Open VSX. It’s a project where anyone can build an extension. Let’s say you’re building a VS Code extension. You can publish it on Eclipse Open VSX, and then… It’s a vendor-neutral alternative basically to Visual Studio Code Marketplace.
Julián Duque:
Oh, nice.
Mohith Shrivastava:
Yeah, so any extension that is available on this marketplace, Eclipse Open VSX, you can automatically install in Code Builder, so we enable this functionality in the last release. So let’s say you have an extension and you put it on VSX, Eclipse Open VSX, you can just install it. We have enabled it. So this extension, Einstein for Developers, it’s going to be available on Eclipse Open VSX once it’s going to be launched, and that will let you really install that on Code Builder and give it a go.
Julián Duque:
Now, that’s a strong reason to use Code Builder.
Mohith Shrivastava:
Yeah, but if you’re a desktop lover, of course you’ll have the VS Code extension, too.
Julián Duque:
Of course. What else do we have for development tools?
Mohith Shrivastava:
Yeah, so one of the things, Julian, generative AI is here, but me as a developer, having done software developer for let’s say a decade or so, I know a lot of these tools are exciting, they will boost my productivity definitely. But I trust my skills a lot, just like I’m pretty sure you do yours as well, right?
Julián Duque:
Of course.
Mohith Shrivastava:
You’ve mastered it for like 10 years or so, or more than that. So any machine code that you produce through AI, it needs to go through some review process. You have to go through review process, you have to do peer reviews, et cetera. So that process is challenging in itself, right? I’m excited to share that Salesforce Code Analyzer, which basically lets you scan your code for security vulnerability and performance issue, is now getting a new extension, like new VS Code extension called Salesforce Code Analyzer. So that’s going to go live pretty soon, I think this week or next week.
I don’t know when this podcast will be published, but as of today it’s been scheduled to go live first week of September. So it’s going to go live, I think it’ll be beta to begin with. So you can install that on your VS Code or Code Builder. Again, that will also be published to Open VSX. So you can install that and do static or graph-based analysis, and you can find all the security vulnerabilities in your code that you write, and also the code that Einstein generates for you. So pretty much with that, it’ll make easy to do code reviews or automate some of the code reviews and overall improve the quality of the code here.
Julián Duque:
Nice. So make sure to check the show notes. Maybe this is already available when this episode goes live.
Mohith Shrivastava:
Yes, and I just want to say that Code Analyzer is already available as a plugin for Salesforce CLI, but we never had a VS Code extension, so that required a lot of command typing. I pretty much like that now you have a graphical user interface with VS Code on top of our command line. So it makes it easy to adopt and use.
Julián Duque:
Improving the quality of life of all developers. This is great.
Mohith Shrivastava:
And there are some more things, Julian. We are not stopping.
Julián Duque:
More?
Mohith Shrivastava:
Yes, more.
Julián Duque:
Nice.
Mohith Shrivastava:
Yes. So one of the things you know is getting some attention is Scale Center. So Scale Center is a new product actually, a new product that lets you analyze performance of your whole org as a whole, right? For example, knowing what Apex methods are giving you row locks or why you are running into concurrency issues or where there are callout errors. In fact, also analyzing SOQL that’s causing CPO timeouts or in fact not SOQL, in fact Apex process causing CPO timeouts, but SOQL which is performing not that great. So all those things like performance issues, they can now be almost in near real time. You can uncover using this product, Scale Center.
This is available for only unlimited editions, but if somebody is on enterprise editions, they can always talk to their AE and make a case that you have a lot of performance issues that you want to uncover and you can get access to it as well. Scale Center, again, is available for free for unlimited edition orgs. I think this is going to be great, because this will uncover those issues like row locks and concurrency and callout failures, these kind of issues pretty easily. We also published a Code Live session on Scale Center last week, so check it out. It is there. We had product manager discussing what are its feature, how to use it. So I think this is exciting that Scale Center is generally available.
Julián Duque:
This is powerful. Amazing.
Mohith Shrivastava:
Yes. And then finally there is one feature that I would love to call out. It went GA right as we are speaking. Not GA, sorry, beta right when we are speaking. It’s command line commands for DevOps center actions. So previously-
Julián Duque:
Wow.
Mohith Shrivastava:
Yes. So you had graphical user interface where you can promote a pipeline or you create a pipeline, validate your pipeline or resume and pause your pipeline. So you all did through UI, and I know as a developers a lot of you have been asking me that, “Hey, can I just use my command line to do all these actions?” Because you love command line so much, so much. I love command line a lot. I’m excited that there are commands now to do all of those actions in DevOps center right from your CLI command line. So go check out the Salesforce CLI release notes. These are not part of the release notes, like the core release notes, they are part of Salesforce CLI release notes. And we’ll have things for that in our blog post as well.
Julián Duque:
That’s great. And these new commands, I guess they are available on the version two of the Salesforce CLI?
Mohith Shrivastava:
Yes, you are absolutely right. They’re available on version two of your CLI, and they are bundled as a plugin. So you basically have to install what we call it as plugin DevOps center. It’s an open source project as well. You can check it on Salesforce CLI GitHub repository. It’s called Plugin DevOps Center. So you basically install that plugin for your SF version two, and from there you’re just executing the commands.
Julián Duque:
Cool, cool, cool. Well, this is all about platform development tools. What about API and integrations?
Mohith Shrivastava:
Yeah, there has been significant number of changes for API, and I’m excited to talk through some of them. I think one that I already covered is GraphQL now supports mutations. So that means with mutations you can do insert, update, delete operations on UI, API enabled objects. I think that’s great additions for someone working with GraphQL. Bulk API 2.0, I know Bulk API 2.0 Had some performance issues in the past, so they’ve improved a lot of things there. Like for example, query creation has been improved, efficient crossing algorithms using PK chunking. So that makes it more efficient now. And overall the Bulk API 2.0 gets some more love and it has better performance now. So really excited to have all of you try Bulk API 2.0 and let us know your feedback. And the other feature that I’m super excited and I think Julian, you talked about it actually in one of your blog posts last release was ability to create name credentials using API and Apex.
Julián Duque:
Yep. Yes.
Mohith Shrivastava:
This release, they’re adding some more methods to it. For example, now you will be able to update those named credentials, retrieve all of the name credentials that you have in the org, get more details about a specific named credential, and also delete a named credential from Apex. So all of the ISVs out there, I think this is a great feature for you to use this and automate named credentials, which previously used to be manual work. And those of you who don’t know what is named credential, it’s a platform feature that allows you to make authenticated API calls to external system without you yourself having to write a lot of logic for authorizations or authentication. There are specific protocols that named credential support, and most of your APIs actually fall under that bucket so you can configure and then it makes it so easier to write integrations using Apex.
Julián Duque:
That’s fantastic. I will need to review it to see what’s new and maybe update what I already published.
Mohith Shrivastava:
Yeah. And then there is one of the features that I love is Connected apps now let you request for JWT tokens, so that’s awesome, so JSON web-based tokens. So now you can ask for JSON web tokens, and you can use these web tokens to call your rest APIs.
Julián Duque:
This is great.
Mohith Shrivastava:
Yes. And event relays, which is basically how you send platform events to Amazon Bridge is now also available for Hyperforce org. So we had this event relays for some time, but those of you in let’s say Australia or India region, they were not able to use some of these with Amazon Bridge because they were not supported for Hyperforce orgs, but even today are now GA for Hyperforce. So that’s exciting.
Julián Duque:
Well, that’s also another great, great feature for people that is using event relays and Amazon to communicate between the two.
Mohith Shrivastava:
Yeah, and talking about those communication, there are some more features, like for example, change data capture. That is how we signal that there is an information change in Salesforce and create an event to an external system. So previously, people who were working with Health Cloud or field service objects, they had certain objects that this did not support, like change data capture was not supported. Now we actually enable change data capture on those objects. So that’s exciting for all of you working on Health Cloud and field service projects.
Julián Duque:
Fantastic. Any more updates or changes in API or integrations?
Mohith Shrivastava:
Yeah, one of the features that caught my attention when I was reviewing these release notes, and our community also talks a lot when release notes happen and they love the features that we deliver and they talk about it. I didn’t see anyone talking about it, but I thought this is really interesting, is OData adapter for Salesforce connect. So OData adapter is, let’s say you have an object that is holding, let’s say, tons of records, for example, in the order of tens of millions, but you still want that data to show up in Salesforce. Of course, you cannot put all the data in Salesforce if you don’t need to in Salesforce, because that’s going to create data skews. But with external adapters like OData, you can put it in anywhere, in any other system, and as long as you expose through this OData protocol, you can visualize that as Salesforce objects in Salesforce.
These are called external objects. So one of the things that got supported is OData 4.01. So with that, now you can actually also capture external change data. So that means if you have a data outside, sitting outside Salesforce and you have exposed through OData to Salesforce, and let’s say you change data in that external system, you can listen through an external change data capture in Salesforce. So pretty much that lets you write automations, like Apex triggers on these change data capture. So let’s say I have a system which changes the data, I know that the change has happened in Salesforce by just writing or listening for that event captured in Salesforce. Isn’t it cool?
Julián Duque:
It is, definitely.
Mohith Shrivastava:
Yeah. I thought this is great, and I think this is great for all of you who are looking for bringing your external data, but they’re not storing in Salesforce and still achieving Salesforce automation capabilities or trying to use Salesforce platform capabilities. I think this is great.
Julián Duque:
This is powerful as well. Well you mentioned also some other products like cross-cloud or any other products that we have that also got some love for developers in this release.
Mohith Shrivastava:
Yes.
Julián Duque:
Let’s mention those.
Mohith Shrivastava:
Yes. You know what? I’ve been learning Data Cloud now for, I would say since TDX, I would say last year TDX, that’s where I got Data Cloud and started looking into capabilities of that.
Julián Duque:
We had the opportunity to work together on Data Cloud.
Mohith Shrivastava:
Yes, that was fun time to produce that customer 360 demo that me and you work together. So you know what? I explored Data Cloud. I think Data Cloud is one of… It’s very, very powerful, and I think it’s time for all of our developers to take a look at that. And Winter ’24 actually is making it easier to use tools and technology that we are already familiar as Salesforce developers. For example, Julian, check this out, Data Cloud triggered flows. Okay?
Julián Duque:
Nice.
Mohith Shrivastava:
So that means… You know Data Cloud object model, they are really different than the regular model because they allow you to bring billions of data. We’re not even talking about millions here, like customer engagement data. Let’s say you are on a website and you want to capture all those clicks and put all the data into Data Cloud so you can drive insights into machine learning and activate that data. Data Cloud is the product for that, and Data Cloud triggered flows will let you write flows on those data model objects and also on the calculated insights.
Julián Duque:
That’s great. I remember trying to do this, but it was kind of hacky before. I had to write a publish there, I had to do some more work.
Mohith Shrivastava:
Yeah.
Julián Duque:
And now I’m seeing this is straightforward.
Mohith Shrivastava:
Yeah. So previously we used to use platform events. So basically you create a data action event and you create a platform event and then you write flow to listen for that platform event and then parse all the data from that platform event and then use flows to further automate. I think that that thing, like using data actions, is great. It’s still great if you have, let’s say, another connected org where you want to do the automation, but let’s say you are working on an org where you have Data Cloud enabled for those orgs. Just use Data Cloud triggers. They are awesome. They do all these things behind the scenes for you. So you’re just concentrated on building your flows.
Julián Duque:
Beautiful.
Mohith Shrivastava:
And there are other things, there are other things there that I would like to call out in the Data Cloud. So one of the things that I’m excited is sharing data from Data Cloud to Snowflake using zero ATL capability. I know we have a lot of customers who use Snowflake to do machine learning or other analytics or data warehousing. So I think this is a great feature because you don’t need another ATL. So it’s just built into the platform.
Julián Duque:
This is fantastic, Mo. I will need a lot of time to process all of these new features, because this release is packed.
Mohith Shrivastava:
It is packed. I mean I’ve been watching a couple of releases for now, and I have to say this is a packed release. You can see that. You can see that there are features that are definitely going to make solutioning easier for our architects and also make it very easier for our developers to just use some of these features and build automations and integrations with Salesforce platform.
Julián Duque:
And what about cross-cloud? Do we have any worthy mentions from some of the other cloud products?
Mohith Shrivastava:
Yes. Couple of things I would like to call out. Cross-cloud is one of the things that I always have an eye on because I know our customers need multiple clouds because of their business requirements. Obviously, if you bring multiple clouds, you get more efficiency and you can see that all of these clouds are tailored for specific tasks. For example, let’s take Tableau. That is how you build analytics, engaging dashboards and analytics. There are a couple of features I want to mention in Tableau. And we are going to show these two features live at Dreamforce on our show, Release Readiness Live. So another reason to check out Release Readiness Live. One of the features that I’m excited is the native Tableau LWC component. So this is native to platform. That means just like any other standard components that we have, a native Tableau LWC component is there.
So you just drag that onto your page and then provide your Tableau server URL and your site ID. And as long as you have a single sign-on enabled for your Tableau and configured with your Salesforce org, you can turn on a checkbox called token authentication and it automatically does single sign-on for you and renders that dashboard right within your Salesforce app page. I think this is great. You don’t have to write additional code, you don’t have to install a managed package. It’s just doing everything for you, and it’s native. Also, it can be packaged and distributed in a managed package if you’re an ISV. So I think this is a great feature. It also shows how we are bridging some of these products to core.
Julián Duque:
Of course. So every release they are more integrated.
Mohith Shrivastava:
Yes, they are. And Tableau embedding playgrounds. So this is one thing that I want to call out, and you can actually… So this is also available right now. It went live in this release. Embedding playgrounds, Julian, what it allows you to do is let’s say you have a Tableau dashboard created, right?
Julián Duque:
Mm-hmm.
Mohith Shrivastava:
And you want to mash that dashboard within your own web application. Let’s say Heroku application, your experience cloud, right? We talked about native LWC before, so that’s native, right? But let’s say you need more interactions, you need more programmatic control. So Tableau embedding playgrounds is where, you can put that dashboard and just use drag and drop capabilities to generate a JavaScript and an HTML code that you can just then plug into your application.
Julián Duque:
Oh, that easy?
Mohith Shrivastava:
Yeah, that easy. And you can actually Google Tableau embedding playgrounds, and there is a whole playground that we have created on developer website thanks to Tableau team where you can just put your Tableau dashboard URL from your server and generate JavaScript code.
Julián Duque:
This is fantastic. This release is packed with a lot of great features, and I know there are more, but these are the most important features for us, Salesforce developers.
Mohith Shrivastava:
Yeah. And don’t forget MuleSoft. I want to plug in MuleSoft here. MuleSoft is one of the powerful tools, I would say, to do both ESB, ETL, and integration. Basically automation and integrations. It has lots of connectors on any point. Hub, so you can bring in these connectors, connect any two systems, build your data transformations using database. So it’s powerful technology. We know always, I had this… And me and you actually worked on some MuleSoft, remember?
Julián Duque:
Yeah.
Mohith Shrivastava:
Last time when we were building the customer 360 demo. So one of the things is having to install that any point Code Studio felt a little bit backward because I have used Eclipse like almost 10 years back. I don’t know about you. It’s an Eclipse based IDE right?
Julián Duque:
Mm-hmm.
Mohith Shrivastava:
So now with this release actually there’s a new VS Code extension pack for all of the MuleSoft developers out there. So there’s a new extension pack. We can install that on your Visual Studio Code. And also, there is a MuleSoft Anypoint code builder that is using the same technology like Code Builder actually. So it’s a web ID where you can spin or scaffold your MuleSoft project. And from there you basically… It makes it very easier because you are already in a friendly territory of VS Code UI. So it lets you easily create your designs. First, you can start designing using RAML or OAS, so you create your integration design. And then you can start implementing those designs right away. It has a graphical editor so you can drag and drop, and then it gives two-sided view with an XML there. We have Akshata, the MuleSoft developer advocate at Release Readiness Live walking us through how to use this tool at Release Readiness Live. So really excited for that.
Julián Duque:
Yeah, had the opportunity to watch these at a recent AMA that you can also find on our Salesforce Developers YouTube channel.
Mohith Shrivastava:
Awesome.
Julián Duque:
Cool. So Mo, I think we have covered pretty much everything. Do you have any last words to our audience?
Mohith Shrivastava:
No, I think this is a lot of information that we have shared. It will take some time to digest them out. Pick ones that you think are more relevant to the work that you’re doing. Also be curious to explore the others, which you probably not get it in your day-to-day work. Maybe it’s a side project or something that you can use to explore. So we’ll have all of the links actually in a blog post that’s going to be live. I think it’s going to be live before this podcast is going to be live. It’s scheduled to be on 11th of September. So check that out. It has everything that we discussed in a more easier manner. It also has code examples for some of the LWC features that we talked about. And don’t forget to join Release Readiness Live live from SFO scheduled on 14th of September. Again, you can stream it on Salesforce+, or if you’re at Dreamforce, just catch it up. It’s the last day, last show.
Julián Duque:
Yeah. At the time this episode is going to be live, maybe you will be able to find those recordings on Salesforce+. Mo, thank you very much for your time and guiding us through this release Winter ’24. I’m looking forward to have you again on this, the Salesforce Developer Podcast.
Mohith Shrivastava:
Thank you so much, Julian, for having me here. Thanks everyone.
Julián Duque:
Okay. Bye-bye. 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 on the next one.