Salesforce Winter’21 Development release is full of surprises for developer-oriented consultants and administrators. In this article, I’ll show you my favorite features of this release (especially the ones that support the 80% clicks 20% code culture that Salesforce is well-known for), along with others that I found to be quite cool as well. Plus, I will give you a little reminder about a security update. Sound good? Just start reading!
Record-triggered flows are being improved
Salesforce provides flows as one of the tools for developers and administrators to create automations, minimizing the amount of code that needs to be written. In Summer ’20 release, a marvelous feature was released: record-triggered flows! These make it easier to accomplish more complex record-triggered automations without writing Apex code. As for Winter’21 Development release, Salesforce improved, even more, this Summer’20 cool feature. It is now possible to trigger those flows only for specific record changes, which is huge news for performance optimization. Also, we are now able to trigger it when a record is deleted. Sounds interesting, doesn’t it? I will demonstrate it.
Consider the following scenario: a simple data model of Child Courses grouped with a Parent Course. One parent can have multiple children records, and the children have only one parent record. Since it’s a relationship within the same object (recursive relationship, or “self-relationship”), I’m stuck with a Lookup field type.
1. Record-Triggered Flows That Run Only for Specific Changes
Why:
Since I cannot create Roll-up Summary Fields I need to trigger a custom automation when the field “Duration” on my child courses record is changed, so I can sum all child durations and populate the result on the parent record “Duration” field. Fortunately, this action couldn’t be any easier with this update!
How:
Simply set the condition requirements:
And quickly build the logic:
Done!
2. Trigger a Flow to Run Before a Record Is Deleted
Why:
Since I cannot create a master-detail relationship, I need to trigger a custom automation to clean the database when a parent record is deleted.
How:
Configure the trigger:
Simply set the condition requirements:
And quickly build the logic:
Easy and fun, isn’t it?
For those who find creating flows messy…
Up until Summer ’20, the Flow Builder only contained a drag-and-drop canvas, on which the consultant would simply drag and drop elements to create the required logic. On Winter’21 Development release, Salesforce introduced “Auto-Layout” for flows, a (currently beta) feature that auto arranges and aligns flow elements into the canvas, helping to get well-organized flows. Finally, no more elements positioned slightly out of alignment!
After the release is rolled up, the following dialog will appear when you create a flow:
And it also works for previously created flows! For the purpose of demonstration, I’ll take the example shown on the “Record-Triggered Flows That Run Only for Specific Changes” section, for instance. I can simply check on “Auto-layout (Beta)” on the top:
And, voilà, the magic is done!
Build Multi-Column Screens in Flow Builder
These are huge news for Screen Flows. Up until now, if the developer wanted to keep a standard approach, without writing code, screens on flows were quite basic. Fortunately, the Winter’21 Development release introduced a screen component called “Section”, which allows us to build multi-column screens! It is, however, a feature available in a pilot program, and the administrator will need to contact Salesforce in order to participate and have this feature enabled.
How:
Manage Deleted Fields in Lightning Experience
Managing deleted fields always required the developer to switch to Salesforce Classic. With the Winter’21 Development release, Salesforce has migrated this functionality to Lightning Experience. Quite convenient!
Dynamic Forms
Salesforce has heard our payors! With the Winter’21 Development release, another very cool and very useful feature has become available for all orgs: Dynamic Forms!
Some implementations require a quite considerable number of fields, related and dependent on other fields. Yet, adopting record types is still not justified or simply not a reliable approach according to Salesforce Best Practices. Therefore, the developer would end up creating a custom component or just accepting a monotonous and messy outcome.
With Dynamic Forms, we can put our fields as single components, using all the powerful built-in functionality of a Lightning Record Page – conditional rendering, placing fields on different sections of the page.
However, this feature is only available for custom objects.
Restrict Access to @AuraEnabled Apex Methods for Authenticated Users
Last but not least… Salesforce already introduced this security update on its last release, but with Winter’21 Development release it is has been enforced: if you have @AuraEnabled methods on your org you’ll need to grant access by profile or permission set, otherwise, your components will stop working for your users (until access is properly granted, of course). Important information, right?
SUBSCRIBE KNOWLEDGE CENTER
Subscribe for free to Knowledge Center's monthly digest to receive the hottest news and newest posts directly on your Inbox.