How to report on donors who became donors over time in Salesforce

This is why I ❤ Salesforce.

I start out with a "I wonder if I could…" question and then the answer is typically much easier than I thought it would be when I started looking for it.

In our organization, all contacts are in Salesforce regardless of whether or not they've ever given us a dime, directly or indirectly. Maybe they get our eNewsletter. Maybe they followed a link from a Google Ad. We were recently awarded an expansion of our Google Grant to $40K a month so some of our new constituency comes from there. Maybe they called the Answer Line. Maybe they registered for a webinar. It's all there.

I realized that we didn't have an easy way set up to see how we were doing in converting some of those contacts to donors if they converted months or even years after their initial entry into our CRM. We're getting better at asking for donations in our non-appeal communications like all the other nonprofits do. Was it paying off?

Easy to measure with the addition of two simple custom formula fields to the Account object.

This assumes that you have some sort of field on your account or household object which tracks the date of first donation. I know Common Ground and the Nonprofit Starter Pack (NPSP) have it. Your donation tracking application may vary. Pretty standard stuff these days.

Simply create a formula field, type number, I called it "Days to Donor Conversion": cv__First_Gift_Date__c –  datevalue(CreatedDate)


cv__First_Gift_Date__c is a Common Ground custom field but it's just a rollup summary that calculates that account's earliest (MIN) close date for closed/won opportunities. It's a little more complicated on the NPSP since you're on a custom object (Household), not the standard Account object. But thankfully the latest version of the Household package for the NPSP has a similar field called npo02__FirstCloseDate__c which is populated by a Trigger.

CreatedDate is a date/time field so you need to enclose it with "datevalue" to extract just the date portion.

Now you can include that new "Days to Donor Conversion" field in your reports/filters and get all sorts of valuable information of how long contacts are waiting to donate after engaging with your organization. It's seriously that easy.

But wait…we also want to track the entry point. Did they follow an ad? Register for a webinar? Just sign up off the website? Call the Answer Line?

We're good about making sure every contact in our database has the Lead Source field populated. The challenge is that we want that information on an Account-based report and Lead Source is a contact or opportunity field.

Easy enough in Common Ground thanks to the Head of Household lookup field to the primary contact in the household. It's created automatically for every Household account. There may be a different lead source on other contacts in the household, but in this case we're only really interested in how that first contact from the home found its way to us. 

It's just one more custom formula field which pushes that value to the Account, ready for reporting: text(cv__Head_of_Household__r.LeadSource)


Once you have the fields, it's fascinating what you can learn. It adds up.