How Do I Enter This Donation? A Primer for NPSP users.

One of the recurring questions in the Salesforce for nonprofits world is about how we handle money and enter Donations/Opportunities to best track donations, grants, etc. Here, I’ll outline how I handle common scenarios in the Non Profit Starter Pack (NPSP), and how it affects the donor rollup totals. You can find more about the NPSP at

First, let’s cover some of the basics of Salesforce and the NPSP so that we are using common terms:

Opportunity/Donation: This is the core “revenue” object in Salesforce. Many organizations rename the Opportunity object “Donation” since that is more familiar terminology. These terms can be used interchangeably.

Account/Organization: Salesforce started long ago with a business to business bias. Because of that history, this is the core object in Salesforce and is central to Salesforce functionality. It is often used to represent Corporations, Nonprofits, Government Agencies, Foundations, etc. Many organizations rename the Account object “Organization”, these terms can be used interchangeably.

***Because the Account object is central to Salesforce functionality we must have an Account for every individual Contact, even when we are indifferent to their employer. See “Account Model” below for more information about how the NPSP makes it easy to handle this requirement.

Contacts: Contacts are people; donors, board members, program participants, volunteers, constituents, etc. This requires little explanation, except to note that for Salesforce to function properly each Contact belongs to an Account.

Account Model: The NPSP has 2 “Account Models” for dealing with individuals, One-to-One and Individual Bucket. You can find more detailed information on NPSP Account Models here. The steps below work in either model.

Opportunity Contact Role: This object lets you connect many Contacts to an Opportunity to identify who influenced a gift. Examples are Donor, Household Member, Solicitor, Honoree, etc. There can only be one Contact Role marked “Primary”. Contact Roles are in a related list on the Opportunity.

Opportunity Account: There is one Account per Opportunity, whether an Organization or an Individual.

Opportunity Rollups: This is an NPSP feature that aggregates Opportunities to Accounts, Contacts, and Households to give metrics like “Total Gifts”, etc. Account rollups are based on the Opportunity Account, Contact rollups are based on the Primary Contact Role, and Households rollups are an aggregate of the Contacts in that Household.

This is a very high-level overview of the topics needed for the following discussion. You can read more about these features at

OK, on to the fun stuff!

Quick Reference for Donation Entry

Before we dig into the 3 scenarios below, I want to mention that your organization might do or define things differently than I am talking about them here. These are not static definitions, but I am trying to use some common scenarios as examples within a larger framework.

1. An Individual Contribution

This is what I would call the most common fundraising scenario. An individual person is giving you a donation from their own personal funds and will be taking the tax deduction on their income tax filings.

  • Account: Either the appropriate One-to-One or Individual Bucket Account, depending on your model.
  • Primary Opportunity Contact Role: The individual donor’s Contact record.
  • Opportunity Contact Roles: Any other Contacts that played a role in this Opportunity, typically Household Members. Think of these as “soft credits”.


In general, the Account tells us who the “legal” giver is, which is an individual in this case. The one-to-one model will tell you specifically which individual, where the Individual Bucket model will tell you only that it is an Individual and you must refer to the Primary Contact Role to find the legal giver.

The Primary Contact Role determines which Contact will get this Donation rolled up to their giving totals. This would be desired in almost every individual giver scenario.

Additional Contact Roles are mostly informative for our records. When we look at a specific Donation, we can see exactly who played a role in this contribution. Additionally, when we look at the related list for Opportunities on a Contact Record we see all Opportunities that they played any role in.

2. A Corporate/Foundation Grant

This is another common giving scenario. This is a gift from a non-individual entity, although there are usually individuals involved in the process of getting the funds.

  • Account: The Account that represents the Corporation/Foundation
  • Primary Opportunity Contact Role: Usually the primary person you worked with to get this grant, but depends on your NPSP settings (see below).
  • Opportunity Contact Roles: Contacts that played a role in this Opportunity, typically employees of the giving Foundation.


In this case, the Account is very straightforward, it is simply the organization that is giving the funds. These funds will rollup to the Account’s giving totals.

The Primary Contact Role is usually your point of contact at the organization making the grant. By default, because the gift is not from a one-to-one or Individual bucket account, this gift will not roll up to the Primary Contact.

  • ***However, if you have “Always Rollup to Primary Contact” enabled in your NPSP settings, then this gift will be included in the Primary Contact’s totals. You do not need to mark a Contact as Primary if this setting is enabled and you do not want it included in any Contact’s totals.

The non-primary Opportunity Contact Roles are the people that influenced this grant. Typical roles here are Solicitor, Grants Manager, etc.

3. A Matching Gift

This is a bit more complex of a situation, and can depend on how your nonprofit tracks these types of gifts.

  • Account: The Account that represents the matching company.
  • Primary Opportunity Contact Role: Typically, the original donor that submitted the gift to their employer for a match.
  • Opportunity Contact Roles: Other individuals involved in the match, the person at the company that fulfills matching gifts.


The account again is straightforward, the legal giver in this case is the company making the match.

The Primary Contact Role can behave in one of two ways. By default, as in scenario 2 above, the matching gift amount would not get rolled up to the Contact that made the original donation. However, some organizations like to include this in their donor totals. To do this, enable the “Always Rollup to Primary Contact” box in the NPSP settings tab. Be mindful that this will affect all Opportunities, and could change how you handle scenario #2.

The other Opportunity Contact Roles can be used to indicate who you worked with at the matching company to process the matching request.


Now that we’ve looked at a few specific examples, let’s talk about this in general terms so that we have a framework to deal with other giving cases.

  • Account: Because there is only one Account per Opportunity, this is generally the “legal” giver whether a company/foundation/individual.
    • **Note that if you use the Individual Bucket model, you must refer to the Primary Contact Role to find the “legal” giver when the Opportunity Account is the Individual Bucket Account.
  • Primary Opportunity Contact Role: This is the most important Contact, usually an individual donor.
    • **By default, this Contact gets the gift amount included in their rollup totals only when the gift is legally from an individual.
    • ** You can change the “Always Rollup to Primary Contact” setting to change the default behavior.
  • Opportunity Contact Roles: “Soft credits.” Other individuals involved in the donation where you want to see the donation on their Contact record but not in their donation totals.

This is just a primer, and not meant to cover every possible scenario. There are many legitimate ways to configure the NPSP and enter donations, but hopefully this will help you develop a framework for how you’d like to handle donations at your organization. As always, if you feel I’ve totally botched something (which is very likely), please let me know!

Take care,



NPSP – Calculating Household Donor Status

Something that is important to HELPSudan and many of the nonprofits I work with is the ability to segment donors by their giving history. I wrote a formula that will categorize Households based on the donation rollups in the new Households package in the NPSP. I thought I’d share for anyone that would find it useful.

IF( npo02__OppAmountThisYear__c > 0, "Current Donor",
IF( npo02__OppAmountLastYear__c > 0, "LYBUNT",
IF( npo02__OppAmount2YearsAgo__c > 0, "SYBUNT (2 years ago)",
IF( npo02__TotalOppAmount__c > 0, "SYBUNT (Lapsed)", "Non Donor"))))

It can easily be modified to show different or additional statuses based on criteria relevant to your organization, or added to Accounts or Contacts as well. Once you have the formula set up, create a summary report and summarize by your new status formula field. Then, you can build a pie or funnel chart to show you how your donors break down.

One other thing… if you’ve ever wanted to know how much someone has given this year relative to this time last year, the formula is simple though not necessarily intuitive.

npo02__OppAmountLastNDays__c - npo02__OppAmountLastYear__c

You could then run reports on donors whose status is “Current Donor” from the first formula, and has a negative value from the second formula (i.e. – they’ve given less money at this time this year than at this time last year). Now, you’ve identified people that are recently engaged in giving and are likely able to give again right now! formulas, reports, and dashboards are a great way to turn our existing data into actionable items.

The formulas in this post should work via copy/paste with the latest version of the Householding package for the Non Profit Starter Pack.

I hope that a couple organizations find these useful!

Take care,