There is a Community Cloud practice test question, first seen on Salesforce Ben in 2016 and now propagated and plagiarized by every exam dump site on the planet, about sharing cases created in a community with internal org users. By exploring this question and the answer, there is a lot to be learned about Community Cloud, license tiers, Sharing Sets, and Custom Sharing Groups.
While the ostensible answer seems simple enough, a deep dive into the question and related issues is a useful learning and educational experience, especially for people studying to pass the Community Cloud certification, now called Experience Cloud.
Advanced Sharing Example Question:
You wish to share cases created and owned by your community users (Customer Community Plus) with the internal product support team. What is the best way to achieve this?
A) Custom Sharing Rule
B) Custom Sharing Set
C) Custom Permission
D) Custom Sharing Group
E) Records owned by community members are automatically shared with all internal users
Unpack the Question:
The problem to solve is sharing case records created by community users with internal Salesforce org users. This would be a typical scenario for a company hosting a support site using a Salesforce community.
Note the question specifically asks in the context of a Customer Community Plus license tier. For the solution to work the license tier must be Customer Community Plus, not Customer Community. The Customer Community Plus license tier grants access to “advanced sharing” which is necessary in this case.
The correct answer is a sharing set and sharing group. Did you guess it correctly?
Solve the Problem:
The first step in addressing this issue is to create a custom sharing set allowing the community members to share cases.
The second step is to create a custom sharing group associated with that sharing set, and include the internal users from the internal product support team in this sharing group.
A Sharing Set grants community or portal users access to any record associated with an account or contact that matches that community user’s account. A Share Group allows sharing records owned by community users with internal users. This mechanism grants internal users access to data owned by community users. This capability exists under the Customer Community Plus license tier and not the Customer Community license.
According to Salesforce, Sharing Sets exist and were created for the exclusive purpose of allowing members of a community to see other community member’s records, such as cases. These community members must all be associated as contacts with the same account. When created, a sharing set is associated with one or more internal user profiles. Once the sharing set is created and assigned to profiles, a Sharing Group is created and associated with users or roles, and is associated with the Sharing Set.
If you think this sounds convoluted, you’re right. It is. Seeing it done makes it clearer.
Click to Setup > Communities > Community Settings > Sharing Sets > New to create a new sharing set.
There are choices on the panel as follows:
Select a profile to associate with the sharing set. In this example the Customer Community Plus User profile is selected.
Select the object(s) to be shared. In this example Case was selected. Note the object list is a subset of available Salesforce objects. As the hint shows, the object list does not include objects with public read/write OWD because there would be no need for a sharing set.
Under Configure Access click on Set Up.
An Access Mapping for Case panel is displayed. In this example, the access mapping is if User.Account matches Case.Account then grant Read/Write access. Remember to click Update before closing the box.
Click Save. The Communities Settings page is displayed again.
Click on the newly created Sharing Set name. Some detail about the Sharing Set is displayed. Note the second tab that appeared, with the label Share Group Settings.
Click the Share Group Settings tab and a panel is displayed, allowing entry and specification of Share Group Members. These members are specified as members of Public Groups, Roles, Roles and Internal Subordinates; Roles, Internal, and Portal Subordinates; or Users. Note profile is not an option.
Select a share group member(s), click save, and you are done.
Why Does the Question Name Customer Community Plus Licenses?
Community Cloud users (e.g. NOT Plus licenses) are Salesforce Contacts, not Salesforce Users. They have a profile. They do not have roles. They cannot be made members of a Share Group. Customer Community Plus users are assigned roles, and can be made members of a Share Group through their role. This is why it is important to understand why the original question names Customer Community Plus tier licensees and not Customer Community licensees.
A Customer Community license tier would not allow what Salesforce calls “Advanced Sharing”, aka “Role based sharing”. Although both tiers allow community user access to the Case object, the Customer Community license tier does not allow “Advanced Sharing”, needed to use Sharing Groups. The Customer Community Plus license tier allows access to “Advanced Sharing” which includes use of sharing groups.
Definition (or lack of) “Advanced Sharing”
There is an overwhelming plethora of Salesforce and third-party documentation comparing the various Salesforce community license tiers and feature lists. All say the same thing, that CCP allows access to “Advanced Sharing”, and CC does not; without any clarification or definition of exactly what “Advanced Sharing” is. I have yet to find any official Salesforce documentation with an explicit definition of “Advanced Sharing”. Apparently, Salesforce expects you to know this, through osmosis or transcendental meditation perhaps.
From a lot of reading and research, Advanced Sharing seemingly means roles, role-based sharing rules, and “other advanced sharing features” (I love this).
This question, and specifically in the context of sharing Case data with internal org users, is addressed in many sources of reference information that help explain the issue. It would appear from this abundance of such information that Salesforce considers this issue important. Having recently taken the certification exam, I can confirm I feel the topic is worth studying. To research this question I studied the following sources and found them helpful. I hope it is helpful and informative for you too.
Trailhead: There is a short Trailhead project focused on exactly this topic that is worth studying. See “Share CRM Data with Your Partners”. The sixth module in this project is titled “Use Community-specific Sharing”. In this module is an informative video, part of the extended Salesforce “Who sees What in Communities” video series.
Setup Guide: There are three relevant sections in the Setup Guide that, to the exclusion of defining “Advanced Sharing” shed light on this question:
- Understand what is a sharing set by reading “Set Up Sharing Sets”
- See “Use Share Groups to Share Records Owned by High Volume Community Users”. Note in this article that a “High Volume Community User” is simply a community member under a Customer Community or Customer Community Plus license.
- “About High-Volume Community Users” further defines and explains what a high volume community user is.
The Setup Guide repeatedly emphasizes that one sharing set per object, and one sharing set per profile, is supported.
In the Setup Guide, see also “Communities User Licenses” for something less than a fully edifying explanation of the differences between Customer Community and Customer Community Plus license tiers, specifically with regard to definition of “Advanced Sharing”. Sharing Sets are available under all Community licenses.
Sudpita’s web page: Nice explanation of sharing sets and sharing groups.
See “Community Guide for Absolute Beginners” at advancedcommunities.com. Apparently Advanced Sharing is also known as “Role-based sharing”.
Gemma Blezard has a nice presentation on this. Skip the first ten minutes of introductions. She gets to the point about sharing sets and groups 20 minutes in, but the whole video after the introductions, is worth watching.
Phil Weinmeister explains this nicely in chapter 8 of his Communities Book, also with Case sharing as an example.