Salesforce Release

Summer ’20 Salesforce Lightning Experience and Classic Highlights

Summer20ReleaseLogo

The list of Summer ’20 features below apply to both Salesforce Lightning Experience and Classic.

There are additional Summer ’20 features available to Salesforce Classic onlyLightning Experience only, Community Enhancements, Mobile Enhancements, Other Enhancements in the Summer ’20 Release Highlights post.

Note: These features are not listed in any specific order.

1.(Generally available) Lightning Experience Configuration Converter (https://lightning-configuration.salesforce.com/): Previously, beta features. This tool streamlines or automates tasks to convert Javascript buttons, actions and buttons, visualforce pages, hard coded URLs and AppExchange packages.

2. Use the new Minimal Access -Salesforce user profile to grant least privilege access to a user. Then layer additional permissions using permission sets and permission set groups. Note: this profile includes Access Activities, Chatter Internal User, Lightning Console User and View Help Link permissions.

3. Flow Enhancements:

a. Use record-changes flows to automate processes after a record is save. Note: This is the beginning stages of replacing record change processes. This will execute before an After Trigger in the order of execution.

In the example below, I took a fairly basic process for newly created cases and turned it into an after save flow for newly created cases. Note: I had to lookup the queue id (could not just reference the queue name as we can in a process). While I was accessing this new feature, we still cannot use IsNew, IsChanged or the priorvalue formula syntax in flow as I only want my automation to fire when a record is new or a field is changed and not all the time. Also, you cannot bring in a subflow into an after save flow (similar functionality that a process provides where you can invoke another process or flow).

NewCaseProcess

NewCaseAfterSaveFlow

AfterSaveFlowView image full screen

b. Execute a flow when a platform event is received. Previously, this automation was solutioned using a process and flow. Using only one automation tool, Flow Builder, you create two flows. You also have access to all available records and are not limited to a Salesforce object as you are in process builder.

NewFlowMenuView image full screen

c. Rollback database changes in flow after flow finishes when you select the rollback mode when debugging flow. Note: this is only available with auto-launched flows. Pause and some actions, non-DML statements like HTTP requests, asynch actions and asynch DML statements cannot be rolled back.

RollbackView image full screen

d. You can now debug a scheduled trigger flow. Note: It uses the oldest record that matches the filtered conditions.

e. Get tips within Flow Builder. Note: If there are tips for your flow, a docked prompt will display the number of available tips at the bottom of your canvas. Once you fixed the issue, the tip disappears.

FlowTipsView image full screen

f. Bypass user permissions by running your flow in system context without sharing. Note: This will allow guest users to create or edit records that they may not have access to. This feature will ignore OWD, FLS, object level access, role hierarchies, sharing rules, manual sharing, teams or territories. Use this sparingly and only as the requirements dictate. 

SystemContext-WithoutSharingView image full screen

g. You no longer need to create a variable to hold your loop variable. Salesforce will do it for you.

LoopEnhancementView image full screen

h. Pass a recordId into a Flow from App Builder or a Quick Action. Note: You still need to create an input variable called recordId, but make it a record type rather than the text type. You no longer need to do Get Records to pull record information.

i. (Beta) Create LWC flow screen components that use generic sObject and sObject [] data types. Build it once and re-use over and over.

GenericObjectLWCFlowScreenView image full screen

Create a flow screen component that has the target lightning__FlowScreen. Define a type that extends the generic sObject data type by defining a <propertyType>. For each property that maps to the same object, set the property’s type attribute to {propertyTypeName}. If the attribute expects a collection of that object, set the type attribute to {propertyTypeName[]}. For example, if propertyTypeName is T, use {T} or {T[]}.

LWCGenericObjectView image full screen

j. Access Apex-defined variables outside of flow, like other data types.

4. Release Updates:

a. (Postponed) Evaluate criteria based on original record values in process builder. This was scheduled for auto-activation in Summer ’20 but has postponed to Winter ’21.

b. (Postponed) Enable partial save for invocable actions. This was scheduled for auto-activation in Summer ’20 but has postponed to Winter ’21.

c. (Postponed) Enforce Data Access in Flow Formulas. This was scheduled for auto-activation in Summer ’20 but has postponed to Spring ’21.

d. (Postponed) Make flows respect access modifiers for legacy apex actions. This was scheduled for auto-activation in Summer ’20 but has postponed to Spring ’21.

e. (Retired) Disable rules for enforcing explicit access to apex classes. The “Require user access to apex classes invoked by flow” has been retired. The new “Disable rules for enforcing explicit access to apex classes” will revert orgs back to their original state where users can run that flow that has apex actions if they have access to the flow itself.

f. (Retired) Require user access to apex classes invoked by flow. This was previously postponed to Spring ’21 but is now retired.

g. Newly created email alerts for approvals now provide the right values in the approval merge fields. Read the release notes for the corrected merge fields.

5. You can now control the processorder field of active approval processes using the metadata API, change sets and unlocked packages. Previously, this was only controlled via Setup.

6. Salesforce Surveys Enhancements:

a. Create and update records based on participant survey responses by creating a data map to map responses to Salesforce fields. Note: To create the data map, you need a Salesforce Surveys Advanced Features permission, which is available with the Customer Lifecycle Designer license.

b. Personalize the surveys with merge fields. Note: To define variables and use merge fields, you need a Salesforce Surveys Advanced Features permission, which is available with the Customer Lifecycle Designer license.

c. Set default settings and sharing rules for invitations, such as email templates, select the language the survey was created in, specify who has edit access (owner of the record associated to the survey or survey owner).

d. Add Like and Dislike buttons so participants can show you how they feel, short text to collect up to 200 characters in a participant response.

e. Share a survey invitation with a QR code.

f. Improved UI that shows all question types at once, no more scrolling.

g. External Salesforce participants can respond to a survey without Edit access on the Survey Response.

7. (Beta) Review important org changes with the Release Updates page.

ReleaseUpdatesView image full screen

8. Create more granular opportunity splits, with up to 6 custom opp splits. Previously, the limit was 3 custom splits.

9. Ability to specify view or view/edit access to opportunities for parent territories. Previously, users could only view opportunities assigned to their territories’ child territories.

10. Better manage/maintain pricing with product and pricing custom report types. When a product is a primary object, price book entries can be added as a secondary object.

11. (Update, Enforced) Improved Email Security with Redesigned DKIM Keys. There is no need to use public and private keys or need to import DKIM keys.

12. To allow community guest users to use visualforce email templates, add the renderUsingSystemContextWithoutSharing=”True” attribute to every Visualforce email template.

13. Authenticated users can only access duplicate rules, duplicate jobs, matching rules and matching criteria through the API only is they have the View Setup and Configuration permission.

14. Access to territories, territory assignments, associations, categories and models is limited to standard and partner users.

15. Knowledge Enhancements:

a. (Beta) Use the standard Salesforce sharing model for Lightning Knowledge. Data categories no longer control record access, just allows you to classify articles. Note: Contact Salesforce support to enable this in your org.

b. Change the record owner (person or queue) in Lightning Knowledge like you do elsewhere in Salesforce.

c. Articles used in a Chat, Messaging or Social will be attached to the Linked Article object. Previously, this object was only associated to work orders, work types or work order line items.

16. Custom metadata types now support relationships to entity particles (compound elements of a field). Use case: create a relationship to zip code, a compound element of the standard Address field.

17. Lightning Components Enhancements:

a. (Generally Available) Use Lightning Message Service to communicate across the DOM (between VF pages, aura components and LWC). You can also use Lightnig message to communicate with Open CTI.

b. Share CSS between LWC using a common CSS module.

c. (Beta) Create generic flow screen components that can work for multiple objects, not just an individual object.

d. Support for ui namespace will end on May 1, 2021. Use the lighting namespace instead.

e. Check a user’s permission assignment for LWC by importing the permissions from @salesforce/userPermission and @salesforce/customPermission scoped modules.

f. Get info on a Lightning community using @salesforce/community. Some use cases include being able to construct a full community URL by using @salesforce/community/basePath into LWC.

g. Determine whether the LWC is connected to the DOM, using the isConnected property.

h. Set a uppercase Javascript property by adding a leading hyphen to the HTML attribute.

i. Retrieve child elements by tag or class name in LWC. Use Element.getELements byTagName() and Element.getElementsbyClassName() APIs.

18. Visualforce Enhancements:

a. (Postponed) Remove instance name from visualforce, experience builder, Site.com Studio and content files URLs. This will be activated in sandboxes on July 11, 2020 with Summer ’20 but will not be activated in Production until Winter ’21.

b. Sforce.one object targeting for nested iframes needs to be updated. If your sforce.one function is needed within another VF page, the nested page must ask its parent page to invoke the API on its behalf.

c. Update visualforce pages to use the native Android date picker instead of a custom Android date picker. Replace visualforce datetime inputs (<apex: input type=”datetime”> and <input type=”datetime”>) with the type datetime-local.

d. You now need the View Setup and Configuration user permission and has access to view the VF page to view information on a visualforce page.

19. Apex enhancements:

a. Use the serializable and deserializable parameters of the @JsonAccess annotation to enforce where serialization and deserialization is allowed in Apex.

b. Use the deleteImmediate() method to delete up to 2k Big Object records in a batch.

20. Sandbox enhancements:

a. Secure the data in your sandbox using Data Mask. Note: Data Mask is a managed package you install and execute in Production. Then, you can run the masking process in a sandbox created from Prod.

b. (Beta) Use source tracking in a developer or Dev Pro sandbox to track changes between the sandbox and local workspace. For more information on this, refer to the Salesforce DX Developer Guide.

21. (Beta) Query the MetadataComponentDependency object to understand dependency relationships between metadata components, up to 100,000 records in one query. Note: This feature is currently only available in sandboxes.

22. (Generally Available) Use Private Connect to secure your integrations with applications hosted on third party cloud services. Increase security between your AWS integrations. Route your cross-cloud traffic via this private connections to reduce security threats.

23. Platform Events enhancements:

a. (Pilot) Get the status of asynchronous platform event publish operations so you can take action on events that were successfully published and which events failed.

b. Trigger flow when a platform event is received.

24. Change Data Capture enhancements:

a. (Beta) Compound fields (lead name, address and geolocation) are added to Change Data Capture Enrichment. With this feature, you can select fields to always include in a change event despite whether the data in the field changed or not.

b. Receive record change notifications for the CommSubscriptionConsent object.

c. Receive only change events that are related to entities that you have user permissions to via the standard /data/ChangeEvents channel.

d. You need an Event Bus tenant secret in order to turn on event encryption through the PlatformEncryptionSettings metadata API.

25. Release Updates:

a. (Postponed) Require permission to view record names in lookup fields. This was scheduled for auto-activation in Summer ’20 but has been postponed to Winter ’21.

b. Require View Setup and Configuration permission to access apex test data. This will be automatically enforced on 8/7/20. Note: This does not impact apex classes and triggers running in system mode.

c. Enable enhanced folder sharing. Starting Winter ’21, legacy folder sharing is being retired. Once enabled, to restore edit access, you will need to assign new user permissions and grant access to the folder. Note: If your org was created in or after Summer ’13, you already have enhanced folder sharing and no action is required.

d. Enable improved caching of org schema will be auto-activated on August 12, 2020 from August 9, 2021. This update will be enabled by default when sandboxes are upgraded to Summer ’20 but you can manually disable it until the auto-activation.

e. Remove the Manage Encryption Keys permission from the system admin profile. This will be automatically applied in Spring ’29.

f. (Enforced) Require secure HTTPs connections. This was automatically activated on May 1, 2920 in production.

g. (Enforced) Stabilize hostname for My Domain URLs in sandboxes. This update will be applied with Summer ’20.

h. (Enforced) Improve email security with redesigned DKIM keys.

i. (Postponed) Remove instance names from URLs for visualforce, experience builder, site.com studio and content files. This will be automatically activated in Summer ’20 sandboxes on July 11, 2020 but postponed in Production to Winter ’21.

j. (Postponed) Prevent creation of function expressions in dynamically created aura components. This was scheduled for auto-activation in Summer ’20 but it has been postponed to Winter ’21.

k. (Postponed) Enable dependency access checks in Lightning Components. This was scheduled for auto-activation in Summer ’20 but it has been postponed to Winter ’21.

l. (Postponed) Use with sharing for @AuraEnabled apex controllers with implicit sharing. This was scheduled for auto-activation in Spring ’20 but it has been postponed to Spring ’21.

m. (Postponed) Disable access to non-global controller methods in managed packages. This was scheduled for auto-activation in Winter ’20 but has been postponed to Summer ’21.

n. (Postponed) Enforce access modifiers on apex properties in Lightning Component Markup. This was scheduled for auto-activation in Summer ’20 but has been postponed to Summer ’21.

o. (Postponed) Enable dependency access checks in Lightning components. Improves Lightning component access checks by checking all component dependencies access levels. This was scheduled for auto-activation in Summer ’20 but has been postponed to Winter ’21.

p. (Postponed) Prevent creation of function expressions in dynamically created aura components. This prevents attribute values from being passed to $A.createComponent() or $A.createComponents(). This was scheduled for auto-activation in Summer ’20 but has been postponed to Winter ’21.

26. Permission changes for customization features:

a. Muting Permission Sets – Limited to authenticated users with View Setup and Configuration, Manage Session Permission Set Activations or Assign Permission Sets permission.

b. Object Settings, Assignments and Permissions – Must have View Setup and Configuration to access the following settings: client settings, field permissions, layout assignments, object permissions, permission dependencies, permission set tab settings, permission set group components, record types.

c. Permission Dependencies – Limited to authenticated users with View Setup and Configuration permission

d. Permission Set License Assignments – Users must have View Setup and Configuration permission or Assign Permission Sets permission to access it through the API

e. Profile Layouts and Record Visibility – Users must have the View Setup and Configuration permission

f. Share Objects (Account, Campaign, Case, Contact, Lead, Opportunity, Order Objects) – Limited to users with access to the object itself. Access to the sharing entries of User object is limited to standard users and those with Customize Application permission.

g. User Roles – Users must have View Roles and Role Hierarchy permission. User mist have Manage Roles permission to edit a role.

27. Security, Privacy and Identity Enhancements:

a. Use Apex to initiate 2FA. There are two new apex methods in the System.UserManagement class that verifies the user’s identity with the initiation of and another to complete the verification service.

b. Enable 2FA for external users. This is done by enabling the permission Two-Factor Authentication for User Interface Logins via the profile or permission set.

c. API-Only users can register for 2FA in the Salesforce UI. API only users can use the Salesforce UI to register for 2FA and after successful authentication, they are then restricted from access the UI.

d. Allow your highly trusted users to skip the identity verification step.

e. Apply delegated authentication to your Salesforce org without contacting Support to enable this feature. Select Disable Login with Salesforce credentials under Delegated Administration under Single-Signon Settings.

f. Make Federation Ids case sensitive for your Salesforce org. The “Make Federation Id case-insensitive” setting can be found under Federated Single Sign-on.

g. Use login page attributes with new JSON response fields. The LoginPageType field determines what type of login page (discoverable, custom or standard) is assigned to your communities.

h. Filter login history by login types (i.e. Outlook integration) and applications (i.e. mobile device).

i. New MyDomain names must be at least 3 characters long to meet iOS requirements. Any My Domain names with 2 characters will not be able to access Lightning using iOS until you rename your My Domain.

j. Store multiple addresses for the individual or person account with the Contact Point Address field and add details about the customer’s contact preferences. The Contact Point Address field is shown in the Individual object related list and can be added to the Account object’s related list.

k. Use the Engagement Channel field to manage consent records for more contact point channels by specifying customer’s consent to be contacts via SMS, fax in addition to phone.

l. Test more Shield Platform Encryption features in scratch orgs. Read the release notes for the features.

m. Event Monitoring Enhancements: (Available to customers who have purchased Salesforce Shield or Event Monitoring add-on subscriptions)

i. (Generally Available) Track threats to your org’s security with 3 new real time Event Monitoring events: CredentialStuffingEvent, ReportAnomalyEvent, SessionHijackingEvent.

ii. Receive notifications when a threat in your org is detected using transaction security policies on the three Threat Detection storage events.

iii. View threat detection events and provide feedback on a specific threat. Access the Threat Detection app, view the event and provide feedback (specify whether the threat was malicious, suspicious, unknown or not a threat).

iv. Detect errors when org exceeds the concurrent long-running apex limit. Track errors using the new ConcurLongRunApexErrEvent event.

v. View Data Leakage Detection Events has been renamed to View Real-Time Event Monitoring Data.

vi. Ability to customize transaction security block messages. Previously, a standard message was shown for all Block actions. Note: custom block messages are only available for ApiEvent, ListViewEvent and Report Event policies.

vii. Use Condition Builder to build your transaction security policies using point and click over Apex.

28. Lightning design system updates

29. Lightning design system component updates

30. New and changed items for Lightning components

31. New and changed items for Apex

32. New and changed items for API

33. New and changed commands for Salesforce CLI

34. New and changed components for change sets

35. Data.com Prospector and Data.com Clean have been retired.

6 thoughts on “Summer ’20 Salesforce Lightning Experience and Classic Highlights

  1. Hi! This was really helpful. Do you know if/when we will be able to bring in a subflow into an after save flow?

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s