[SalesForce] How to share records owned by “Customer Community Login” users with internal users

I have a use case where I need to share records owned by "Customer Community Login" users with internal users. The OWD for my custom object is set to Private.

From what I understand users with the "Customer Community Login" license are considered "High-Volume Community Users", so I can share records owned by these users with my internal users by following the instructions in this article: https://help.salesforce.com/HTViewHelpDoc?id=networks_sharing_light_users.htm&language=en_US

I'm having trouble understanding how to create a sharing set. Specifically the section where you configure access. I'm presented with the following popup:

access popup

I'm confused about the picklist values for "User" and "Target My Custom Object". I assumed I would be able to specify criteria like I would for a sharing rule. What values would I need to select for the fields in the popup to make records owned by community users with my external users, assuming both users share the same "Region", which is a custom filed on the User object.

Best Answer

The article that you linked to is really for an alternative approach to using Sharing Sets as that is using Sharing Groups which can be used for both internal and external users.

For internal users you can still use standard Salesforce Sharing Rules as well as Sharing Groups based on criteria on the custom object.

To define the sharing set rules for a Customer Community User you would need to pick a common value for both the user and the custom object. Often this would be the Account as a the community user is related to an account by their Contact record and the custom object would then also need to be linked to a record that has a link to the Account.

Examples

  1. Custom Object A has a lookup relationship to Account so the User Account and Custom Object Account will match.
  2. Custom Object B has a lookup relationship to Case and the relationship will be defined by the Case.Account field. So the user needs to be on the same Account as the Case to have access to the custom object. See the below image.

Example 2 can be done with any relationship that the Custom Object has with another object that has a relationship to the Account.

enter image description here

Related Topic