Skip to Content

Nonprofit Direct Mail on Salesforce, Part 5: Campaign & Campaign Hierarchy

By Dustin Pitts July 7, 2017

Hey there! My name is Dustin. I am a Solution Engineer for based in Charleston, SC. Welcome to my blog series about direct mail!

In this post we will be walking through options of setting up a campaign hierarchy to manage your direct mailings.

The good news is that this structure uses standard Salesforce campaign hierarchy functionality. It also allows you to incorporate the multi-channel approach that every nonprofit aspires to.

Campaigns 101

Let’s start by defining what a “campaign” is in Salesforce terms. Simply put, a campaign is an object in Salesforce that represents any outgoing communication to a constituent. A single campaign record could represent direct mail, email, telemarketing, or even an event invitation. It does not include ad hoc one-to-one communications such as major giving interactions ― those are recorded as activities or tasks.

“Campaign members” are all of the people who received communications from a given campaign. So you’re looking at a campaign that is a mailing, you’ll find a list of all the recipients of that mailing under “campaign members.” Likewise, if you’re looking at a contact (constituent) record, you’ll see all of the campaigns that they’ve received messages from in their “campaign history” list. In the screenshot below, you can see all of the communications that our friend Rachel Morris has received.

campaigns screenshot

A key thing to note here is that these campaigns represent individual mailings across various channels (see the “Type” column). You can also see the status of the campaign ― if a donation was made or not ― in the “Status” column. Thanks to NPSP, this status is updated automatically when a donation is linked to that specific campaign.

It is also important to call out that the columns in this screenshot represent just three of the fields on the campaign record. This related list can be configured to have more, fewer, or even different fields exposed. Salesforce administrators have the ability to configure campaigns with custom fields just as you would with any other object in Salesforce. Below is a sample of a campaign that represents an outgoing mailing in the fall of 2017. The administrator has configured the fields to identify the campaign type, status, and start and end dates. You can run reports on all of these fields.

campaign mailing screenshot

Campaign Members

Another nice feature of the campaign object is the built-in ability to manage those campaign members. You can easily view all campaign members and you have the the option to add new members who are existing contacts or leads in the system. Campaign members can be added manually by searching for contacts or leads one by one, or you can import a list. The screenshot below shows a sample campaign with campaign members. I have highlighted where you can add new campaign members directly from this screen.

campaign member management

Most nonprofits will add their campaign members using contact lists or by importing. The decision to build contact lists vs. import really depends on the complexity of your segmentation. We will dive in to that topic more in my next post.

You also have the ability to remove campaign members as needed. This is useful for direct mail if you receive return mail, or if you want to remove duplicates via a merge/purge process. This article will help you through that.

Campaign Hierarchy

Salesforce allows you to build a hierarchy relating your campaigns to one another. Why would you build a hierarchy? The answer is simple – reporting. All data from the campaign hierarchy automatically rolls up to the top tier of the hierarchy, also known as the “parent campaign.” This data includes things like total number sent, total number of responses, and even total gift amount.

The design of your campaign hierarchy depends on your business requirements and reporting needs. However, from a direct mail standpoint I would suggest always having the bottom level of your campaign hierarchy represent your segments. The second level up from the bottom would equal the individual mailings. Check out my source code blog post for more detail on this structure. Also, keep in mind that the hierarchy can have no more than five levels.

The slide below gives you a sample hierarchy for campaigns.

campaign hierarchy example

In this diagram you can see that the first level represents the type of the campaign. The next level rolls up to the year, while the third level represents the channel. The final two levels represent the actual mailing itself. Note that this is just a sample and many of these elements can be captured directly at the mailing campaign level if you would like. I always suggest designing your campaign hierarchy with your reporting goals in mind. I also encourage you to document this structure within your internal Salesforce data policy documents, since it is critical to your organization’s reporting structure.

In the example above, you can see that we’re using campaigns to all of our outgoing Annual Campaign communications on every channel. Every time we send an email, do a physical mailing, hold a fundraising event, or send any other outgoing message, it will be recorded in Salesforce in a campaign record. We can run reports off of this data in minutes, so we always have a complete, real-time, multi-channel view of all constituents and communications.


Let’s summarize the big points we covered today.

  • Campaigns represent any outgoing communication to a constituent, including direct mail
  • You add campaign members to campaigns manually, via contact list, or via import
  • Campaign hierarchies allow for customized, comprehensive reporting

I hope this post helped you to see the importance of campaigns and campaign hierarchies from a direct mail perspective. If you missed any of my other posts about direct mail, you can find them here. And check out a demo of Salesforce in action!

Watch the nonprofit success pack demo