High-volume community users
High-volume community users do not have roles, which removes any performance degradation related to sharing calculations with external users: they are not affected by the number of roles that are selected in the Communities Settings page.
The related user licenses are Customer Community, High Volume Customer Portal, and Authenticated Website.
But how does sharing work for high-volume users?
They only share the records they own through share groups. Note, however, that they are affected by the following sharing behaviors:
- They can access their own account and contact records with implicit sharing.
- They have read access on their account record.
- They can access a record’s parent if the OWD for that record is Controlled by Parent.
- They can access a record if the OWD for that record is Public Read-Only or Public Read/Write.
- They can see other records if sharing sets have been set up.
- They cannot manually share records.
- They can’t directly own an account.
- Case teams are not supported if the case owner is a high-volume user.
- They cannot be included in groups, sharing rules, account, opportunity, and case teams, Salesforce CRM content libraries, or territories.
To allow high-volume users to access records, use sharing sets. Every record you want to share with a user should have at least a user, contact, or account lookup related to the same high-volume user.
For example, you can share all the contacts related to the user’s account or you can give write access to the Personal Order custom object related to the user’s contacts:
Sharing sets configuration
Once you have created a Sharing Set, you can click on the Sharing Group Settings tab to set up who can see the high-volume user records: click on the Activate button to enable this feature (this can take a while, and an email is sent upon activation).
From here, you’ll be able to specify a set of users who’ll be able to access the records that have been defined in this sharing set and that are owned by high-volume users:
Share group configuration
Summary
Record-level security is one of the most important topics when designing a successful Salesforce implementation. By completing this chapter, we have learned about the power of the Salesforce sharing model and all its possible options, from permissions to org-wide defaults, mastering sharing rules and role hierarchies, segmenting your accounts with Enterprise Territory Management, and controlling how Salesforce communities play a role in oversharing.
The Salesforce platform runs in a multi-tenant architecture, which means our Salesforce organization runs on the same server as other Salesforce organizations, which in turn means that we are all using the same resources. To keep your customization clean and performant, we need to know exactly which resources are used the most so that we don’t reach our organization’s limits.
In the next chapter, we will cover organization monitoring.