Has anyone done this before and if so were there any problems you encountered?
1 answer
Hi Robin,
It seems more like you want to implement Account Hierarchy which indeed is a good practice ensuring Less Data Skews. I have seen this implementation in many client's salesforce organizations.
Here are few points which you might want to keep in your mind before designing or discussing any model with your team:
Instead of using branches as a separate Object to track all respective branches, use Parent Account field on the Child Accounts to link with the related child Accounts. This way you have a great hierarchy with OOTB Features.
Additionally, You can install Salesforce Hierarchy Unmanaged Package and show an Inline Hierarchy in the Parent Record.
An important consideration would be the way you do transactions and support. This means that whether you want to store the Contacts, Opportunities and related stuff on the Parent OR on the Child. Considering this at an early stage would help you prepare and fix the redundant contacts issue which persists in many client's salesforce orgs today.
Try not to hit Owner Ship Skew which means when No user should have access to millions and billions of records as that counts in Architecture Flaws.
Account Teams will play an important role in deciding the sharing model of the Account within Sites.
Last but not the least, if you've plans to migrate towards Community, you should consider the sharing model over Communities beforehand so as you don't face any scalability issues in future.
I hope these suggestions helps in designing a perfect solution for your needs.
Thank You
Gautam