Tuesday, December 2, 2014

Exploring The Limits of Parent Account Hierarchies in Salesforce

Salesforce.com started with the mid-market companies as their customers.  The last several years, they have been targeting larger enterprises and have been largely successful.  However, it has some room for improvement.  This IdeaExchange entry in particular explains the current limitations of the Parent Account Hierarchy.

Larger enterprises usually want to track different locations of the same company as separate accounts for one reason or another.  For example, the same company with offices in California and Florida may be owned by different account managers.  Or, resellers with offices in several countries may be managed by different channel managers.  However, the company itself would like to track opportunities and revenue for all those accounts together.

Salesforce does provide a standard field called "Parent Account".  If you have a one-level hierarchy, meaning all locations roll up to a single account, you can report by Parent Account to show that summary.  But as outlined in the above IdeaExchange entry, it has its limitations.

For one, as soon as you have multiple levels of the hierarchy, you can no longer report by just "Parent Account".

Secondly, if you have opportunities (or any other child object) related to that parent account, those opportunities will not show up in the report by Parent Account, as the Parent Account field is blank.  You lose the ability to use standard configuration to show report charts on your page layout, and have to resort to building custom VisualForce pages and Apex code to show the information at the parent account.

From a different perspective, an account manager who owns an account at a national level but has multiple locations, he now sees multiple accounts, even though he is really only dealing with people at a specific location.  This can of course be resolved by not assigning those irrelevant locations to that account manager.

For reseller accounts, a channel manager must now manage multiple accounts, and ensure each contact is tied to the right account.  This adds administrative burden for them, or for some other data administrator on their behalf.  And similarly, to get a complete view, you will now need custom VisualForce pages.

If the company is willing to limit itself to a single level hierarchy, there is a potential solution.  It is not completely standard configuration.  It requires that you create a parent account for all accounts for the sole purpose of tying all accounts together.  No other child objects will be related to this parent.  Also, even accounts that have a single location will need a parent account, potentially.  This allows you to still use the standard report charts on the page layout, as the chart can filter by "Parent Account Id".  You will still need custom VisualForce pages if you want to show record details as a related list.  This does require more resources to maintain, and sometimes it may not be worth it.  Each company will have to evaluate and balance its short term requirements and long term requirements against the available resources to develop and maintain such custom work, not only from an IT resource perspective, but a data administration perspective.