Salesforce Facts: Implicit Sharing (Internal)
Introduction
Salesforce has released a new change in Spring ’23 around Implicit Sharing — more specifically Child Implicit sharing — called Faster Account Sharing Recalculation.
In this article we are going to list some facts about Implicit Sharing and how this new change can/will affect you.
Definition
Salesforce provides 5 types of implicit sharing: Two “Internal” and Three “External”. In this article we’ll be focusing on the two “Internal” ones that are defined int the official documentation as following:
- Parent Implicit Sharing: If you have access to an account’s child record, you have implicit Read Only access to that account,
- Child Implicit Sharing: If you have access to a parent account, you have access to the associated child records.
The word “Implicit” here means that the sharing is not created explicitly by the Salesforce Administrator, but it’s provided Out of the Box — implicitly — by Salesforce — which is in my opinion not true for Child Implicit Sharing — we’ll see why.
Also, “Implicit” here means that there’s no way you can change how this sharing behaves — which is in my opinion also not true when dealing with Child Implicit Sharing — we’ll see why.
The Facts
Implicit Sharing is NOT for everyone
- Parent Implicit Sharing works only with Account as the Parent Object and Contact, Case, Opportunity, Contract and Order as Child Objects.
- For other objects, you’ll see only the Account Name field.
- Child Implicit Sharing works only with Account as the Parent and Contact, Case, Opportunity as Child Objects.
Child Implicit Sharing comes from many places
This is the part where I think that Child Implicit sharing can still be controlled by the Administrator — as opposite to what the documentation says — as the access to the Account Child Records depends on what is the sharing mechanism giving you access to the Account record in the first place: Ownership, Sharing Rule, Territory Rule, Team Member, Manual Sharing or Apex Sharing.
Child Implicit Sharing is stored in the Database
Before Spring ’23, Whenever you share an Account record with someone, Child implicit sharing is created and stored in the corresponding Child Sharing object: ContactShare, OpportunityShare and CaseShare.
Faster Account Sharing Recalculation
Starting Spring ’23, and after enabling the new feature “Faster Account Sharing Recalculation”, the child implicit sharing will no more be stored in the database but will be calculated on the fly, making Account/Contact/Opportunity/Case Sharing Rules recalculation up to x5 times faster in certain use cases.
This “calculation on the fly” will be based on the AccountShare table fields: OpportunityAccessLevel, CaseAccessLevel and ContactAccessLevel and will be applied as following:
- Spring ’23: for Contact & Case objects,
- Winter ’24: for Opportunity object.
Note that you still need to contact Salesforce Support to enable this new feature. Note also that Salesforce plans to enable this feature in all orgs in a future release.
Caution about an “interesting” but “rare” use case
- If a Customer Community user is the owner of a Case or Contact record, internal users could gain access only through and “explicit” Sharing Rule or a Share Group.
- After enabling the Faster Account Sharing Recalculation feature, those same internal users can gain access through other sharing mechanisms: Role (for Account Owners), Teams, etc… as explained in the article above.
Caution in case you query Share tables
- If you have any existing code where you are querying the share tables (ContactShare, CaseShare and OpportunityShare) with a “where” clause like below, after enabling the Faster Account Sharing Recalculation feature, this query will return 0 records. Instead, you can query the UserRecordAccess table.
SELECT UserOrGroupId FROM ConctactShare WHERE RowCause = 'ImplicitChild'
Resources
- Help article: Built-in Sharing Behavior
- Developer article: Implicit Sharing
- Youtube video with the PM of the feature: Faster Account Sharing Recalculation in Salesforce
- Knowledge Article: Faster Account Sharing Recalculation
- Youtube video: What Architects Need To Know About Sharing and Record Access NOW
- Spring ’23 Release Notes: Recalculate Account Sharing Rules Faster
- LinkedIn Article by the PM of the feature: Faster Account Sharing recalculations (Case & Contact GA; Spring ‘23)
Other Salesforce Facts
For other “Salesforce Facts” Articles please check the list below: