Set Up Nonprofit Services in Program Management Module (PMM)

Learning Objectives

After completing this unit, you’ll be able to:

  • Work with your team to define your programs and services.
  • Set up programs and services in Program Management Module (PMM).

Getting Ready

Like so much in Salesforce—and life, really—preparation makes all the difference. Before you start to use Program Management Module (PMM), it’s a good idea to map your programs and services and then translate them into the objects in PMM.

Let’s see how our fictional nonprofit, No More Homelessness (NMH), does this work.

Defining Programs and Services

Like a lot of nonprofits, NMH has grown organically over the years to respond to their communities’ needs. When it first started, it offered only emergency housing services, but now it provides a full suite of programs for transitional housing, food security, job readiness, and more.

When NMH first decided to begin tracking its programs in Salesforce, all of the group’s program staff was clamoring to get their data in the system. But knowing how their programs are ever-evolving, Gordon Chu, the program director at NMH, decides to approach this thoughtfully. 

Gordon meets with his program managers, Anthony Hall and Gia Mason, to decide how they will define the PMM record values for NMH. (And he orders them all lunch from the deli down the street. Good on you, Gordon!)

The team’s first instinct is to group everything in Salesforce into two big programs: emergency and housing programs, which Anthony manages; and hunger, health, and career programs, which Gia manages. But they take a step back to ask how they want to track their work. How do they measure it? What do they need to report to grantmakers and other donors? What would help them be more effective?

Gordon, Anthony, and Gia discuss NMH’s programs in front of a whiteboard.

After a (friendly, but rigorous) debate, the team decides to structure their data in Salesforce in six programs: emergency services, the housing assistance hotline, the food pantry, transitional housing, the women’s program, and career counseling. 

Each program and service is a little different, so let’s take a closer look at the food pantry program and its services as an example.

The NMH team identifies three services in the food pantry program, one for each kind of item it distributes: produce and fresh food, dry goods, and personal care items. Each service can have its own unique unit of measurement, but they decide to keep things simple and measure all of these services by the number of items distributed.

Gia also wants to report on groups of clients who visit the pantry based on the date of their first visit, allowing her to see how many return and how their participation in the program evolves. This seems like a perfect way to use the program cohort functionality, so the team decides to create a new cohort each month to track the program engagements.

Setting up Programs, Services, and Program Cohorts in PMM

In this module, we assume you are a PMM administrator or other role with the proper permissions to take these actions. If you’re not an administrator for PMM, that’s OK. Read along to learn how your administrator would take the steps in a production org. Don't try to follow these steps in your Trailhead Playground. PMM isn't available in the Trailhead Playground.

NMH’s awesome admin has given Gordon, Anthony, and Gia the appropriate permissions to set up programs and services in the system on their own. Let’s follow along with Gia as she sets up the food pantry programs, services, and program cohorts she oversees.

She starts by setting up the food pantry program.

  1. Open the app by clicking the App Launcher (The App Launcher icon) to find and select Program Management.
  2. Click the Programs tab, then New.
  3. Enter a program name. Gia enters Food Pantry.
  4. Set a program status. Gia selects Active because the program is ongoing.
  5. Enter a short summary, which will show in Program list views and reports. Gia enters Pantry distribution of produce and fresh food, dry goods, and personal care items.
  6. Enter details about the target population. Gia types People experiencing food insecurity or in need of personal-care items.
  7. Enter a detailed description, which provides more context about the program’s goals. Gia enters To provide healthy meals and basic toiletries to homeless and housing-insecure people. NMH collects and distributes food and personal care items from local stores. 
  8. Set the program’s start and end dates. Gia leaves these fields blank because this is an ongoing program with no planned end date.
  9. Select a program issue area. There are several default values, and Gia will pick one of those options—Food and Nutrition—though your admin can update the available picklist values.
  10. Click Save.

    The New Program interface with Gia’s information in the fields

Now, Gia sets up one of the services under the food pantry: produce and fresh food.

  1. Click the Programs tab, then the program to which you’re adding services. Gia selects the Food Pantry program.
  2. In the Services related list, click New.

    The New button on the Services related list

  3. Enter a service name. Gia enters Produce and fresh food distribution.
  4. Because we started from the program record, the program name is already filled in. If Gia was creating a new service another way, she would have to associate it with a program.
  5. Enter a description. Gia enters Food pantry distribution of vegetables, dairy, and other perishables.
  6. Set the units of service. Gina enters Items distributed, which is how NMH quantifies food pantry services.
  7. Set a status for the service. This is an ongoing service, so Gia sets the status to Active.
  8. Click Save.

    The New Service interface with Gia’s information in the fields

But don’t forget about the cohorts! Remember, Gia wanted to track all of the food pantry engagements that start the same month. She sets those up next.

  1. Click the Program Cohorts tab, then New.
  2. Enter a program cohort name. NMH uses a standard format for food pantry cohorts (time period ﹣ year ﹣ description), so Gia enters September - 2020 - Food Pantry First-time Visitors.
  3. Set the program cohort status. Gia sets this cohort to Active.
  4. Select the associated program. Gia selects the Food Pantry program.
  5. Enter a description of the cohort and its purpose. Gia types Food pantry engagements beginning in September 2020.
  6. Set a start and end date for the cohort, if needed. Gia sets the start date to September 1, but leaves the end date blank since she wants to track all the first-time visitors in September for as long as they are engaged with the program.
  7. Click Save.

    The New Program Cohort interface with Gia’s information in the fields

Programs and Services for Other Causes

Let’s step away from NMH for a moment and talk about other causes. If you aren’t a human service organization, the PMM data model can still apply to your organization.

Here are a few examples from different causes.

Cause Program Services


Creek Cleanup

Trash removed from the creek, measured in pounds

Watershed issue reports filed, measured in number of reports

Animal Welfare

Pet Adoption Transport 

Placements, measured in number of placements

Transport to another shelter, measured in miles


Music in the Schools

Student instruction, measured in hours

Demonstration performances, measured in number of performances

How you set up your programs and services in PMM is totally up to you. Just keep in mind that you need to add a unit of measurement with each service to track deliveries and report on your program activities.

Let’s head back to NMH. Now that the programs, services, and program cohorts are all in their Salesforce org, we’ll fast-forward to see how the staff creates program engagements for the people they serve.