This blog post documents some system fields that can be used for advanced users to upgrade to the Nonprofit Starter Pack version 3.0 on the Salesforce platform. Read on for a technical discussion of using these fields and the shortcuts under which they will work!
If you haven’t read the NPSP 3.0 installer page yet – do so now. And if you need help, there’s lots of folks willing on the Power of Us Hub (for free!). There are two key parts to the process to upgrade to version 3.0 of the Nonprofit Starter Pack on the Salesfore.com platform:
- Install the Upgrade (Code) Package
- Realign your Data to Make it Fit the New Framework
I’m going to talk about some shortcuts you may be able to use to realign your data as part of #2. Now there are lots of caveats, safe harbors, etc. here – don’t substitute this as a professional assessment of what could be unique to your data and your situation.
First, what are the conditions under which this data realignment shortcut could work?
- Your Organization hasn’t been using households.
You may have the household package installed but you haven’t been using households in any meaningful way – you don’t have lots of custom fields on the household object, you don’t have any code running important updates on the household object. You also don’t have many people connected by households. If you do, there’s so few that you can run a report on them and note them manually (do this!).
- You have very little data.
Many organizations just can’t afford to pay a consultant to help them with an upgrade. Your organization has so few records you’d be able to realign your data later if needed using a record by record update, or a data tool like Apsona or Demandtools.
- You don’t need or want to create Household Accounts for contacts that haven’t had them before.
You may have contacts that are associated with Organizational Account records, and you want them to stay that way. If that’s not the case, and you want all contacts to have a household and you have a mix of records at the moment then stop here – you’ll need to use another data realignment method and the upgrade tool may work.
What should I do to prepare for this shortcut data realignment? [ideally do all these before step #1 (installing the upgrade code).
- Do a full backup of my data.
- Create Legacy Key Fields on the Account, Opportunity and Contact Object
The reason to create legacy fields is to take the key data pieces (namely Id and name fields) and leave crumbs to be able to relink records if needed. Using this shortcut process shouldn’t cause much de-linking, but you may need to do follow-up data clean-up work that may do so later. Creating these “crumbs” to follow will make this process easier.
ALL of the following should be TEXT fields. The reason for not creating formula fields is that this data can and will change (and will erase your crumb accordingly). You will need to use a data tool like Apsona, Demandtools or the DataLoader to populate these fields. I recommend Apsona. Once you create the fields listed below in your system, you can then do a “Mass Update” using a relative value to populate the legacy value in your new field. Since it’s not a formula, it won’t keep updating. (Link to Apsona Mass Update – https://apsona.com/pages/sfdc/doc/mass-update.html)
These are the legacy fields that I recommend creating.
- Legacy Account Name on Opportunity
- Legacy Contact ID on Opportunity [there are two fields that may be part of your current setup from which you could get this value “Contact ID for Role” and “Primary Contact” that refer to the primary Opportunity Contact Role – you may not have this. If you don’t – install the Code Upgrade (#1) first and then see if you can populate the field using Apsona. Or if needed, get by without this field.]
- Legacy Account ID on Opportunity
- Legacy Account Name
- Legacy Account ID
- Legacy Account Name on Contact
- Legacy Account ID on Contact
- Legacy Household Name on Contact
- Legacy Household ID on Contact
Install this NPSP 3.0 Upgrade Code Package (Step #1 above).
Now it’s time to do our Shortcut. (Step #2 above, and detailed from here below!)
The key here is that instead of creating new Account records for all my associated Contacts (which is what the Upgrade migration tool does) – I’m retaining my existing Account records and tagging them (in the new way) as Household accounts. There’s also a couple of fields that need to be changed on the Contact record, especially if I was using “One-to-One” accounts in the past.
- Expose all the system fields (temporarily) on the Account and Contact objects. This isn’t a required step, but it’s just helpful to visualize what you are doing, and to do some cross-checking after the fact. Ideally you’ll hide them from everyone but yourself so a user doesn’t change these system fields accidentally.
- Create a New (Test) Contact Record.
Name this with something obvious, including the word Test in it. Again, not a required step but will help you understand where you’re heading. Create this Contact Record by starting on the “Contacts” tab and hitting the “Create New Contact” button. DON’T create a new Household Account first.
You should see the values that have been filled in (automatically) in your test Contact’s system fields. These are the fields you’ll want to update accordingly for your contacts (also detailed below). The Contact should also have had a Household Account record created automatically. Go to that linked Household Account record and note the values that you’ll want to update accordingly (also detailed below).
- Understand which Records you want to Realign
The assumption that 3.0 makes is that ALL contacts are associated with a Household, and s/he is linked to their employer. Your data may be setup differently. This shortcut doesn’t address this (see step #5 above), and assumes that any contacts associated with Organizational Account records should stay that way.
You’ll want to figure out which accounts should now be moved to “Household” Account Record Types (and therefore get all the associated system fields updated), and which should be tagged as “Organization” Record Types (or continue to be tagged as such). Depending on your data, it may be easiest to find and exclude those Accounts that are organizational in nature – this might be because they are marked with an Organizational or other Account Record type, or because they have a certain value in the Type field filled in. First things first – take all these records using a data tool like Apsona and do a mass update to change the record type (if needed) of these records to the value of “Organization” Account Record Type.
- Update the System Fields for your Household Accounts (“the shortcut”)
The rest of your account records you will assume, by default, that they should be marked as Household Account Record Types. The following are a list of system fields that should be updated to properly mark these as Household Accounts (with all the hidden NPSP fields that control code also updated). The new value is marked after the dash. These should be updated using a data tool like Apsona to save you lots of time. REMEMBER: this should only be for a subset of your data. You’ll need to filter OUT the records you don’t want to be marked as Households.
Account Fields: – (new value)
Account Record Type – Household Account
_SYSTEM:IsIndividual – checked
_SYSTEM: AccountType – Household Account
Contact Fields: – (new value)
Type of Account – Individual
- You need to fill in the Primary Contact lookup field on the Account Record. This will likely take some data exporting of Contact Ids (based on Account ID value on the contact) and importing those IDs into the Primary Contact field, matching the ID on Accounts. This assumes that most household accounts only have one contact.
- Finally – there will be lots of page layout changes and post-upgrade steps you’ll want to do, including running some data health checks. Here’s a link (https://powerofus.force.com/articles/Resource/NPSP-Nonprofit-Starter-Pack-Post-Upgrade-Checklist) to some documentation, including Trish Perkin’s great workbook.