(bright upbeat music)
- [Narrator] Because future looking statements
are inherently subject to risk and uncertainty,
a reminder is that you should make any purchasing decisions
or investment decisions based on products
that are currently commercially available.
- Hello, Stephanie and Claire, from the tooling team here.
Our team builds the tools you use
to build on the platform
like the CLI and extensions for VS Code.
We wanna show you the latest ingredients.
So let's dive in.
- We built tooling for all developers.
So I'm first wanna talk to you about the new features
we have for our Low Code friends.
Introducing the SOQL query builder.
Now in beta,
this new tool allows you to build software queries
with clicks, and then if you want
extend with code.
This is now available for download
in the VS Code Marketplace.
Let me show you how it works.
Before you can start building,
I need a Salesforce project set up
and this is one that I already have ready to go.
I also need to be connected to a Salesforce Org.
One of the great features of our extensions
is the Org picker,
which allows me to see what Org I'm currently connected to
and also lets me switch between Orgs
and authenticate to new ones.
I wanna query against my scratch Org
which is called EBIKES so I'm ready to go.
To use the builder,
I need to create a .soql file.
Let's call this one demo.soql.
Then I can open up the file with the builder
by right-clicking and using the command palette.
I wanna see a list of the products by category
that we are selling on our website.
I first select my object from this dropdown
because I'm connected to the Org,
I have access to every standard and custom object available
and I can query against that data.
If I don't have permissions to see an object
for some reason, I will not see it in the dropdown
nor will I be able to run a query against it.
Our VS Code extensions recognize the same permissions
as the Org itself to protect you and your customers.
In this case, I want to query against
a custom object name, product
and I wanna select the fields that I care about
which are name and category.
I also want to see my output ordered by category
which I use this order tool for.
I wanna see the results in ascending order
and I want to see the no results last.
As you can see, as I click,
a query is being written for me in the preview pane.
the underlying text .soql file is available to me
in my scripts/soql folder.
If I wanna do something more advanced,
like joining another dataset,
I can navigate over to the file
and use the text editor to finish writing my query.
With just a few clicks, I was able to build a query
and now I wanna run it here in VS Code.
This makes it easy to check my work
and get answers to my questions fast.
I also now have the option to save my output
in my preferred format.
I want a CSV, so I choose that option
and this gets saved in my scripts/soql/soql results folder
which actually was automatically created for me
because this is the first time I've exported the results.
Powering the builder is a new software language server
that we are currently building.
This is going to upgrade the SOQL experience for everyone,
whether you prefer coding, in the editor,
or using the builder.
As I said, we just launched the builder in beta
and the new SOQL language server
is currently in development.
We are actively adding to these projects as we speak
and our project is now open source on GitHub.
Look forward to updates as often as weekly
and let us know what you think by submitting issues
on our SOQL builder repo.
Another feature that is especially helpful
is the Org browser,
which many of you are probably already using
to find and retrieve your metadata,
but we just made it better.
I can find the Org browser via the cloud icon
on the activity bar.
From here, I can now retrieve
and open a file with just one click using this new icon.
This lets me jump right in to the code
and is especially helpful
if I need to make a really quick change
and works similar to the experience in developer console.
I just need to update my query, save it,
and then click deploy,
and all of my things are done and in my sandbox.
By the way, have you noticed how much faster deploys
and retrieves have gotten this year?
We've done lots of work to make all deploy
and retrieve commands faster and VS Code,
especially on Windows.
You should see substantial improvements
particularly for single-file scenarios.
This work is currently in beta.
Those are a couple of things
that we're making progress for in the clicks and code.
Stephanie, what are the great things going on
in the world of productivity?
- Well, Claire, I'm glad you asked.
Increasing productivity with our tools
has been a big focus area this year.
More than ever,
we all need to be more efficient
and knock things off our list more quickly.
This year, we've been working on foundational elements
that not only help you experience today,
but set us up to iterate faster.
Let's start with checking out the tooling
for lightning web components.
Before I jump into code,
I want to announce the GA of code preview.
Code preview allows you to build,
run, and test your lightning web components
without deploying code to your Salesforce Org.
We announced the beta of this feature
last year as local development
and are proud to make it generally available to all,
with the revised name.
So let's see it in action.
I'll start at the code preview home
which I can access from VS Code.
Here, I can see all the lightning web components
in my project.
If I have multiple packages in my project,
they're listed on the left
so I can explore all the components.
I can search and click on one to see what it looks like.
This is especially helpful
in large projects that uploads a components.
It can also be handy to check out a component
and interact with it before you dive in the code.
If I wanna look at another component,
I can use the breadcrumbs to navigate back to the list.
We've broadened our support for base components
and made more modules previewable,
so you have a consistent local experience
when using code preview.
Let's create a new component.
So let me switch to VS Code.
I already have the SFDX project open.
So I'll go ahead and create a new component.
I'm gonna name this CLOCK,
and I'll tell you more about what it does here in a minute.
Although, you can probably guess.
By the way,
did you notice how quickly that component was created?
Like deploy and retrieve,
this is another place we've made
performance improvements this year.
When we built these tools,
we made everything available to script and automate.
That's why the CLA
has been the foundation of the extensions.
When you would run a command,
it would start a process to execute it on the CLI.
We are working to split the CLI
into plug-ins and reusable libraries with the core logic.
Both the extensions and the CLI
now consume these libraries directly.
This re-architecture
delivers a faster experience in the extension
while still allowing you to script
and automate anything you want.
The separation also gives you direct access
to the open source libraries,
so you can use them to build or extend additional tools
if you wish.
We made this change for create
and most of the apex commands.
We just completed the library
for the deploy and retrieve commands
and it's in use in the extensions.
Soon the CLI will consume
that library as well.
For now, you need to toggle,
deploy retrieved preference in VS Code
to enable using the library.
Soon this will be the default and no opt-in will be needed.
We'll continue to work overtime to expose more libraries.
Okay, now back to this component.
I'm creating a very simple clock component
that will allow users to see the time
and the customer's time zone
when they look at an account.
It's a simple but helpful little component.
I'm gonna just finish pasting in my code.
Okay, let me save this.
And now let's check out the preview.
I'm going to right-click and choose the preview command.
For this one, I'll choose desktop.
Now let me just rearrange my windows,
so you can see both the preview and VS Code.
Ooh, looks like my code has an issue.
Luckily, code preview is telling me the error
and where to find it in the code.
It even has a handy link
that will take me back to VS Code.
Open to the file and line number that has error.
I clearly see my mistake here.
Let me just add API to fix that, and save it.
And as soon as I save, the browser picks up the change
and shows me the new version
allowing me to iterate quickly.
I've been previewing this component in a browser window
but you can also use Android or iOS emulator
to check out the mobile experience.
Let's see what this one looks like on iPhone.
I'm gonna choose the same preview command.
And this time, I'm gonna choose the iOS simulator.
I see all the iOS versions I have set up,
and for this one, let's go for iPhone 11.
Now the component comes out in the iPhone simulation
so I can verify the mobile experience.
Look at all I can do right from my project.
Those are just a few
of the latest improvements we've been working on
with your productivity in mind.
Claire, what else has the team been up to?
- I'm glad you asked Stephanie.
Many of you probably noticed
the CLI team has been hard at work writing on the tool belt.
The monolith that includes the majority of horse commands
and open sourcing groups of commands.
This project is part of our ongoing dedication
to open source
and the perfect time for us to refactor our commands.
This refactoring includes a lot
of performance and reliability improvements
which we hope will make using the CLI more powerful.
While doing this work,
we have also taken the opportunity
to update the hierarchy of commands,
where it makes sense.
For example,
the Auth commands now have their own namespace.
To authenticate to your Org,
you now run SFDX off web login
instead of SFDX force off when log-in.
This is part of our larger unification effort
across the platform for tooling.
As more tools come to the platform,
you will be able to authenticate to all of your environments
that you need to get your job done with one CLI.
And some of those tools don't make sense
under the forced namespace.
For example, in the future,
you'll be able to authenticate two functions environments
with the same off command
that you use to authenticate to an Org.
Don't worry about your scripts though,
we have aliased all of these updates
so your old syntax will continue to work.
We have also introduced a couple of new commands,
config unset and alias unset,
which are handy commands
that let you manage your convenience variables
and your aliases right in the terminal.
As I mentioned, we are open sourcing each set
of command in our Salesforce CLI Organization on GitHub.
This way, anyone in the community
can look at our code and if they have improvements
put forth a PR.
So far, we have open source,
the alias, off, config, limits, schema, and user commands
and we are actively working on more.
In the force.com GitHub Organization,
we also have those source deploys, source retrieve libraries
open source, that Stephanie was talking about earlier.
The VS Code extensions have always been built in the open
and so far this year
we have over 30 community contributions.
We truly appreciate all of this work
and we want to thank everyone who has contributed.
Please keep it coming.
The CLI team has been really focused on breaking up
our monolith and we suggest we do the same.
We work really closely with the other teams
in developer services
to bring you a great developer experience,
and that includes packaging.
Recently, the packaging team has introduced
four dependent unlocked packages
as a way for teams with large and legacy Orgs
with lots of interdependent metadata,
to break up the code into packages.
Using the Org dependent flag
when running the package create command,
you can create packages
that are dependent on unpackaged metadata
that is in the Org.
That is a mouthful, but it is super powerful.
These packages enable you to package metadata
without completely accounting
for all of the metadata dependencies.
This is a great way to start breaking up your Orgs
and getting the benefit of faster deployments
by logically grouping your metadata.
Org dependent unlocked packages are in beta,
with an expected GA of spring 21.
Try them out in the CLI today.
The packaging team also recently introduced
the most sought after enhancement for packaging ever.
You can now delete packages and pack a diversions.
So this should allow you to unclutter those forms
with all of those test packages you created.
You can run the force package delete
or force package version delete commands
commands to perform these actions,
as long as you have the delete second generation
packages permission.
This is one less excuse not to try out packaging.
Finally, I wanna mention one more thing about the CLI
and Salesforce projects.
We now support multiple package directories
in the same Salesforce projects.
For many teams who are attempting to break up their Orgs
with either packaging
or just wanna logically group their metadata
into directories.
They often struggle with deploying
and retrieving that metadata
because they wanna have everything in the same project.
This is now no longer an issue
and it's supported in the CLI.
When setting up your project.chase on file,
you just need to list your package directories in the order
you wish to deploy them accounting for your dependencies.
Thanks for listening.
We hope you enjoyed the updates
and we'll find these features useful.
Head over to our get help repo
and give us feedback directly.
We didn't have time to cover everything going on in tooling
but you can also check out the developer blog
to get more updates until we meet again.
Take a picture of this slide to learn more and get started.
(soft uplifting music)
(uplifting music)
- [Narrator] Dun and Bradstreet's optimizer
for Salesforce helps continuously improve
and maintain CRM data quality.
With DNB optimizer,
you can set custom rules for automated data hygiene,
clean and enrich records to make your data more accurate.
And build hierarchy's
to identify your best sales opportunities,
all within Salesforce.
Checkout Dun and Bradstreet's optimizer
on app exchange to learn more.
- [Narrator] These days,
businesses need to succeed for all of us.
It isn't enough anymore to defeat the competition.
Winning isn't really winning,
if it's just for you.
That's why companies small and large have pitched in
to help 1T.Org, plant trees around the world.
It's why Salesforce created sustainability cloud,
a tool that helps companies understand their emissions
and take their sustainability to new heights.
You can do the right thing and still aim high.
You just need to aim high for everyone.
Let's join forces and together we can bring doing well
and doing good
together.
(upbeat music)
Hi, I'm Jeanette.
And this is my customer 360 story.
Cantel is in the business of helping to save lives.
We use customer 360
to combine sales and service, and the customer experience
to make sure that our customers and our patients
are taking care of.
Our field service technicians
have work orders dispatched to them
which they looked at on their iPad.
And they'll be able to see what customer needs service,
what machine or equipment needs service.
And they're able to work with that customer to
schedule them at work will be completed.
It helps them plan their day,
helps them plan their week or even their month.
It allows them to get a complete picture of the customer
and make sure that we are taking care of everything that
needs servicing.
When I think about Salesforce,
the words that come to mind,
collaboration, trust, transparency, family.
Nothing is more important to us
than the customer experience.
That's the most important thing to our business.
We want happy customers
and we want happy patients,
and we want healthy patients.