I am struggling to get the concept of sharing rules vs sharing sets when it comes to sharing records owned by an internal user to a community user which has a license of Customer Community Login User.

Current Scenario:

  • Custom Object - My_Object__c
  • Owner - Internal User
  • Target shared with Community portal users
  • Sharing rules setup on My_Object__c: All internal users records shared with All Customer Portal Users

My question is, why is it if I use sharing rules, the data doesn't show in community for the users. And if I use sharing sets, it displays.

1 Answer 1


The problem is that the Customer Community license doesn't support advanced sharing. Ref (at the bottom of this document).

Advanced sharing is things like User-based, Criteria-base sharing territories and more. Your only option is a sharing set for this user license.

Given you want everyone to be able to see ALL records, have you considered making the org-wide-defaults for the object public read-only?

  • Hi Caspar! I guess sharing set is the way to go. I appreciate the explanation. I understand it now thanks to this document. Yes we have considered making it to public read-only but there was a requirement from client for the internal users to make it restrictive.
    – malacdon
    Commented Mar 13, 2022 at 23:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .