function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Ryan Werner 22Ryan Werner 22 

Account sharing/hierarchy for customer users

Hello-

We have a requirement where community users will need to see different accounts within the account hierarchy based on their user profile. Below is an example of an account hierarchy:
  • Global Account 1
    • USA 1
      • USA 1 Branch 1
        • USA 1 Branch 1 Sub-Account 1
      • USA 1 Branch 2
        • USA 1 Branch 2 Sub-Account 1
        • USA 1 Branch 2 Sub-Account 2
    • Canada 1
      • Canada 1 Branch 1
        • Canada 1 Branch 1 Sub-Account 1
        • Canada 1 Branch 1 Sub-Account 2
      • Canada 1 Branch 2
        • Canada 1 Branch 2 Sub-Account 1

The hierarchy will never go deeper than the sub-account level. Our community users will be added to each Branch level account - there will be no users on the Global, Country, or Sub-Account accounts.

There are 3 levels of access we will determine by the community users profile:
- Global
- Country
- Branch

A Global community user needs access to Global Account 1 and everything below in the hierarchy.

A Country community user needs access to the parent Country account and everything below in the hierarchy.

A Branch community user needs access only the the branch they belong to and the Sub-Accounts below that branch.


For example, John Smith is a community user with the Global profile. His contact is attached to USA 1 Branch 1 account. Therefore he needs access to every account listed.


Kevin Doe is a community user with the Country profile. He is attached to USA 1 Branch 1 account as well. He needs access to USA 1 account and every account below in the hierarchy.


Jane Johnson is a community user with the Branch profile. She is also attached to USA 1 Branch 1. She needs access to only USA 1 Branch 1 as well as the sub-accounts below this account in the hierarchy.


This is kind of a complicated requirement and we are not certain how to implement this without writing custom Apex Sharing Rule logic. Is there anyway using out of the box features we can implement this requirement?

Would attaching the users to the Account they need highest access to be an option? Combined with using something like an external account hierarchy? So a Global user would be attached to the Global Account 1 and have access to everything underneath, a Country user would be attached to the country account (say, USA 1) and have access to everything underneath?


Any ideas would be greatly appreciated. Thanks