External Account Hierarchy in Salesforce Community

Now users with Partner Community and Customer Community Plus licenses can view the records of other external users within their account hierarchy. External account hierarchies take the complexity out of sharing data with external users.

Role Hierarchy can be set using "Number of partner roles" under Community Settings.
Note: Maximum Number of partner roles can be set to 3. Executive, Manager and Worker roles.
With External Account Hierarchy, this will change. Check the difference below

Without External Account Hierarchy:
Worker reports to Manager.
Manager reports to Executive.
Executive reports to Account Owner(Internal User) role.

With External Account Hierarchy:
EAH records are required.
Worker reports to Manager.
Manager reports to Executive.
Executive reports to
1. To account owner(internal user) role if the account doesn't have parent account(EAH Record).
2. To Parent account's(EAH Record) highest role(Executive if 3 roles are set in Community Settings, Manager if 2 and Worker if 1).

External Account Hierarchy Entity:
Entity to store the hierarchies. Fields are
a. Account
b. Parent - Parent EAH records(self reference to EAH entity)
c. IsActive
d. IsAccessible
e. Hierarchy Type - Partner or Customer

1. Account merge is blocked for accounts participating EAHs.
2. Person Account is not supported.
3. If IsActive is false, then re-parenting won't happen. Nodes below the Inactive node will also don't do the re-parenting.
4. An Account cannot actively participate in multiple active EAHs of same Hierarchy Type.

IsAccessibleParent field in External Account Hierarchy
If false, it breaks the chain from current node to parent node. If Account A node is parent and B node is child and IsAccessibleParent is set to false in B node, then node A won't get access to Account B.
Default is true.

If records are not visible to the users, check the below
1. Check whether all the nodes are active.
2. Check whether IsAccessibleParent is true.
3. Check Role Reparenting status.
4. Check whether the confirmation email is received.


  1. As we are trying to implement this in our community, the External Account Hierarchy is not sharing any accounts to their parents. can you please explain this ?

    also may i know about the Check Role Reparenting status.

    1. If a role is re-parented, you will receive an email once the re-parenting is completed.

  2. Does this work for custom objects with private external OWD? We are trying to implement this and works fine for accounts, contacts and cases but not for a couple of external objects.

    1. Check how those external objects are linked to Account. External Account Hierarchy is for Account.

    2. EAH is not just for Account but for other objects as well. I have manually shared Application_c record with user Ashley James which has the United Oil & Gas, UK Partner User Role. The Contact record for this User is associated with Account "United Oil UK". Then I set up EAH record for "United Oil UK" to be the child of "United Oil & Gas Corp". United Oil & Gas Corp has associated Contact Stella Pavlova which has the United Oil & Gas Corp. Partner Executive Role. I can confirm that Stella inherited read only access to the Application__c record through the EAH config. When I made Ashley the owner of the Application_c record, Stella obtained full access to that record.

  3. Hi there, when I tried to create a relationship where there was not a contact with access to the community, I would get the following error:

    'This account must have portal roles associated with it that match the hierarchy type.: Account ID'

    Any ideas why? Or do you need to have a contact on every account in the EAH?

    1. Check if Contact associated to the Account has no assigned portal Role.

    2. Do you mean check the contact on the 'global' parent account?