Automate Household or Organization Accounts creation when new Contact is created in NPSP
A Child Advocacy Organization
More and more children become subject to different kinds of abuse daily. The client is educating the world on this global problem and advocating for children; For their rights and safety.
As a children’s advocacy organization, the client believes that all children should be loved, safe, and protected. To do that, for fifty years, the organization has been collaborating with communities and families to prevent and reduce the impact of child abuse. Together, they raise awareness, support, collaborate, and advocate to build the best future for every child.
Project Background
The client uses Salesforce’s NPSP (Nonprofit Success Pack) to help run its operations. Made and created by Salesforce.org, it is a set of managed packages that is free through the Salesforce AppExchange. These packages contain functionalities that allow nonprofit organizations to help enhance their processes.
Organizations can store information on individuals and organizations they work with as contact and account records. Contact records information on individuals, while account records information on businesses an organization works with. A contact record needs to have a parent account record.
The client works with parents and children whose information is recorded as contact and to a household account. The donors or individual is represented as a Household account and the organization is represented by an organization account. The individuals belonging to the organizations are affiliated contacts.
A contact record has a corresponding account record created on Salesforce. In Salesforce NSPS, a Household Account is automatically created when a contact record is created. It’s the default account model in the package, so the client’s government organization account is also created as a Household account, especially for the organizations they work with.
To solve the problems, the client sought the help of Application House’s Salesforce Architect. It was the most obvious solution to use Flow which is the default feature of the Salesforce platform to create a parent Account record for child Contact. Therefore, normally Salesforce Admin/Developer would have implemented a solution like this:
New Screen Flow implementation that automatically creates an account record for a contact record.
A Screen Flow will add a condition wherein the screen will prompt a series of questions or fields to be filled out, including the account name.
It will require turning off the Household setting and other settings in NPSP so that system will not automatically create a Household account.
If one Salesforce instance uses too many resources, it could slow down the execution of the shared systems of other Salesforce instances. So, to ensure balance, Salesforce has set limits.
Creating Flow is adding unnecessary system resources that can be done without it. Over time the number of flows gets increased which is unnecessary because those changes can be implemented without flow.
Application House didn't want to implement Flows when it was not necessary, so our Salesforce Architect dug deeper to find the most efficient solution. We made use of the NPSP settings, and here's how it went:
When Safe & Sound creates a contact, it's not just a household account created but they can create an Account with an Organization record type.
They can put the appropriate organization (Account) name.
They can start building cleaner, more organized, and accurate contact and account records, which is better so they can collaborate with their partners on their mission: to better the lives of children.
Salesforce's best practice to use declarative solutions means choosing the clickable solutions, like the default Salesforce platform feature, then a declarative framework like Flow, before even considering coding. For this project, however, there was a simpler and more efficient solution than Flow. That's the principle that Application House's Salesforce Architect followed and used NPSP settings, when necessary, instead of implementing unnecessary flow.