Wednesday, January 1, 2020

Top 10 Unlocked: Spring '20 Release Preview

January 01, 2020 Posted by Pat Penaherrera No comments


The Salesforce Spring '20 Sandbox Preview is nearly upon us (for more information on the Spring '20 Sandbox Preview window, check out this blog post from Rohit Mehta on the official Salesforce Blog for all of the details).  If you're like me, you can't wait to get your hands on a sandbox preview instance.  You've also likely been diving into the Official Release Notes (currently in preview) to get a glimpse at all of the "cool new toys" that will come packed within this release, earmarking those that will likely have the most impact for you, whether that's due to your current role or active projects, or due to your personal interests and curiosities.

As this is my first official "Top 10" list, I'll share a little bit about what you can expect to see.  Firstly, these lists will be based on my personal opinions and nothing more, or nothing less.  Secondly, I'll be focusing more on sharing my unique opinions, thoughts, and insights related to the items in the list versus regurgitating the available source material.  In this case of this specific Top 10 list, it means I won't be rehashing the specs for any of the features that make the list unless it's relevant to the context of my opinions.  Instead, I'll link out to the feature summary within the Spring '20 Release Notes so that you can learn more.

Without further ado, here are my Top 10 Feature Picks for the Spring '20 Release!

#1 - Before-Save Updates in Flows

I'm truly excited about this one.  Flows have come a long way since they first hit the scene years ago (GA in Spring '12 and as a beta/pilot before that), and they have the capacity to be incredibly powerful automation tools.  I've been sharing within my circles that the Flow Builder, or rather what it has become, is essentially a Visual Trigger Builder.  With Spring '20, that statement has never been more valid (of course, it is more than that, too).  Admins and App Builders have been empowered to create super-efficient update procedures, essentially equivalent to Before Insert/Update Triggers, solely using Flow Builder (no development required).  What I find even more fascinating is the statement that "before-save updates in flows are executed immediately prior to Apex before triggers" in the Save Order of Execution.  How crazy is that?  Flow is now usurping Apex Triggers in terms of precedence!  Personally, I am curious to learn what this means for the future of development on the platform.  With so much investment from Salesforce in expanding the capabilities of the declarative automation tools on the platform, what will become of programmatic tools like Apex Triggers?  Could Salesforce be laying the groundwork for a future without Apex Triggers as we know them?  Probably not.  There are still plenty of use cases for Apex Triggers today, so this is likely not the case (or at least, not for quite a while yet), but the move definitely made me ask the question.

Another exciting enhancement for Flows!  And, if I might add, long overdue.  Old-school Workflows and Process Builder have long been running in System Mode when it came to things like Field/Record Updates, but not Flow.  If you wanted to do something like, say, update the Record Type of an Account based on the selections of a user in a Screen prompt, the user would have to also have permissions to create records with that Record Type, too.  If not, the Flow will thrown an error.  Previously, you could get around this with some ugly tactics (such as updating another field on the record that then triggers a Workflow or Process to flip the Record Type, or worse, create an Invocable Method in an Apex Class to do it, which you call as an Apex Action in your Flow), but who'd want to do that?  Now, you'll never have to think such ugly thoughts again.  Enter: System Mode for Flows!

Oh, remember what I said earlier about Flow Builder being a Visual Trigger Builder?  More evidence to support my bold claims.  Again, I cannot help but wonder what grand plans Salesforce has for the future of development on the platform when declarative tools like Flow Builder can now go toe-to-toe with programmatic tools like Apex Triggers.  The goal, I'm sure, is simply to empower Admins and App Builders to do more without the need for expensive custom development, but I continue to wonder.


#3 - Turn Off Automatic Preview Updates to the Lightning Report Builder

FINALLY!  I cannot tell you how frustrating it has been to create or update reports using the Lightning Report Builder.  Sure, reports look great in Lightning, but dang!  Talk about a painful experience.  I had previously requested this capability on the IdeaExchange a while back, and I'm just happy to see that it is finally coming.


#4 - Permission Set Groups are Generally Available

The future of permissions management is here!  Permission Sets were a game-changer when they first debuted, and now that Permission Set Groups are generally available, the game has changed again.  The release notes provide a great example of how you can organize permissions efficiently using Permission Sets and Permission Set Groups, but there is so much more value to this pattern than meets the eye.  Firstly, this pattern allows you to organize permissions in a meaningful way.  You can now break down the "happy soup" of permissions that used to be mixed together in a single Profile into reusable collections, which is a huge cost savings from a maintenance perspective.  This is more or less the same best practice followed by developers when managing popular snippets of code.  For instance, you never want to replicate or rewrite the same snippet of code within two or more Apex Classes.  This creates a maintenance nightmare.  Imagine if the requirements for that snippet change at any point in time.  You'd then need to update all Apex Classes where the code is replicated, which is many times more effort than should be needed.  Plus, if you forget to update one of those classes, then your business logic breaks for any application using that class.  Instead, a developer creates a single utility class that can then be referenced by any other applications or code that may need it.  If the requirements change, the developer updates the utility class once, and all consumers benefit from it.  It is now the same with permissions.  Instead of replicating the same permissions across multiple Profiles, use Permission Sets to centralize those permissions.  Group related Permission Sets into Permission Set Groups that represent job roles, and assign those Permission Set Groups to your users.  If access requirements change, update the applicable Permission Set once, and all consumers (i.e. your assigned users) benefit from it in one fell swoop.  Beautiful!  And secondly, with such a pattern, your dependency on Profiles is significantly reduced.  In fact, for my implementation, we've put out a "cease and desist" notice on the creation of any new Profiles going forward.  Unless there is an absolute need, we're investing instead in Permission Sets and Permission Set Groups, and the vision of the future I've outlined above.

Personally, I think the writing is on the wall: Profiles are the on their way out.  Granted, there are still some things that we rely on Profiles for today (such as Page Layout Assignments, IP Restrictions, etc.) but I suspect that will change with future releases.  We're already seeing less of a need for traditional Page Layouts with the new Dynamic Layouts feature in the Lightning App Builder, and that is another dependency down.  I predict that the sun will be setting for Profiles altogether; it is only a matter of time.


#5 - URL Hacking in Lightning Experience

Not too much to say about this one.  We had other options for creating the same type of behavior, but it took a little more work to accomplish.  I always appreciate a good "URL hacking" here and there (I know it is not technically a "hack" if it is a supported feature of the platform, but let's face it, they'll always be "hacks" to us!), and this will certainly make our lives easier.


#6 - Dynamic Invocable Actions

Flows make the list again!  This release truly has a lot of goodness baked in for Flows.  Programmatic and Declarative Developers both win with this deal.  The ability for a developer to build an Invocable Method in an Apex Class that will work with a generic SObject or collection of SObjects is huge.  It means improved scalability and reusability for our solutions.  Simply put, do more with less.  And when we are talking about custom code, less is good. ;)


#7 - Einstein Voice Assistant (Beta)

We all have digital assistants these days, and they can sure be handy for basic things like checking your calendar, checking the weather, and looking up some basic information.  If you want them to do anything super-impressive, however, you've got to wire them up to custom skills that you create to serve your specific needs.  Einstein Voice Assistant shows a lot of promise as the digital assistant for the platform, with amazing potential to transform how our users interact with Salesforce while on the go.  While we can create voice skills to do things like create or update records, log activities, and so on, what I'd really love to see is the ability for Einstein Voice to be wired up to a custom piece of business logic, such as a Flow or an Apex Class, for instance, such that custom business logic could be executed via a simple voice command.  With that type of flexibility, Einstein Voice Assistant could prove to be extremely powerful.  Either way, I'm excited for this new feature, and to get it into the hands of my mobile users to help simplify their day-to-day routines on-the-go.


#8 - Inline Editing for Collaborative Forecasts

I've been waiting for the feature for such a long time now!  This was the big feature on a very short list of gaps that I needed in order to sell the feasibility of the native Forecasting option on the platform.  The problem for my stakeholders was that end users could view their Forecasts conveniently using Collaborative Forecasts, but had to navigate away to make any changes to the Forecast (i.e. to the Opportunities themselves).  As such, a custom UI was required in order to provide the same visual aggregations along with convenient editing all from one screen.  With a previous release, Salesforce added the ability to launch the native Edit modal for an Opportunity, which was great, but now with inline editing, I feel that users can intuitively and completely manage their Forecasts from a single screen, and all via the native platform offering.  I'll definitely be revisiting Collaborative Forecasting for my current implementation, and advocating that we adopt it in lieu of keeping around the technical debt that we had acquired in the past.


#9 - Deliver Targeted In-App Guidance Using Profiles

The ability to conditionally execute a piece of business logic is a cornerstone of automation, especially for enterprise customers.  The reality is that, in most implementations, our users are not "one size fits all".  Different users have different needs.  Any automation tool that rolls onto the platform in an "all or nothing" state is handicapped right out of the gate. That was the case with In-App Guidance, a tool that had great promise but needed a little more flexibility in terms of defining our audience.  With the ability to now define your ideal audience by Profile, In-App Guidance takes a major step forward in viability.  It is a feature that I can now certainly consider for JIT (or Just-In-Time) education for my end users.


#10 - Einstein Opportunity Scoring at No Extra Cost

Well, it's about time!  Including AI as part of the core platform is a smart move for Salesforce, and Opportunity Scoring is arguably the most vital piece of intelligence available for a Sales organization. Opportunities are the bread-and-butter of any Sales app, and empowering your users with AI to know which Opportunities to go after, and all for free, is big.  That said, this is not only a tactic to make AI accessible for every customer, but it is also a viable marketing strategy.  Once customers get a fix of AI in the form of the now-free Opportunity Scoring, they may come back for some of the premium services that are still available at an additional cost.

Focus on the Right Deals with Opportunity Scores


So what did you think of my first Top 10 list?  Hopefully you found this post helpful and insightful.  I welcome you to share your thoughts, feedback, and any questions you may have in the comments below.  I also welcome any suggestions or recommendations you may have for these lists in the future.  My goal is to help the community with the content I share, so tell me what you'd like to see, and perhaps I can make it happen! ;)



0 comments:

Post a Comment