Let's compare notes on a CTA scenario challenge: How to share published Race records to everybody?
Context: Race a custom object that's private. But once it's published, it should be visible to everyone.
Idea (1): Use criteria based sharing to share to an All Users group. This does not work. (1.1) You can create an All Users public group, then you can put in "All Internal Users" and "All Portal Users" in it. But "All Customer Portal Users" is not available to become members of another group.
Idea (2): Use criteria based sharing to share to "All Internal Users", "All Portal Users" and "All Customer Portal Users". But "All Customer Portal Users" contains all Customer Portal users, except for high-volume portal users. So the customer community (CC) users are not included. Advanced sharing is not available to to share to CC users.
Idea (3): Create a Published Race custom object with OWD of public read. Use an after save flow to copy a race to a published race once its status becomes "Published".
Do you have a way to make (1) or (2) work? Do you have a better solution than (3)?
@Mitesh Mistry , the hard part about that solution is that search and list view functionality also needs to be created using custom development without sharing.
I will make the assumption that Customer Community users do NOT need EDIT access to any race records.
This being the case, we can utilize the single sharing set per object/profile to grant READ permissions by creating a custom account lookup on the Account record (populated by a single static placeholder value). On each race record, you can also place an Account lookup to the same value, set via automation when the race is published. The sharing set matches the two and grants visibility in all contexts for community users.