Its been almost 4 months since I decided to start planning for a new career…
2. Salesforce Summer 20 Features – Service Cloud, Einstein for Service, Einstein Bots and Field Service Lightning
3. Salesforce Summer 20 Features – Communities, myTrailhead & Quip
Salesforce’s Summer 20 is approaching; we’re just about a month away from hitting the first wave of customers. We’re right at the middle point of our 5-part release write-up. In Part 1, we covered all of the Sales Cloud and general features coming out. For Part 2, we covered the huge update to Service Cloud, Field Service Lightning, and Einstein for Service. For this part, we’re shifting our focus to the collaboration features – Communities, Chatter, Files, Quip, and myTrailhead. This is the first release I can remember in a long time that literally had no updates to Chatter, so nothing to cover there – but it is another big release for Communities and Quip in particular.
Keep in mind with Communities that you typically need to do an update to your Community version for a lot of the template changes to apply. They don’t just appear like some of the other clouds. Also, if you are a user of Public Communities you must read the changes going on with Guest User access. This is a massive change that started with Spring 20 but is rolling out even more in Summer 20. I can’t stress enough that this could have a big impact on your public community if you don’t prepare for it.
I’m feeling a bit mellow today, so going a little old-school with some trip-hop from Lamb today. Let’s get into this. As always, the order is more based on the features I think are the coolest but otherwise is pretty random.
- LWC Based Template – In Spring 20, the LWC Based Template came out as a developer preview option only. Basically you could play with it in a sandbox, but you weren’t able to deploy it to production. With Summer 20 it is now in a pilot which you’ll need to be sponsored in order to get access to. We don’t normally discuss pilots – let alone developer preview features – so why are we bringing this up and making it the first thing we discuss? Well, as we discussed in the Spring 20 post, this really is a game-changer type feature and while it might not help an existing Community that you have until it’s GA, if you are considering a new Community this is definitely something you want to look at and understand. I’m going to steal a bit of my Spring 20 post here instead of figuring out a different way to re-write the same content, but basically, here’s where an LWC Based template will help.Over the last few releases, Salesforce has been rolling out the ability to create Lightning Web Components (LWC). LWCs are essentially replacing the older (but still not that old) version of Lightning components with Aura. Lightning components were terrific compared to Visualforce but they had some limitations which tended to hit more with Communities than internal Salesforce, as Communities are usually trying to be part of a website experience. The new LWCs are much more like traditional web development (think frameworks like Angular) and due to this they simply perform better and give your developers much more flexibility. For Communities, in particular, this is a very good thing. As of right now, you can leverage LWCs but there are some limits to dropping them into your traditional Lightning templates. This all goes away with this new LWC Based template. This template completely lets you leverage LWCs and really is a roll-your-own type template. Basically, use one of the pre-packaged templates, or if you want your own custom Community, use this template and LWCs and have at it. This opens up a ton of potential for what you can do with Communities and will let you get to that pixel-perfect experience much more easily than you can today (the irony is, the original Lightning components are only a few years old, and if you think about how long we were working with Visualforce to do this, this is yet another massive step above where we were just a few years ago…). Keep in mind though, this truly is a build-your-own template – no more Community Builder (sorry, Experience Workspaces) – so you need developers to do this. This is not a drag and drop community an administrator can build (unless that admin is also a developer, of course). The LWC template has some new improvements since Spring 20 – like flexible layouts for pages and some new components for rich content and tile menus – but, really the overall approach of LWC is what’s really exciting. As I mentioned at the top, if you are looking at a new Community, this is definitely something you want to consider – but, it’s not for every community. LWC Communities will give you complete control in a more traditional web development approach but because of that, you’re going to need more / different resources to support it. If you need that level of control though, this now gives you that option. However, if you don’t need that total control, the other templates will let you roll-out a community much faster and with much less effort. This is a decision you’re going to need to balance for each community you build – but at least now you have those options to consider.
- Guest User Security Adjustments – If you have a public community or are leveraging a public page hosted on Sites or sites.com – like a form, etc. – this is a must read. We talked about this change in the Spring 20 post when it first was announced and looked like it was going to be effective. Probably because a lot of people weren’t ready (clearly, not everyone reads this blog), Salesforce made a lot of the updates “recommended” (in other words, “we strongly recommend you get moving on this”) with Spring 20 and now these are kicking in mandatory for Summer 20. This change is big enough that Salesforce has actually been calling customers and leaving voicemails about this. So, this is serious and can break your customer-facing functionality if you don’t make changes to get ready for this. Basically, the guest user changes are a series of security changes that will lock down the guest user that is leveraged a lot for public-facing functionality. Looking at these from a security standpoint, they all make sense and are tough to argue with – but for those of you that have built on top of the guest user, these are significant changes. You’ve got about 6 weeks to address what you have in place, and then your guest user will start hitting security issues when you go to Summer 20. There is actually an opt-out from all of these changes – but you need to actively opt-out to get it. This buys you one more release as it’ll keep these settings from turning on until Winter 21. So, either way, you need to figure out your plan of attack. Seeing as how this functionality is all customer-facing and public, this becomes that much more sensitive to get fixed ahead of time. So here’s what’s changing:
- Guest User Data Permission Changes – This is probably the biggest change you need to review for your current setup to make sure you’re not impacted. For instances created prior to Summer 20, the guest user is now getting View All Data, Modify All Data and Delete permissions removed for all custom & standard objects – IF – you hadn’t explicitly given them this access previously. For now, guest users also can retain their edit access to custom objects and three standard objects: Orders, Contracts, and Survey Responses. Now, for the exceptions I mentioned, these are going away in Winter 21, so it’s just temporary that you get to keep these. Basically, if you have your guest user trying to edit or delete records anywhere – you need to figure out a different way to do this. When this is all said and done, guest users will really just be a way to create records only. If you have a new instance from Summer 20 on, all of this is disabled at the start so you’ll never have a chance to do something wrong.
- Guest User Default Record Ownership – The most common use case for guest users is to have a public-facing form that then creates records within Salesforce when filled out. Normally, the guest user is the default Owner of those forms unless you drop the records into assignment rules or build your own logic to assign them. However, even when you have that, the guest user is still the original default owner and then your rules kick in to re-assign them. Going forward, the guest user will not be allowed to be the default owner of any record created by it. Instead, you’ll need to set a default user from within the org and they will become the owner of these records. For existing Communities, you’ll need to set up this default owner (for new Communities it’s automatically defaulted to whoever creates the community) and in addition, if you have built assignment logic, make sure it’s not looking for the guest user as the trigger to fire as that will fail going forward.
- Guest User Ownership Assignment – In addition to not being allowed to be the Owner of newly created records, guest users will not be allowed to be assigned as the Owner to any new records. This was one of the partial updates, as in Spring 20 we were prevented from assigning new records to the guest user and with Summer 20 you can’t assign existing records. In other words, if you’re trying to assign guest users to any record, you need to stop and figure out who else to assign that to – and then figure out the downstream visibility impacts from these changes.
- User Record Fields Blocked – External users leveraging the guest user will now be blocked from seeing certain fields on the user record automatically. Most of these fields are definitely things you should be exposing externally anyway: Alias, EmployeeNumber, FederationIdentifier, SenderEmail, Signature, Username, Division, Title, Department, and Extension. This one is a little confusing as it says there is a “Hide Personal Information” setting to turn this on, but the release note is also saying it’s now enforced as part of Summer 20. I think this is one that used to be recommended but is now mandatory, but I could be wrong.
- Guest User View All Users Disabled & Others – Guest users will not be allowed to view all users and this setting will now be automatically turned off and unable to be turned back on. Basically, this will prevent someone from leveraging the guest user to see all of your org’s other users. A few other minor permissions have been eliminated as well: Can Approve Feed Post and Comments, Enable UI Tier Architecture, Remove People from Direct Messages, View Topics, and Send Non-Commercial Email. Most of these could be pretty handy for a malicious actor. If you have a guest user leveraging any of these, you’re going to need to figure out a different way to do what you’re doing.
- Guest Users Access to Email sent from Visualforce Email Templates – If you send emails that leverage Visualforce email templates to guest users – and I’ll be honest, I can’t think of any reason why you’d do this, but clearly people are – you’re going to need to modify those templates to allow this in the future. Salesforce has a couple of new tags that you’ll need to add to the template – which is detailed within the release note. An easy enough change to make.
- Updated Multi-Level Navigation – We get a very slick Multi-Level navigation menu component out of the box with Summer 20. Instead of having to see the whole hierarchy, you can now view one level at a time – with up to five levels of categories. This also works with your B2B Commerce stores by the way. I love how this looks (see below).
- Share Data with Partners via External Account Hierarchies – This change was tossed into the dreaded “other changes” bucket in the release notes, but I think this is a pretty big deal. A lot of customers using Partner Communities have a complex Account Hierarchy set up for customers and the partners need visibility into the data spread across the hierarchy as well. In fact, we tend to see that the more complex your hierarchies are, the more likely you are to also use partners a lot, so there is an even bigger need for visibility. Previously, you had to build complex sharing rules to enable this, but now if you enable this, a Partner that has access to a Parent Account within the hierarchy will be able to see the data for the child accounts of that parent within the hierarchy. Super simple and really powerful.
- SEO Improvements – If you have a public-facing Community (read the guest user stuff above! – sorry had to say that again), SEO is usually an important consideration. If you’re not sure what SEO is, it stands for Search Engine Optimization, and it’s essentially the rules Google and, well, Google, uses to rank your various pages within their search results. It’s extremely important if you want people to find your content or your Community. We get two great new features to help with this. First, is the ability to create Dynamic SEO properties on your content detail pages. This was possible before with code, but now you can do it out of the box. This is an extremely important feature for SEO as it makes your page titles, keywords, and descriptions unique. If you have 100 pages of content, if they all have the same SEO terms, Google won’t know what makes each page different and you’ll begin losing the long-tail of the search. This feature will help drive content to all 100 of your pages. Along with this is the second new feature, which is the ability to generate sitemaps for your community. Previously, there was an automatic process that did this every 7 days, but now you can do it on demand. It takes about 24 hours to create and publish, but if you do a big update to the community and add a lot of content, you don’t want to wait a week for the sitemap to update, which is where this is super handy. Sitemaps guide Google and other crawlers around your site and help them navigate and index all of your pages.
- B2B Commerce on Lightning Communities – While this isn’t entirely Communities – you also need to purchase B2B Commerce for this – it is strongly related to Communities. B2B Commerce has always leveraged the Communities platform but with Summer 20, it now supports the Lightning Community platform. This is a huge update for B2B Commerce as it brings all of the flexibility we’ve been talking about with Lightning Communities and includes a B2B Commerce Community template as a starting point. Not only does B2B Commerce now support Lightning, but leveraging the Lightning version also now supports standard platform objects instead of the managed package objects. Essentially from the front-end and the back-end you now get all of the standard benefits we’ve taken for granted. This includes features like all of the navigational options, the ability to leverage Lightning Flow to build things like check-out processes, and the ability to extend the B2B Commerce experience into other Communities areas, like exposing other Sales or Customer Service functionality. I know this has been a long-time in the making and it really beefs up the B2B Commerce capabilities. I wish they’d included a screenshot of the template as part of the release notes to share, but if I can find one I’ll update this post.
- Revamped Tile Menu – The tile menu – which is what a lot of companies have their self-service built around – has been revamped “to create a visually stunning navigation experience”. That does sound awesome – but, man, if there was ever a time for a picture in the release notes, this would be it. Instead, they just show a picture of the configuration side of it. Kidding aside, it sounds like the tile menu now has a lot more flexibility and options for customization than we had before. I think the tile menu is very slick and is a nice approach for self-service, but it did have some limits. Hopefully, these changes remove all of those. One thing to note, this does require you to adjust your component to the new version. I’d recommend doing it in the sandbox first and checking this out.
- Lightning Message Service – Lightning Message Service goes GA as part of Summer 20, and this is actually pretty cool from a development stand-point. Salesforce has multiple UI technologies it has created over there years – Visualforce, Aura, and now Lightning web components – and it’s possible your Community is leveraging all of these (you might even be leveraging them within the same page, let alone the same Community). With the Lightning Message Service, these components on different technologies can actually communicate with each other. Imagine if you have a page with a Visualforce component and a slick new Lightning web component – now, as a user interacts with the older Visualforce component, you can pass the information into the Lightning web component. Maybe that Lightning web component is a “pizza tracker” type component showing the user’s progress, etc. Previously, to do something like this, you’d either need to keep building everything on the platform you were already on, or you need to upgrade everything. Now, you can upgrade to a new technology component by component. Super cool.
- Override Standard Actions – We now have control to override any standard form and replace it with a custom Lightning component when users click New or Edit. It’s a simple checkbox within the Experience Workspaces Administration area. This is another way to get full flexibility with your Community and add in your own forms if the standard ones aren’t enough. Of course, if they are fine, don’t add Lightning components just because you can now.
- ExperienceBundle Supports Theme Layout Properties – The ExperienceBundle now includes theme layout properties, making it even easier to adjust how your Community renders. To do this before, you needed to leverage code, but now you can do it right from the setup.
- Deeper Personalization – You can now control what a user sees within Navigation Menu, Tile Menu, and CMS Collection components. Previously you could just set what component a user sees, but now you can adjust the content as well. This is similar to what we’ve been able to do for page variations, branding sets, and components before. Nice to see the expanded flexibility.
- Improved Page Management -The Community Pages Menu gets a nice upgrade with Summer 20 making it easier to find and navigate to your pages. Now you can search directly for a page and see what folder it’s in to explore or edit that page directly from the search results. When clicking on a page now, you can edit its properties directly. Especially if you have a big community with a ton of pages, this is a nice time saver.
- Check for User Permissions for Lightning Web Components – This is a pretty neat feature for LWCs and definitely makes things a bit easier when you have many types of user profiles working within a Community. Basically, you can adjust a component’s behavior based on if a user has a permission assignment or not. Do you want a component that has Create and Edit buttons? Instead of having to code around hiding these if a user isn’t allowed to edit, you can actually look up their permission from the component and hide the button if they don’t have edit rights. That’s a pretty simple example, but a lot of flexibility here. I can see this being really handy for components that are displaying a lot of different objects within it. Maybe one tab is super sensitive and only certain users should even see that the tab exists – now, you can hide that dynamically based on the permissions of the user. Really cool.
- Develop Flow Screen Components that work for Multiple Objects – Another cool concept for Lightning Web Components. Leveraging LWCs, you can now create reusable flow screen components that are more generic and then assign the objects dynamically. Say you have a custom version of a list view component – instead of having to create a component for every object in the Community, you can create one advanced list view component and it’ll be able to work for any object. First, this saves a ton of development time. Second, it helps ensure you have a consistent UI experience for your users – it’s literally the same component! Very slick.
- Share CSS Styles Across Lightning Web Components – Instead of having to worry about the look and feel of each component, you can now define styles in the CSS module (again, just like more stand web development) and then associate the CSS module to each Lightning Web Component. This allows them all to share the same CSS Styles and keep a consistent look and feel across the community.
- Two-Factor Authentication for External Users – You can now enable the same two-factor authentication that you have for your internal users for your external users. Couldn’t be easier to turn on – simply enable this permission or assign a permission set to the external user’s profile. Nowadays, two-factor authentication is pretty universally accepted as simply good security versus being seen as an annoyance. Not sure why you wouldn’t enable this.
- Reset Mission Activity Counts – If you’re using the Gamification features of the Community, you really didn’t have control over the activity counters and in some cases, you could create a mistake that gave folks badges without the real effort. You now have the ability to reset those counters – however – it’s a reset to zero for all counters. This isn’t something you can do badge by badge – so make sure you know what you’re doing before you click that button. Sort of like Lost…
- Live Paste – Weird name, but cool feature. With Live Paste, you’re able to copy sections of a document into other documents almost like a more sophisticated merge field / formula lookup. Say you have a master Quip document that has sections to describe a Customer – like a customer’s description. Instead of having that key information manually added to 20 documents, you can use Live Paste to reference the master document’s description in your documents. Then, when someone makes an adjustment to that section in the master document, all other documents that reference that section are automatically updated. Great way to keep your documents from going stale and a really powerful feature.
- Track Metrics on Quip Usage – Leveraging Lightning Reports & Dashboards, you can now view metrics around the usage of Quip Templates. This allows you to track your user engagements across different documents and see how often a template is used. You’re able to track document views, comments, and edits. Pretty handy for key documents.
- Create Relationship Maps in Quip – You can now map out an org chart within a Quip documents and visually show not only who reports to who, but also display other key information – like their role and if they are a supporter or a detractor. You can add data from custom fields and display them within the map. You probably can’t build super complex org charts here, but this is handy for notes around opportunities or projects where you need a quick map of who is who.
- Embed Einstein Analytics Dashboards into Quip Documents – The ability to embed an Einstein Analytics dashboard into a document is now GA with Summer 20. This is a pretty cool feature in that it’s not just dropping a static dashboard into a document – but rather, these dashboards can automatically be filtered down to the record the Quip document is associated with. Maybe you have a cool Account Health dashboard you always want visible within a Quip Document – with this, that dashboard will always show the data and metrics just for the Account you’re looking at. Love it.
- Control which Salesforce Orgs are Connected to Quip – If you’re a customer with multiple Salesforce orgs and also a customer of Quip, now you can control which of your orgs can connect to Quip and have Quip pull data from. Definitely a needed security feature for these more complex customers.
- Override Help, Logout and Footer URLs – Now when your users are looking for help, instead of going to the Salesforce help you can direct them to your myTrailhead links instead. Basically, for any users that are myTrailhead users, when they click on the help or if they log out, they can be re-directed to your own content. In addition to these links, you can put links into the footer of myTrailhead that direct users to different links that you control. Definitely a key thing to control if you’re spending a lot of time and energy building customized help content.
- Salesforce and Trailhead Branding Removed – All of the Salesforce branding, including the dreaded – I mean loved – mascots, has been removed from myTrailhead so you can provide your own look and feel. This even includes all references of Codey. That bear freaks me out. Just look at those blank eyes…
Alright, that’s our blog for the Collaboration features in Summer 20. There are a few other smaller features as well, but this is quite a bit for this release. As I mentioned, the LWCs, in particular, are a big game-changer for Communities and something you’ll want to investigate. Additionally, those guest user changes need to be reviewed to ensure your public-facing functionality doesn’t suddenly break. As always, if you want to ask some questions or look into how to roll-out any of this functionality, please reach out and we’ll have an Architect get right back to you. Next up in part 4 will be CPQ, followed by a breakdown of some big features for Pardot.