Configuring Customizable Rollups in NPSP: Part Two
Welcome to Part Two
In the first part of this three part series, we learned what rollups are in Salesforce, clarified all the different kinds of rollups you might encounter, and then introduced the new NPSP feature Customizable Rollups. Now that we have an understanding of the different kinds of rollups, in this post we will roll up our sleeves (see what I did there?) and look at how Customizable Rollups work.
But First…
There are some considerations before you dive in. As we mentioned in Part 1, Customizable Rollups is not the default setting in NPSP; rather, you have to choose to enable it, and there are some considerations to review before you start.
As we discussed in the first post in this series, Customizable Rollups will replace your existing rollup configuration when activated, whether it’s out-of-the-box rollups or user defined rollups. If you are starting with a relatively new org and have never created any user defined rollups, then the impact is minimal. Once activated, NPSP will replace each of your out-of-the-box rollups with a pre-configured customizable rollup that does exactly the same thing. If you HAVE defined any user defined rollups, enabling Customizable Rollups will remove them. This can be especially problematic if you have other formula fields or automations that depend on your user defined rollups.
Enabling Customizable Rollups also does a bunch of other things, including changing how your batch jobs are set up, and moving around some settings. You can read more about it in the Power of Us documentation to be sure you won't be missing anything. If you’re not sure, you can always create a sandbox and enable Customizable Rollups there first. If you get the results you want, then you can move on to Production with peace of mind.
Enabling Customizable Rollups
Ready to take the leap? You can enable Customizable Rollups from the NPSP Settings. Here’s the click path: NPSP Settings> Donations> Customizable Rollups> Enable. Once enabled, it will look like this:
You may also see that you can turn this feature back off. Once enabled, the “Result to Defaults” button appears. Click this will erase any customizations of existing rollups or any new custom rollups and revert to the out-of-the-box rollups.
Now you’re set to begin reviewing and customizing your rollups to fit your organization’s needs. Click on “Configure Customizable Rollups” to open the control panel.
The Anatomy of a Custom Rollup
Customizable rollups actually have two parts: the rollup itself, and the filter group. The rollup defines what field will be rolled up to where, and the filter sets which records will be included in that rollup.
The Filter
Before we get to the rollup, let’s examine the filter group. You can access filter groups from the Customizable Rollup control panel by clicking on the “View Filter Groups” button.
Filter groups define what data is included in a rollup. They are structured much like report filters, and basically work the same way. Converting out-of-the-box rollups creates a set of filters to begin with, and these serve as great examples of how filters work. Filters can be based on one of five objects:
- Opportunities
- Payments
- GAU Allocations
- Account Soft Credits
- Contact Soft Credits
Selecting an object makes the fields on that object available for filtering. Creating a filter means choosing an object, and then choosing the field on that object by which you want to filter data. For example, if you only want to rollup donations that are currently open, you select the Opportunity object, the field “Closed,” and set the filter “Equals False.” The operators and values available depend on the data type of the field you select.
It’s usually easiest to create your filters first, and then create your rollup. You can use the filters already available if they work for you, but in most cases you will be creating a more restricted rollup than already exists. For this reason, I find it easier to select or build my filter first, and then build the rollup.
There are some things to remember on the filters. First: while you can add as many filter conditions as you like, the logic is additive, and you can’t customize it. This means only the data that pass through ALL of your filters will be rolled up. There is no option for Condition A “or” Condition B.
Second: the filter object needs to “match” the filter Rollup Type. We will touch on this again in the next section, but if you are rolling up data from the opportunity object, you need filters based on the opportunity object. If you filter group includes a condition based on an object or objects not related to your Rollup Type, then the rollup field will simply ignore this condition. A great example of this is a filter group that includes a condition for which soft credit roles should be included, but Rollup Type is only considering hard credits. The soft credit filter isn’t relevant, so it will be ignored.
Let’s look at this in a filter group record. Here’s the filter group “Opps: Open” and it has one condition: the Opportunity must be Open.
If we pair this filter group with a rollup of Hard Credits on Opportunities to the Account level, this works, because the condition the filter is looking for, or whether an opportunity is closed or not, is available in the Rollup to filter in the first place.
But what if I add a condition filtering for only soft credits with the role of Household Member?
What will happen? Well, when paired with the same rollup… nothing. A hard credit rollup by definition isn’t even looking at the soft credit values, so it will simply skip that condition.
The Rollup
The rollup defines several things:
- What object you are summarizing, or “rolling up”
- The target object and field for the rollup (where you are sending the rolled up data to, basically)
- How the data is summarized
- What time frame will be included.
Let’s look at this in action with a customized rollup for Contact: Largest Gift.
The Target Object and Target Field direct this rollup to appear on the Contact object in the “Largest Gift” field. The target fields for the default customized rollup set are already defined, so when creating new rollups, you’ll need to create new custom fields where the rollup data will be compiled. Description is a free-text space for you to describe your rollup; so remember R.A.A.A.D (Really Awesome Admins Always Describe)! Operation specifies how the data will be treated, or what analysis will be conducted on the values. The options available will depend on the target field you identified; Salesforce will automatically present only those options that fit. Your job is to match the right operator and the right target field data type to get the result you want. If your target field’s data type is date, then you’ll get choices like “First” or “Last,” and this pairing is great for finding things like the most recent gift to a particular fund. But if your target field is a currency data type, then you will get choices like “Largest” or “Smallest,” which is the perfect configuration for finding a donor’s largest gift that year. For more details, check out the section on Rollup types in the NPSP Customizable Rollups Overview. Finally, Time Frame gives you the chance to limit the considered records by a time window.
Finally, we come to the meat of it -- the Rollup Type and the Filter Group. The “Rollup Type” can be a little confusing, but you can think of it as a combination of the object you are rolling up paired with the type of credit -- hard or soft -- you are including, if applicable.
As we said in the Filters section, these two need to be paired correctly for your custom rollup to work as it should. In this case, the rollup type is “Opportunity> Contact (Hard Credit).” In other words, we are rolling up data from the opportunity object to the contact object, and we’re only included those opportunities for which this contact has a hard credit. Only filter groups with conditions using the Opportunity object will apply. You can use a filter group with other kinds of conditions in it; they will just be skipped over. There is a very helpful chart in the Trailhead module on Customizable Rollups to help you make the combinations of rollup types and filter conditions.
Finally, depending on the rollup type you select, the Advanced Customization section will present you with any additional choices you need to make. In this case since the operation is looking for the largest value on opportunities for which a given contact has a hard credit, we have to tell it which field in which we’re looking for the largest value. Here, this rollup is looking for the largest gift amount this contact has made, so the Amount field on the Opportunity record is specified. In some cases you will get the chance to define which date field is being used in time computations.
Now that you understand all the pieces, you’re ready to build your own Customizable Rollups. If you are looking for just a little more help, the NPSP team has a great video that will walk you through the steps, and the Power of Us Hub also has a step-by-step set of instructions.
Rollup Types: Hard or Soft Credit?
It’s important to understand how soft and hard credits work with Customizable Rollups so you can get the results you want. This is only relevant on Opportunity and Payment rollup types that roll data up to the Account and Contact object.
Opportunity Contact Rollup Types
Let’s look at the Opportunity->Contact rollup types first. Here we have two choices:
- Opportunity-> Contact (Soft Credit)
- Opportunity-> Contact (Hard Credit)
The Soft Credit choice will include all opportunities for which the contact has a soft credit awarding Contact Role on the Opportunity. These are also customizable in NPSP, so you might want to review your configuration to see what’s included.
The Hard Credit choice will include all opportunities where the contact in question appears in the Primary Contact field on the Opportunity AND the account the gift is credited to is a Household account. This is because opportunities on Organization accounts don’t require a primary contact, and even when they are defined, only a soft credit is awarded to that contact. Be careful here -- the Primary Contact field on the Opportunity record is not necessarily the same as the Opportunity Contact Role which is marked as Primary. They are usually the same, but can be different depending on how automations in your org may have been customized.
Opportunity Account Rollup Types
From account rollups types, you have three choices:
- Opportunity-> Account (Hard Credit)
- Opportunity-> Account (Soft Credit)
- Opportunity-> Account (Contact Soft Credit)
The Account (Hard Credit) choice will consider all opportunities that are child records of that account. Choosing Account (Soft Credit) will consider opportunities where an account has been added to the Account Soft Credit Roles on the opportunity. Choosing the Account (Contact Soft Credit) option will consider all opportunities for which members of that account hold a soft credit, regardless of the account to which the opportunity record is assigned.
To see how this plays out in a number of different scenarios, check out the Power of Us Documentation on Hard vs Soft Credit Customizable Rollups.
Hard AND Soft Credit Rollups?
Because of the way Customizable Rollups are structured at the contact level, you must choose to include either Hard Credits or Soft Credits. There isn’t a way to create a single custom rollup that included BOTH Hard and Soft Credits. For use cases where you want to rollup a value from opportunity records where a contact had either a hard or soft credit, you will need two rollup fields and a formula field to get the result you want.
In the Conclusion: Use Cases & Clever Custom Rollups
We have looked here at a rollup summarizing giving because it’s a simple and common use case to help us understand how Customizable Rollups work. But this awesome feature set can do so much more than add up giving. In the final installment of this three part series, we’ll examine real-world scenarios where NPSP Customizable Rollups really shine.
Are you using the new NPSP Customizable Rollups? Tell me all about it in the comments below, in the Salesforce Trailblazer Community, or tweet directly at me on Twitter @hayleytuller.