Automatic Householding in Salesforce.com
In some financial service industries the concept of a Salesforce Account isn’t the right way to represent the complex client relationship. While things like Person Accounts help, they don’t always hit the mark.
The Household Dilemma
In most core banking solutions used by financial services companies the data relationship between a person (Contact) and a banking product (Financial Account) is a many to many relationship. This means that a Contact can be related to many Financial Accounts and a Financial Account can have many Contacts associated with it. A real life scenario would be a husband and wife who have separate checking accounts but also a joint savings. In the banking world this is considered a role, where the contact could be the primary owner, secondary, or it could be in trust for that contact.
We model this in Salesforce.com with a junction object between the Contact and the Financial Account which allows for that many to many relationship. Each Contact has a junction role to the Financial Account where data like balance, rates, and addresses are stored. From the Contact we can see which Financial Accounts they own and from the Financial Account we can see which contacts with what roles are associated.
What most core banking solutions do not do well is handle the concept of a household since it is usually defined only by a set of data rules and logic. Organizations utilize third party tools that take all of their exported core data and through extended logic cluster people into households, leaving behind external files used for reporting. These tools are usually expensive, slow, and are used infrequently as the end result is a file with a set of numbers, not usable real time data.
Platform to the Rescue
What if we could utilize the Force.com platform to house those rules to quickly and efficiently process all the data and build the household automatically iterating over hundreds of thousands of records in seconds?
We can and did.
The household logic is based on a few data points spread across the different objects mentioned above such as last name and mailing address. We built a series of batch APEX applications that query the Salesforce.com database using SOQL and based on that logic create Accounts as households and move the Contacts into them. Since it is a custom application we could extend the logic to include or exclude different types of contacts or carry across data from the connected objects such as a mailing address based on other complex logic like the role or newest opened account.
At the end of the day we have a fully cloud based, Force.com automatic house holding solution that scales extremely well and can be set to run nightly providing core data insight built right into the CRM solution.
If you would like to learn more about this or have other household solutions, feel free to connect with me on Twitter @JasonMAtwood or use the contact form on this website.