Salesforce Summer release ’20 promises lots of exciting features like NLP support for Einstein ( and longer just Shield Encryption) , Multi-language support and skill-based routing agent upgrade for BOTs etc,
But, this blog is centered around what are the key metadata changes, SFDX improvements and Permission changes etc., in this release that can potentially break your CI/CD Pipelines
Metadata API
- The enableWorkUseObjectivesForGoalsfield on the WorkDotComSettings type was removed
The enableWorkUseObjectivesForGoals field was removed in API version 49.0.
Suggestion : Update your GIT Branches to avoid deployment errors
- Allow non-Latin-based characters in email addresses when sending emails from Salesforce
Use the new enableInternationalEmailAddresses field on the EmailAdministrationSettings metadata type.
Caution: This should be tested in your CI/CD pipelines for any impact with UTF_8 encoding standard format.
- On the FlexiPage metadata type, the componentInstancesfield on the FlexiPageRegion subtype was removed
Suggestion: Recommit the flexi pages using the new itemInstances field instead of componentInstances to avoid CI/CD issues
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_api_meta.htm
More New/ Changed Metadata in Summer’ 20
- BOT : Represents the definition of Einstein BOT configuration and can have multiple versions. Only one version can be active.
Suggestion: Maintain proper version scheme across environments to avoid deployment errors with version numbers ( experienced widely in Flows)
- Custom NotificationType: Allows you to send custom notification from Desktop or mobile using a process or invocable API call
- Inbound/Outbound Network Connections: Used in callouts related in and out between Salesforce and third-party
- Transaction Security Policy – a set of condition to evaluate the user actions and take actions like Blocking, 2F etc.,
Tooling API
- Use the new DeployRequest object Query about completed or in-progress deployment operations
- Use the new DeployTestResult object Query about Apex test results for completed or in-progress deployments
- Use the new PackageCategoryfield on the MetadataPackage object to Get the package type for packages you’re developing in a particular org
- Check if the unlocked package depends on metadata in the installation org
Use the new IsOrgDependent field on either the Package2 object or the SubscriberPackageVersion object. This field applies to unlocked packages only.
- Use the new IsEverApiAccessiblefield on the FieldDefinition object to Indicate whether a field is describable by the API
- With this field enableAsyncRequiresViewSetupas true, user must have “View Setup and Configuration” permission to access the AsyncApexJob and FlexQueueItem objects. Apex classes and triggers, or other features running in system mode, are exempt from this requirement.
- With this field enableApexTestReqViewSetup set to true, users must have the “View Setup and Configuration” permission to access these SOAP API objects: ApexTestQueueItem, ApexTestResult, ApexTestResultLimits, ApexTestRunResult, ApexTestSuite, and TestSuiteMembership
Suggestion: If you are implementing custom logic on Profile deployments this tag should be handled in deployments or it will lead to defects raised in higher environments.
Retired Permission
The “Require User Access to Apex Classes Invoked by Flow” has been retired. New in Summer ’20, the “Disable Rules for Enforcing Explicit Access to Apex Classes” update returns orgs to their original state – where users only need access to the flow to be able to run a flow that includes Apex actions
Users must have the View Setup and Configuration permission to access the following:
- Standard and Custom Objects
-
- Client settings
- Field permissions
- Layout assignments
- Object permissions
- Permission dependencies
- Permission set tab settings
- Permission set group components
- Record types
- Permission Dependencies
- Permission Set License Assignments ( or Assign Permission sets Permission)
- Profile Layouts and Record Visibility
- Access to duplicate rules, duplicate jobs, matching rules, and matching criteria
Muting Permission Sets
Access to muting permission sets is limited to authenticated users with the View Setup and Configuration, Manage Session Permission Set Activations, or Assign Permission Sets permission.
Share Objects
Access to sharing entries on the Account, Campaign, Case, Contact, Lead, Opportunity, and Order objects is limited to users with access to the object itself. Access to sharing entries on the User object is limited to standard users and users with the Customize Application permission.
User Roles
Access to user roles is available for users with the View Roles and Role Hierarchy permission. Editing user roles is available for users with the Manage Roles permission.
Visualforce page
Access to a Visualforce page’s info is limited to users who can view the specific Visualforce page, and users with the View Setup and Configuration permission.
(Sales Cloud)
Access to email domain filters in the API is limited to authenticated users with the Email Administration, Customize Application, and View Setup and Configuration permissions.
Enterprise Territory Management
Access to territories and their assignments, associations, categories, and models is limited to standard and partner users.
( Service Cloud)
Entitlements and Milestones
Access to entitlements, milestones, and associated processes, terms, and steps is limited to Salesforce admins, users with access to the Case, Entitlement, or Work Order objects, and users with the View Setup and Configuration permission.
Linked Articles
Access to linked articles in the API is limited to users with access to the parent record linked to the knowledge article.
SFDX / Development
Track Source Changes in Sandboxes Automatically (Beta)
When source tracking is enabled in a Developer or Developer Pro sandbox, the sandbox automatically tracks changes between the sandbox and the local workspace. When you pull sandbox changes into your project or push project changes to the sandbox, only the changed source is synched back.
https://releasenotes.docs.salesforce.com/en-us/summer20/release-notes/rn_cruc.htm