Please welcome Lead
Developer Advocate
Salesforce, Aditya
Naag Topalli.
Good afternoon, everybody,
and welcome to release
readiness live
at Dreamforce.
Thank you all for
being here, hopefully,
with the same
energy levels
If not we could
always do RRL.
All right, so
winter '24 is
coming soon to
an arc near you
with a ton of
new features.
With every new
feature, you're
going to have
a new question.
Today at RRL, we
are here to answer
So if you are in the
room, start making
a note of your questions.
If you are
watching me online
on Salesforce Plus, put
it in the chat window.
If you are somebody
who is using X,
put it using the
hashtag Salesforce RRL.
And to answer
your questions,
we have an amazing lineup
of product managers
This is a wonderful
opportunity.
I'm saying don't miss it.
So Winter '24, once
is going to come out,
you're going to get
a release notes.
And the release
notes document
is already 600
pages long if you've
And there are a
few clouds that
roll out features more
often than three times
So starting
Winter '24, you
have a new section
in the release notes
document called
Monthly Release Notes.
We have the dev
tooling team here.
And the dev tooling
team rolls out updates
So that's a
lot of updates.
And to make it easier for
all of you to stay on top
of whatever we are doing,
we have handpicked today
a few set of features
that we think
are the most important
and relevant for you.
So in the first 40
minutes of this session,
we are going to
go over these five
different topics,
Developer Tooling,
MuleSoft, Lightning Web
Components, Data Cloud,
and finally, wrap
it up with Tableau.
And we are going to
have exciting demos.
And once the
demos are done,
we are going to open
the floor to you
so that you can ask
all of your questions.
So with that, we are
going to start off
with the first topic for
today, Developer Tooling.
And to show you what
we have in store,
I would like to invite
Ananya Jha, Senior
Product Manager Developer
Tooling on the stage.
Give her a huge
round of applause.
My name is Ananya, and
I'm your Product Manager
for the IDE
experience and now
Now, before I get
started with all
the great new
features coming out
with this release, I
want to take a moment
to say thank you
to all of you
for providing us
this feedback each
This feedback is
really what helps us
as product
managers determine
that the new features
and products we're
putting out are really
meeting your day to day
So thank you, again,
and keep it coming.
Now, having been a
developer myself,
I know exactly
how important
it is that we
continue to innovate
in a way that's
improving your day to day
And so that's why I'm so
excited to announce that
with Winter '24,
we have a ton
of new innovations
coming that will
So first up, we
have Code Builder.
With Code Builder,
you no longer
have to worry about
downloading or installing
any of those
developer tools
or software to your
local environment.
Instead, you're
able to continue
working inside of this
web based browser IDE.
And I'm excited
to announce
that Code Builder
is officially
going to be in
GA4 this October.
So let's take a
moment to give
everyone round of
applause for Code Builder
Now, next up, we have
Einstein for Developers.
With Einstein
for Developers,
you're going to be able
to effortlessly generate
code with the help of
a large language model.
And which model
you may ask?
Well, behind the
scenes we are
using Salesforce's
very own in-house LLM,
Codegen. With
Codegen, we're
able to ensure that your
data and code are never
leaving those Salesforce
trust boundaries.
And it's been trained
on Salesforce languages
Next up, we have the
Code Analyzer Extension,
which is now
available to you
inside of your developer
environment as well.
So you can look at
it inside of VS Code.
With Code Analyzer,
we're making sure
that as you generate
code using AI,
you're confident
in the changes
So with Code Analyzer,
you can scan your code
to make sure that
it's both secure and
So why don't
we take a look
at all of this in
action with the demo?
And joining us today,
we have Mohith and Julia
So today, we are looking
at Code Builder's
From here, you
can go ahead
and enable and
install Code Builder
Once you've gone
ahead and done that,
you'll be launched
into the Code Builder
From there, you
can both create
and launch a working
environment just
like the one we'll
be inside of today.
Now, the first
time you open up
Code Builder
you'll be inside
This Welcome
screen is great
because it helps
you get started
with your Salesforce
development.
So you have access to
all of the documentation
or trailheads that you
might need to get started
So as I mentioned earlier,
one of the great things
about working
with Code Builder
is that you don't
have to worry
about installing any of
those developer tools.
So for example, I want to
take a look at the newest
release coming from
our CLI which is SFCLI
Why don't we take
a look and actually
see that CLI
in action now.
So today, I want
to take a look
and understand what
all of the orgs
are that I'm currently
authorized into.
The great thing about the
new version of this CLI
is that it is both
intuitive and performant.
So I don't need to worry
about any of those colons
I get to use a quick
space between all
Why don't we see
another example.
Let's go ahead
and let's create
an APEX class called
Account Controller.
And as we see that
class being generated
in our output, we'll
see both the class
and the associated
metadata file.
And I'll go ahead and
jump into that file just
to make sure
that it matches
And it looks
pretty good to me.
So why don't we get
started with writing
Now typically, in
the olden days,
I would have had to get
started with this code
But sometimes
that can be hard.
I don't want to stare
at this blank screen
and then figure out
what I need to type.
So instead, I'm going to
use the power of Einstein
So Einstein for
Developers has been
So you can use it from
both VS Code and Code
Builder, as we're
doing today.
So why don't we go ahead
and try an example using
Today, I want to query
all of my accounts
for their related records.
So I'll go ahead
and I'll type that
into my new
Einstein sidebar.
And this sidebar is
where you actually
And so this is how
you're telling the AI
behind the scenes what
task you're looking
So I've got my
prompt in there.
We know that
we're creating
a new class for our
account controller.
So I'm going to hit Ask
and actually ask Einstein
We now have code that
has been generated
And I can take
a look and I'm
going to make sure that it
follows all of those best
practices that
I'm used to using.
So since it looks pretty
good to me right now,
I'm going to hit
Copy and then
I'll add it to that
Account Controller Class
that we'd already created.
So I'm looking
at this code now,
and again, whenever you're
working with AI generated
code, you want to
ensure that you're
taking the time as a
user to review that code
for those best practices.
This looks pretty
good to me,
so I'll go ahead
and save it
and I'll try deploying
it to the org.
And this is a
great way just
to make sure that it does
compile, and it does.
So I'm going to move on to
my next task of the day.
Now, this next
one is the one
that's usually a bit
more daunting for me.
I have to actually go
and create the test data
to actually test the
class that we created.
And so, I'm
again going to do
this with the
help of Einstein
And we're going to ask
Einstein to generate
some test data for this
Account Controller Class
So let's go ahead
and hit Ask.
And you know
that Einstein is
thinking with the little
spinner showing it to us.
And we have our
test data generated.
It looks like it's doing
exactly what I wanted it
So I'll go ahead and
move on to my next task
Now, as I
mentioned earlier,
there's a number
of benefits
with us leveraging
our in-house LLM
Number one is
that it's been
trained for Salesforce
languages and frameworks.
But number two is
that it's actually
evolving every time we
release new features
So for example, Data Weave
in APEX is now in GA.
And I want to
see if Einstein
can generate code for me
using our new Data Weave
So let's go ahead
and ask Einstein
to parse a CSV file
using Data Weave in APEX.
And then, we'll go
ahead and ask Einstein
and really see
what's going on.
And I'm looking
at the output.
It honestly has
done exactly what
It looks like we're
using Data Weave.
And I'm going to
go ahead and now
copy this into my file so
we can keep going, right?
Now, we're going to
copy it into the file,
but then, we want to
make sure we're still
reviewing it for
those best practices
And although it looks
pretty good to me,
I now have the help
of Code Analyzer
to ensure that it
truly is following all
So again, Code Analyzer,
VS Code Extension,
is available to
you on VS Code
and coming soon in
Code Builder as well.
And so now I'm
going to go ahead
and I'll scan
my existing file
using our static
analysis tooling here.
Behind the scenes, we are
leveraging open source
tools like APEX
PMD, again,
to ensure we're following
those best practices.
And today, we completed
a static analysis scan.
But the great thing
about Code Analyzer
is that you can
also complete
a path-based analysis
scan that will actually
holistically look at all
of the code in your org
and find all those related
references as well.
Now, our static analysis
scan has finished up
and it looks like
I didn't catch
And we're actually
not following our CRUD
And so it's a quick
fix for our team here.
We're going to go
ahead and insert
in as user mode to
our SQL query just
to make sure that our
queries are secure.
And now I'm ready to go
with the help of Code
Builder, Einstein
for Developers,
So we're just
getting started
with all of our
AI capabilities
to help transform your
developer experience.
And I'm so excited
to show you all all
the great new features
we have planned
in our upcoming roadmap
across both developer
tooling and environments
over the upcoming months.
And these features
range all the way
from inline
code completion
to code explanations
to really transform
that development
experience for you all.
So thank you, and now
it's back to you, Aditya.
All of you, Ananya's
team is the one that
So I definitely
say keep an eye out
on weekly release
notes so that you
get to see all of
the great things
that you've
shown in action.
How many of you
have already
tried out Einstein
for Developers?
I tried it the other day.
And those of you who
didn't raise your hands,
I would strongly
recommend go back tonight
and that's the first thing
that should be doing.
All right, with
that, let's
move on to the
second chapter, which
MuleSoft developers
in the house.
So MuleSoft developers now
get to use the same IDE
experience that
you have just seen,
And to show you
more, I would
want to invite Akshata
Sawant, Developer
Advocate MuleSoft
to the stage.
I'm super excited
to be here
at my first Dreamforce
and to share
all the MuleSoft
updates with you all.
As a MuleSoft
developer, what
is the tool that
you are currently
using to build Mule
apps, and what's
this whole new IDE
experience about?
Yeah, so we have been
using Anypoint Studio,
which is an Eclipse-based
IDE for a very, very
But thanks for sharing
all the tooling with us.
We now have a
brand new IDE
called as Anypoint
Code Builder, a.k.a.
ACB, which will
be helping us with
build a Mule application.
And as we have
just seen, it's
similar to what Ananya has
just shown with the Code
And it's also built on
top of same tech stack.
And I'm so excited that
all Salesforce developers
wanting to learn
MuleSoft because now we
All right, that
sounds cool.
And by the way, ACB
is a cool acronym.
How about you
show all of us
how we can work with ACB.
Sure, let's bring
in the demo.
So what you see here
is a cloud version
of Anypoint Code
Builder using which
you can design and
implement APIs and also
Basically, it's
a one place stop
for all your
integration needs.
For example, let's say
I want to design an API.
I can go ahead and
click Design an API.
I can further fill
in the information,
design an API, and
scaffold it further
to build a new
application.
So today, we'll see how
to design and implement
API in order to
build and retrieve--
basically retrieve
and insert contacts
What you see here
is a Mule project--
an existing Mule project
consisting of a YAML
file to define your
API specification.
Here, we can see we
have a contacts endpoint
and a GET method, which
will be retrieving
list of all the contacts
from the backend system.
This is defined
using a YAML file,
but we can also do the
same with the help of OS.
How about we mock
our end point
Let's bring in
the API console
and go to our endpoint
and mock the service.
Yeah, we now have a
successful result, which
is returning the
output and it's
Once our API is
validated and approved,
we can further go ahead
and implement this API
in order to build
a Mule integration.
Today, in the
interest of time,
we have already
implemented
So let's bring in the
implementation file.
Here, we can see
that there are
We can see there
are two views.
So we have two views,
which is graphical
In the graphical
view, we can
see there are
different components,
We also have a
flow list using
which we can navigate
to different flows
Let's navigate to the
flow that we have just
implemented, the GET
contacts endpoint.
And we can also see
the similar section
highlighted in
the XML part
where we can also
make our changes.
Next, we can add in
new components using
We have different
components
like the core processors,
connectors, snippets.
So in the connectors,
we have different types
So suppose if I
want to integrate
with a Salesforce
system, I can go ahead,
click on the
Salesforce connector,
I can perform
the operation,
I can bring in
the operation
I want to perform,
and configure
Next, we also have
snippet files.
So basically,
snippets are going
to help you to
reduce the code block
and help you with
the development time.
And this is a
very new feature.
Apart from that, we have
two types of snippets,
like user-based and
the built-in snippets.
You can also integrate
with any third party
system by bringing
in the connectors
from the exchange, which
are available for free.
Moving on next
today, let's
add in a very simple
connector, a logger
component, and let's
see how to do that.
Now that I've added
the logger component
in the Canvas, let
me make some changes
and add a message to
display all the results,
display the payloads
from the contacts.
And once this is
done, I can further
go ahead and build, run,
deploy, test, basically,
do everything from
this one single place.
So let's go ahead and
deploy the application.
And suppose if in
future if you want
to make some changes
to your existing API,
you can go back
to your YAML file,
make some changes,
and further scaffold
it to build a
Mule integration.
And you can do
that simultaneously
with the help of
iterative scaffolding.
For all those of you
who love working locally
on your studio, we have
an exciting update.
So Anypoint Code Builder
is also available locally
as a VS Code plugin
using which you can build
You can basically
do everything
that we have seen on
cloud on your studio.
And all this
functionalities
are, as I said, is
available locally.
They are expected to be
GA this winter release.
Moving over to our slides.
So the awesomeness
doesn't end here.
We also have AI
features coming up
with you-- coming up
for you with the help
So on the roadmap,
we have Einstein
for Anypoint Code
Builder with the help
And you can
actually translate
natural language into
Flow and develop your Mule
So that is going to help
you to speed up your Mule
And that's all about
Anypoint Code Builder
I would like to
hand over to Aditya.
ACB, it's free, it's
in beta, so all of you
can give it a try and
give us your feedback.
Quick reminder
before we move
I'm sure you've seen
two chapters now
and you have
some questions.
So if you are in
the room, please
start making a note
of your questions.
If you are
online, post them
using the hashtag
Salesforce RRL.
And it need not always
be about questions.
Frankly, if you like
something that you've
Moving on to the third
chapter, which is
Lightning Web Components.
So people who
know me, people
who follow me
on YouTube know
that I'm a huge fan of
Lightning Web Components
so much so that I stopped
building components
and started building games
like Snake and Wordle
So I'm personally super
excited to try out all
the cool new, and most
importantly, the most
requested features
that the LWC team is
delivering in Winter '24.
And to show you this, let
me invite Greg Whitworth,
Senior Director of Product
Management on the stage.
Not Kristen Bell or Seth
Meyers, but I'll take it.
Super stoked to talk to
you all because as Aditya
And first of all, I
want to thank all of you
all for the millions
of components you all
LWC is the most engaged
with component framework
And so I can't
thank you enough.
That said, there
are still reasons.
How many of you are still
having to, unfortunately,
reach for Aura
from time to time?
So unfortunately,
you're having
to reach from Aura
from time to time.
We've been hearing your
feedback on social media
and Idea Exchange as well
as our very first State
of LWC survey
that we sent out
at the beginning
of the year.
And I greatly appreciate
all of the feedback
And while we're wanting to
do as much innovation as
possible, and that's why
love Readiness Release
We get to hear
feedback from you all
on how to improve things.
I'm stoked to talk
about-- we'll be actually
be delivering the
first two of this year.
And then, also we're
doing some introductions
and innovations by
introducing GraphQL Wire
I am so, so
excited to share
all of this with you all.
And to be honest
with you, I'm
kind of not a huge
fan of talking
So Mohith, let's get
going with the demo.
So first off, we're
going to start off
Everybody probably
knows if you've
been working with
Salesforce the Dreamhouse
If you haven't been
working with Salesforce
and the Dreamhouse
app, congratulations,
you now work for a
real estate company
And what we've got is
we've got over here off
to the left hand
side a filtering
capability that we're
able to drag around.
We're able to filter
the different properties
that we own,
we're looking for,
and it'll filter on down.
We're able to view our
different properties.
Mohith, let's just jump
over to Code Builder
and see how we would
go about building this.
Historically, we
would have spun up
We would have
written a SQL query.
And quite long
and verbose,
and we would have bound
it to our LWC component
to render out
that Select View.
This works, but
it's not necessarily
right within the
context of the component
that I'm working on
and actually rendering
So what we're
doing is we're
introducing GraphQL, which
is an industry standard
support for wire adapter.
So if we switch over to
the similar component
for List View, what
we do is we import out
If we scroll down,
you'll see our GraphQL
And what we're doing
is we're actually
passing in those variables
using the Lightning
Messaging Service
right in top.
We're putting those
into the parameters.
Then, down below, we're
using that WHERE clause
the AND clause in order
to do our sorting.
And then, we're
able to sort,
we're able to order, and
the real power of GraphQL
is down here at the base.
No longer do you have
to think about joins,
inner joins, left
joins, right joins, all
All you need to do is
say, the data that I
You're not having to
do multiple requests
It stores it right
within the variable
in the context
of the component
where you're
working with it.
This is in GA
this release.
Up next, the second
most requested gap
between OR and LWC
is the Workspace API
for Console Applications.
So let's go ahead
and jump back
But this time,
maybe you're
the manager of
various brokers.
And so let's go
ahead and take a look
So off to the
right here we
have a Lightning
component and it's
got different properties.
And when we click on it,
it opens those subtabs.
And so what's great
about this is,
if you're commonly
doing something,
you're able to not have
to do hard navigations.
You can do quick
successions
And this is great for your
end users to save time,
save clicks, all
that wonderful stuff.
So how do we go
about building this?
OK, let's jump
back to some code.
It's almost too simple,
to be honest with you.
You import the workspace
API up at the top.
Then, if we
scroll down, we're
going to use at wire
in our LWC component,
bind it to that
tab ID, we're
going to set the
tab to focus,
we're going to
set the tab name.
That's the second most
requested feature.
It's in beta
the Winter '24.
I'm super stoked
about it going out.
Last but not
least, definitely
not least, the most
requested feature by far
So let's go back to the
Dreamhouse app one more
I'm actually seeing
nods, which is great.
So up at the top,
we have the toggle.
If we switch the
toggle, you'll
actually see we get a more
aesthetically pleasing
component layout, which I
prefer because I actually
Get to see what
it looks like.
So everything still
works the same,
but how did we switch it?
So once again, let's jump
back over to some code.
And you'll see
that we have
within here, this new
component type, the LWC
And what this
is telling LWC
is there's going to
be a component here,
we just don't
know which one.
So how do you define
which one it is?
Well, we came up with
a really great name
And you bind that to
the constructor that's
So if jump over to
the JavaScript file,
up at the top, we import
the two components,
that tile view and
that grid view.
And we then down
below, basically,
determine the state
of that toggle.
And we basically
say, hey, this
is the component
you're going to use
We highly recommend
this approach
if you know the
various components
that your admins or folks
may use because this
is statically analyzable.
We can actually
optimize for this.
That said,
there's a reason
this is highly requested.
Because of the
fact that if you're
an ISV or a
partner, you're
building a component
for a large org,
you may not know
which component
you're going to
render in that space.
And because of that
Aditya let's hear-- sorry,
Mohith, let's jump back
to the Dreamhouse app
one last time but
with a slight switch.
There's no longer the
toggle up at the top.
And this is a
more common use
case of why this is
so heavily requested.
So if we go in
here, we still
want to be able to
offer that capability
for people to
switch this view.
If we go and we go in, we
set up a custom metadata
If we edit it, we switch
over to grid view,
We then switch back to
that tab and hit Refresh.
The grid shows up
as you would expect.
So what's great about
this is if we jump back
into the code, we are
not any more hard coding
So you can envision
having just a text input
where somebody could
theoretically type
in whatever input they
would want if we switch
So up here at the
top, we have this APEX
that we're basically
fetching that custom
And what we're doing
is we're actually
concatenating that
into a variable.
And so what
we're able to do
is use that same
LWC Colon Component,
but we're now pulling
that down dynamically.
It is completely dynamic.
That said, I'm going to
be Spider-Man for a second
with great
power-- actually,
with great power comes
great responsibility.
There's a reason why
we don't necessarily
recommend this
for all scenarios
because it has
performance implications.
And because of that,
use it sparingly.
But there are real
world scenarios
where you do want to use
this, so please use it.
Moving on to the
roadmap on the slides.
We have so much
we couldn't
We have template
expressions,
we have third party
web components.
Yeah, please,
take pictures.
Send me these pictures
on Twitter please.
OK, but yeah, so
much is going on
and I'm stoked about them.
I want to even tease
next year's stuff.
Because local
development, we're
Stop having to constantly
push and order--
push up to your org
to see your changes.
But I'm thrilled
that we are
able to land the
top two requests.
We'll continue
to work down
that list while continuing
to do innovations in LWC.
Give the LWC team a
bigger round of applause.
They've delivered
not just one,
but two most requested
features in one release.
In fact, if you
still have questions,
Greg and I are hosting
a live Ask Me Anything
session on our Salesforce
Developers YouTube
So if your questions
are not answered today
and if you are trying
out the product
and you have
more questions
in the next month,
please join us.
With that, let's move
on to the next segment,
And in case some of you
missed the announcement,
customers with Enterprise
Edition and above now
get a free tier
to Data Cloud.
And what does it
actually mean?
It means you'll be
able to try out hands
on whatever the
cool new updates
that we are going
to share today.
And to share these
cool new updates
in Data Cloud,
let me invite
Danielle, Developer
Advocate on the stage.
My name is
Danielle Larregui,
and I'm a Senior Developer
Advocate at Salesforce.
Data Cloud is
quickly becoming
one of my
favorite products
to advocate for because
of its rapid innovation
and relevancy to
the AI revolution.
I'm excited to announce
we have some brand
new features coming
out as of the Winter
'24 release that will
be generally available.
But before I get into
what those features are,
let me answer a
question for you
that I've been getting
a lot at Dreamforce
What is Data Cloud and
what can Data Cloud do?
Data Cloud allows you to
ingest your data at scale
from multiple
source systems using
our out-of-the-box
connectors.
You can ingest data
from Marketing Cloud,
Salesforce, and
even Commerce Cloud.
MuleSoft
developers, you can
ingest data using our
bulk and streaming APIs.
You can even use
the ingestion API
to create your
own connector.
After you've
ingested your data,
you then have the
ability to harmonize
all of that data in a
canonical data model
into our data lake and
to data lake objects
From there, you can
use identity resolution
to build a single
source of truth.
And then, you can
use activations
like Tableau Analytics,
Integrate with Salesforce
Platform Events, and
even call Marketing Cloud
Journeys via the
Journey Builder API.
I'm excited to announce
our new features
as of the Winter
'24 release.
Our first feature
is the ability
to use Data Cloud
triggered flows, which
allows you to
launch flows off
Before, you had to use
data actions and platform
We also have another
awesome feature,
which is the ability
to bring your own AI
model using Amazon
SageMaker Studio
OK, let's bring the demo.
Here we are in Salesforce.
And you can see here
that we have a new flow
type called Data
Cloud-Triggered
Flow, which once
again allows
you to launch flows off
of data model objects.
Let's go ahead and pull
up an existing Flow.
And we're going to
go ahead and click
Edit to view the
configuration
So we have a
fictitious company
called Solar Circles
that sells solar panels.
And they want to know when
their solar panels aren't
So they've created this
solar panel event data
And similarly
to other flows,
you have the ability to
launch this flow whenever
a record is
created or updated.
We've also set an
additional entry
criteria, which is
whenever the solar panel
is receiving zero energy.
Also new as of the
Winter '24 release
is the ability
to do a transform
Let's go ahead and
pull up our transform
So on the left, we have
our solar panel event
And on the right, we
have our Salesforce case
You can easily map data
between the two objects
just by clicking
the nodes.
And this will map data
over from our data model
object in Data Cloud
to our Salesforce case
Now, we need to
test this out.
And we're going to
go ahead and use
Let's go ahead and
pull up Postman.
Now, if you didn't
already know,
we have a collection
of multiple APIs
in our public
API collection.
You can use Marketing
Cloud APIs, Salesforce
APIs, and we even
have MuleSoft APIs
We're going to use one
of our Data Cloud APIs.
Let's go ahead and pull
up our ingestion API.
OK, we're going to
use this ingestion API
to trigger a solar panel
event where we're not
receiving any energy
to our solar panel.
Let's go ahead
and fire off.
Now what happened in
the background was we
inserted a record
into our data
model object, which
triggered our Flow.
Then, our
transform happened.
And finally, a case
record got created.
So we fired this
flow a little bit
Let's go ahead and pull
up the case record that
got created as a
result. And here
we are, our case
record, created
from our solar panel not
receiving any energy.
All right, that's not all.
Remember, we have
another thing
that we're launching in
the Winter '24 release,
the ability to build
your own AI model using
Anyone in the room
work with data?
All right, here we are
in SageMaker Studio,
which is a tool that
data scientists use
to build their artificial
intelligence, machine
learning, and large
language learning models.
We're going to go ahead
and click Create Project.
And we have a new
project template
called Model Deployment
for Salesforce
that we can use to train
our data in SageMaker
Now, with this project,
we get a sample Python
Notebook, we get
already an API gateway
and endpoint, and we also
get some sample code.
All right, now we need
to create a connection
and import data
into our model
so that we can
train our model.
So let's go
ahead and click
And you can see here we
have a new connection
type in SageMaker
Studio to be
able to pull in data from
Salesforce Data Cloud.
Now, we already previously
created a connection.
So we're going to go to
our previously created
And you can see here are
all of our data model
objects and data
lake objects
that are currently in
our Data Cloud org.
Let's go ahead and
perform a query
to test that this
connection is working.
So we went ahead
and put in our query
and now we're going to
go ahead and click Run.
And here's the
results that
came back from our
data model object.
So we can see that
our Data Cloud
org is connected
to SageMaker Studio
OK, now that we've
trained our model,
we need to consume
our endpoint.
Let's go to
stage-- let's go
to Einstein Studio
and Data Cloud
So here we are in
Einstein Studio.
And this is new as of
the Summer '23 release.
Let's go ahead and
click into our product
Here, we have a
little bit of details
about our product
recommendation model.
On our endpoint tab,
we have our API gateway
And then, on the
Variable tab,
we have all of
the variables
that we can use to
make predictions
On our Outputs
tab is where
all of the predictions
from our model
OK, now, this is not all.
We also have the
ability to do
a one off prediction
using Flow.
So here we are
back in our Flow
and we're going to
enter in our product
And here, we just have to
configure these variables
and we can use these
variables as inputs,
once again, to make
recommendations
and predictions
with our model.
You can make
predictions in Flow.
We're developers,
so let's go ahead
and pull up
our APEX class.
So here we are in our
product recommendation
And once again, we
can use our model
We're going to set a
few parameters to use
as inputs to
make predictions
And our APEX
class is going
to output our predictions
and our recommendations.
Who's ready to build
some AI models?
We have a lot of
new functionality
that we're working
on on our roadmap.
Let's go back to
our roadmap slide.
So we also are
working on the ability
to bring your own model
with Google Vertex.
And we are working on a
no code, low code model
And that is how
you integrate
Amazon SageMaker
Studio and Einstein
Data Cloud is
quickly becoming
one of my
favorite products
as well because of
the sheer amount
of functionality it
has and the ability
And if you're getting
started with Data Cloud,
I would strongly
recommend you go on
to the Salesforce
Developers YouTube
channel and check out the
Data Cloud decoded video
Now, this is the
second time I bought up
Because we want
you to subscribe.
So take out your
phones, go to YouTube,
go to Salesforce
Developers,
and subscribe
so that you can
get all the updates that
we are trying to share.
Another thing
if you notice
that Danielle shared is
a Postman collection.
How many of you
have been using it?
With over 150k forks,
the Salesforce collection
on Postman is the
most used collection
on Postman leaving
Twitter and WhatsApp
I understand stunned
silence is good,
but an applause
is even better.
We are super glad
that our collections
So with that, let's move
on to our final chapter,
And to show you all the
updates that we have,
let me invite
Ewald to the stage.
I'm Ewald, and I'm leading
the developer experience
You just heard
from Danielle
about all the
innovations in Data Cloud
and how it
makes data in it
even more valuable
for an organization
And there is no better
way to explore that data
And I'm going to
show you today.
If I have the
clicker correct.
I'm going to show you
what we have delivered
this release for Tableau.
So first we're going
to have the Tableau
Lightning Web
Components that
allows you to seamlessly
integrate Tableau
into your Salesforce
experiences.
But Salesforce is
not the only platform
where you can
embed Tableau.
You can also embed
Tableau in any application
And it has never been
easier with the embedding
playground to get
started with this.
So let's see how those
features work in a demo.
Earlier, I created a
map in Tableau Cloud.
And to embed this
into your Salesforce
experience, all you
need is to copy its URL.
So Mohith, can you please
go to Salesforce and edit
And you might
wonder if you
can use this as an
ISV to include it
into your managed
packages and deploy it
to AppExchange, and
absolutely you can.
So here you see the
Tableau Lightning Web
And let's drag
it onto the page.
And the only thing
that you need
is to paste the link that
we just copied in here.
And that's all
that you need
to get your Tableau
visualizations inside
What Mohith
just showed you
works very well if
you want to bring it
But what if you
want to bring it
into an external
facing application,
like this banking app that
is developed on Node.js?
In the top, you
see some buttons
that are in the style
of the application that
allows you to
programmatically control
the visualizations that
you're seeing on here.
So you can switch from
monthly to quarterly
and you can filter the
data using controls
in the style of
the application.
We've made this
interaction
possible through the
Tableau embedding
And as I mentioned, with
the embedding playground,
it has never been
easy to get started.
So here's the
embedding playground.
And Mohith already
copied or pasted the URL
of the visualization
that you just
And here, you see
the connected apps
where you can paste the
secrets from your Tableau
connected app to
enable single sign
In the bottom, you see
the JavaScript in the HTML
window that contains
the boilerplate
code to embed Tableau
in your applications.
And we wanted to switch
between the monthly and
quarterly and
filter the data.
And we do that
with interactions.
So if you go with the
parameter values, which
is used to change between
monthly and quarterly,
you can drag
that code snippet
into the JavaScript window
to generate the code
And let's do the same
with the filtering
So we also grab
that code snippet,
drag it into the
JavaScript window.
And now, Mohith,
can you please
hit the Run button
to see the results.
And indeed, you will see
that the visualization
will switch to
the quarterly view
The only thing
that is left
to get this application
or this visualization
into your application is
copying the JavaScript
in the HTML and hook it
up to the right event
So let's go back
to the slides.
If this demo piqued
your interest,
then sign up for the
Developer Program
where you can get access
to a free Tableau Cloud
Developer Instance and
in getting started guides
to get you started
with Tableau embedding.
And remember, these
visualizations
are not just to
display numbers.
It is about telling
stories with data.
So let's get out,
embed Tableau,
and tell your stories
and inspire change
Thank you all and
back to Aditya.
That was actually awesome.
I mean, generating a code
snippet by just dragging
and dropping a few things
and embedding a Tableau
dashboard in a
web component
with authentication
being that easy,
I'm definitely trying
it out after I go back.
So that brings us
to the final segment
of Release Readiness
Live, which
is the Live Q&A, which
is what all of you
Hope your questions
are ready if you
If you are
online, Sarah here
is going to be
your representative
and she's going to be
asking the questions
If you are in
the room, just
raise your hand
and someone will
come running to
you with a mic
and then you can
ask your questions.
But your questions
need answers, right?
So let me invite
all of our speakers
back on stage to
take your questions
with a huge round
of applause.
All right, so
let's get started.
Sarah, do you have
a question for us?
This is history
in the making,
our first question for
RRL on Salesforce Plus.
So this is going
to be for Ananya.
Is there a reason
Einstein itself doesn't
run the code it uses
through the same process
So that is a really
good question.
That is actually
one of the things
that we have actively
planned on our roadmap.
But Einstein
for Developers
is currently just
in an open beta.
So as I mentioned,
we're just
getting started
with our AI journey.
This is one of the things
that we are actively
We want to ensure
that, eventually,
the code that
we're outputting
is something that you're
ready to work with
and is compilable
and following all
So do we have a
question in the room?
Any appreciation
is also fine.
Just get up and say,
we love this feature.
OK, we have a
question in the room.
So is there any roadmap
to generate the code
specific to your
organization?
I think the code what
Einstein AI generates
today is generic
code, right?
But if you want to
generate any code
to a specific use case for
any of our organization
maybe by analyzing
R code, is there
Yeah, again, this
is a great question.
So right now, Einstein is
generating code for you
that's relatively
more boilerplate.
But we are starting
on our journey
of actually
contextualizing
So in its current
state, if you explicitly
reference any metadata
in your prompt,
then we're grabbing that
associated entity schema
to make sure that
we're grabbing
the correct fields
and object names
And then, if you have
an active open file
in the editor,
we're also taking
a look at the
method definitions
that you have
within that file
and taking that
into account
So we're limited
in scope so far
in terms of the context
that we're grabbing.
But we do have
an active roadmap
on how we want to
actually expand that.
So eventually, we
want to get to a place
where we're also able
to understand your org's
And then, we're generating
responses based off
That's a really
great answer.
Thank you for
asking the question.
Sarah, do we have a
question from online?
Let's go to
Salesforce Plus.
I'm sure I missed it
in some other session,
but when will DevOps
work with Bitbucket?
So we have someone
in the audience who
Yeah, so DevOps Center,
for those of you
who are not aware, we
released it in December.
It supports
GitHub right now.
And one of the
most commonly
requested things is to add
support for other version
It has been one of our
top priorities this year.
So we are, in fact,
actively working
right now on adding
support for Bitbucket.
I think the roadmap says
right now that we're
looking at that
for some time
So it's under active
development right now.
As part of that,
we're building
what we're calling
a Service Provider
Interface for those
version control system
integrations within
DevOps Center, which
is going to allow us to
add additional ones more
quickly or allow anybody,
partners, yourselves
to actually incorporate
other version control
providers into
DevOps Center.
So that will allow
us to add other ones
like GitLab and
Azure down the line.
So we have a
question in the room
from the lady over there.
So Ananya, I'm
going back to you.
Einstein, when it is going
to auto develop the code,
would it work on custom
objects, custom fields
Are you bringing
all of that as well?
So our model has
been trained in a way
where it has an
understanding
of your standard objects
that Salesforce provides.
And part of the
contextual grounding
that our team has
been actively working
on adding thus far is
if you are specifying
any custom objects
in your prompt
itself, then we are
actually grabbing
the schema of
that custom object
and then using that
to then generate
So it should understand
your custom objects
I will preface this
by saying we're
So if it doesn't do
exactly what you're
looking for,
then definitely
provide us
feedback and that's
how we'll be able to
improve the model.
Before we get
to a question,
I see a shout
out from Conrad
He loves what
we're all doing.
Well, what the
PMs are doing.
Salesforce plus, Katherine
on Salesforce Plus
is asking, what are
the next level features
Greg, the
questions for you.
We showed the roadmap
pretty briefly.
There's refresh view
coming in this release.
Template expressions
is in closed pilot,
You can do
complex, basically,
think JavaScript
expressions
right within your
template to swap out
And like I said,
I'm super stoked
about actual
local development
so you're not having
to redeploy to org
Yes, I like the
arms raised.
That'll take a
lot of effort,
so don't expect it like
next week or something
because we're not like
Ananya and Einstein here.
But yeah, so super
stoked about that.
Do we have a
question in the room?
OK, we have two questions.
So will the APEX
large language model
be trained on, for
example, Andy Fossett's
enterprise patterns
and APEX mocks?
Question for you,
Ananya, again.
That, again, is a
very good question.
Right now, we
have trained it
on generally
available APEX code
and also customer provided
with permissive use
So at this point,
we're focusing
on understanding those
general high level
Salesforce best
practices and patterns.
In the future,
we are going
to be looking
at training it
on more specific libraries
such as Andy Fossett's FF
That's an awesome
shout out, by the way.
All right, let's go
to an online question
and then we'll
come back to you.
Ellie on Salesforce
Plus is asking,
is that ported in
data searchable that's
Is the ported in
data searchable?
Is that ported in
data searchable?
OK, I think what
they mean is
the data that has
been ingested in,
Oh, that's a
great question.
I'm going to throw it
over to my product experts
right here,
Sharda and Daryl,
if I could get
a microphone.
So the data
within the demo?
And you can explore
in analytics
All right, moving on to
a question in the crowd.
First of all, I want
to say thank you.
So it's really meaningful
this session, a lot
I just thinking, as a
platform prospective,
is there any
roadmap where we
are adding a
lot of feature,
adding AI, how the
governance limit--
because Salesforce is the
multi-tenant environment,
Is there any roadmap
giving relaxation
As a developer, I'm
just like-- that
So I'm just
looking forward,
is there any
roadmap for that
to give the relaxation
on the governance limit?
So you mean is there
a governance limit
on the number of
queries that you can do
on the Einstein platform?
At this point, there
isn't an active limit.
I might throw it
over to Daniel
in the audience to give
us more info on limits
Hello, I'm
Daniel Bellinger,
the APEX Product Manager.
There is no current
plan to change
the limits for CPU or
[INAUDIBLE] cycle queries
We're generally
looking to do features
that would make
it easier to chain
your jobs together
in more powerful ways
so that you can
address those limits
through those mechanisms.
But not within
individual transactions
because they're basically
service protection
All right, we have time
for one final question
from Salesforce
Plus or Twitter.
We're going to
try to get two.
First one is, I use
AppExchange LWC.
Why should I use
the native LWC?
I will take that
one and immediately
So Mark is sitting
next to you.
So the old AppExchange
LWC required a download,
so there were
security concerns.
And many modern day IDPs
don't allow a pop up
So with the
native LWC, it's
So when you hit the
Salesforce page,
as Ewald showed, it just
seamlessly shows the viz
without the user
having to log in.
That was actually a
really good question.
Should we take one more
from the audience here?
Does anybody else
have a question?
My question-- well
first, thank you
for the LWC support
for the Workspace API.
There's a lot
of extra code
that I've written over
the years to support that.
A follow-up to that would
be the utility bar API.
Are you looking
at supporting
Yeah, that's in that list.
I don't know if
it'll be a one to one
to the current
utility bar API.
But yeah, keep the
feedback coming.
And I'm pretty sure it
is in that top 10 list
But yeah, we're
exploring all of them.
So please IDE
exchange because that
is where we go to for
the reprioritization
that if you've attended
true to the core that's
kind of where we go look.
All right, so I think we
are almost out of time.
And that was Winter '24
Release Readiness Live