For this year's edition of TrailheaDX, because of the COVID-19 pandemic, Salesforce transformed the event into a single day fully remote event.
The event is split into 4 separate trails: Developer, Admin, Architect, and Community/Ecosystem.
While there was too much content for one person to see in a single day, here are the announcements that caught my eyes!
Salesforce anywhere:
While chatter can be a great way to communicate within Salesforce, I think we can all agree it is limited in features but also looks pretty old. Salesforce Anywhere will probably replace Chatter in the future.
Salesforce Anywhere is a new collaboration experience, available on mobile, that allows chat, call or video call, directly from within the platform.
It is currently available in beta, but I can't wait for it to be GA.
Data Privacy Manager:
Salesforce introduced the Compliance Data Categorization field back in the Winter '20 release. You can use that field to categorize the compliance level required for a field, whether it's a PII (personally identifiable information) or PCI (Payment Card Industry).
The Consent Event Stream will automatically track and generate events when some field with a compliance level is updated, making it easier to enforce access and update compliance on those fields.
Salesforce Code Builder:
It was announced yesterday (see Salesforce <3 Codespace) but we had the opportunity to watch a deeper demo of the new capabilities of this cloud IDE.
You can use Salesforce Code Builder, built on VSCode and Codespace, directly in your browser to code, manage and deploy your metadata, just like you would with your desktop VSCode installation.
The Salesforce Expansion Pack, a VSCode plugin made for Salesforce development in the IDE, will also get a great upgrade: a new SOQL query builder, allowing to create complete queries without coding.
Salesforce functions:
Salesforce functions were first introduced as Evergreen functions back in Dreamforce 2019 (see Dreamforce 2019)
Functions are a fully integrated way of executing code (not only Apex but also Javascript!) inside managed Kubernetes. You can, for example, use a Function from a Flow just like you would use an Invocable to run Apex. They can also be packaged and deployed like any other metadata on the platform.
Since Functions are running "outside", you don't have the usual governor limits about CPU Usage or Memory, making it possible to perform more complex tasks without leaving the trusted Salesforce platform.
I am using quotes when saying "outside" because since they are still running in the Salesforce managed ecosystem, you get all the security and compliance benefits of the platform. It's also possible to access your Org data from a Function with built-in APIs.
For those of you with experience in other Cloud Providers, you can think of Salesforce Functions as the Salesforce equivalent of AWS Lambas or Azure Functions!
Flows:
The new Flows functionality will make them the go-to automation tool on the platform. Salesforce is now allowing Flows to be triggered whenever a record is saved, or even whenever a platform event is published.
We no longer need to create a Process Builder to invoke that Flow, reducing redundancy, and making the automation more straightforward.
Apex:
A few great announcements for Apex, coming most of them available in the Winter 21' release: Safe navigation operator, Finalizers and Promises, and the SOQL Fields(ALL):
Safe navigation operator:
Similar to other languages syntax (like C#), Salesforce now supports the '?.' property navigator, preventing the risk of a null reference exception by returning null if an object is null along the property chain.
For example, we will be able to write something like 'Foo?.Bar?.size()' to access the size of a collection without having to perform explicit null check on any objects.
Promises in Apex are a lot like Promises in Javascript, where you can chain a subsequent task using the 'then' keyword. By using promises in Apex, it becomes possible to chain multiple Queuables one after the other in sequence.
Finalizers are really just a way to handle success and errors after the execution of a queueable, making it possible, for example, to perform an outbound call in case of a failure.
It's a really great addition to the framework for resiliency and error handling.
Okay this one was introduced really fast and I couldn't find any documentation regarding that new feature, but it's super exciting: 'SELECT * FROM Foo is coming in SOQL!
Just like in standard SQL, it will be possible to select all the fields on an object without explicitly selecting them.
Miscellaneous:
Salesforce released an official Postman API Collection for most of their APIs. It's a great way to familiarize yourself with them and it's really easy to try them out with Postman.
More information available right here.
Well, that's it for this remote edition of TrailheaDX!
As always, the content was really interesting and we had the great opportunity to actually chat with some Salesforce team members to learn more and ask questions about those upcoming features. That openness and availability are really special and greatly appreciated.
Enough about my experience, what about you?
What was your favorite announcement?