---
schema_version: "1"
id: 3e433aab3d6a8d75a7a767af719316ae27ab9e861ff46d7bb2741db83548e836
title: Create and Update Campaign Members Through an Opportunity
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/sfdo/264-0-0/npsp_create_and_update_campaign_members_through_an_opp.md
canonical_url: https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 671fd76196c221aaec392c1835f0bdd1790ffb6b5ffe455c1e8138a0fa727dcb
description: Configure NPSP to automatically add a Contact to a Campaign when you enter a donation.
products:
  - Nonprofit
release: "264"
---
# Create and Update Campaign Members Through an Opportunity

Configure NPSP to automatically add a Contact to a Campaign when you enter a donation.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/images/icon_note.png)

Note Watch the Nonprofit Salesforce How-To Series video about [Automatic Campaign Member Management](https://www.youtube.com/watch?v=5t7KBgyNVmA).

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/images/icon_note.png)

Note This article assumes you're familiar with how Campaigns work in Salesforce. If you're not already familiar with Salesforce Campaigns, see [What are Campaigns and How Do They Work?](https://help.salesforce.com/s/articleView?id=sfdo.npsp_what_are_campaigns_how_they_work.htm&release=264.0.0&type=5 "Nonprofits use Campaigns to plan and track fundraising appeals, solicitations, events, advocacy campaigns, and other outreach activities.") Also see the [Campaigns documentation](https://help.salesforce.com/htviewhelpdoc?id=campaigns_def.htm&language=en_US).

- **[Campaign Members and Opportunities Overview](https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5)**  
    Nonprofit Success Pack includes many automatic campaign actions triggered by opportunities. For example, campaign member statuses are automatically updated when a related opportunity is closed.
- **[Setup—Before You Begin](https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5)**  
    To automatically create Campaign Members through an Opportunity, you need to ensure that your org is set up to do so.
- **[Create Campaign Members Through an Opportunity](https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5)**  
    When you specify a Contact as the Opportunity's Primary Contact, NPSP automatically adds that Contact as a Campaign Member to the Opportunity's related Campaign.
- **[Update Campaign Member Status Through an Opportunity](https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5)**  
    You can automatically update Campaign Member Status, right from the Opportunity object as well.
- **[Opportunity Stages, Campaign Member Statuses, and Actions on the Campaign](https://help.salesforce.com/s/articleView?id=sfdo.npsp_create_and_update_campaign_members_through_an_opp.htm&release=264.0.0&type=5)**  
    The Opportunity's Stage and the value in the Opportunity's Primary Contact Campaign Member Status field determine the behavior of the Campaign Member record. If the Contact is not already a Member of the Campaign, Salesforce creates a new Campaign Member record. Otherwise, Salesforce updates the existing Campaign Member record for the Contact.

## Campaign Members and Opportunities Overview

Nonprofit Success Pack includes many automatic campaign actions triggered by opportunities. For example, campaign member statuses are automatically updated when a related opportunity is closed.

Let's say you want to make an appeal to a bunch of Campaign contacts. Your organization makes the appeal and the donations come in. Wouldn't it be nice to be able to enter those Opportunity donations in Salesforce and have the contacts' Campaign Member Statuses updated automatically, on the Campaign? The Nonprofit Success Pack does that for you, and much more, with actions triggered by the Opportunity Stage, Primary Contact, Primary Campaign Source, and Primary Contact Campaign Member Status fields on the Opportunity object. Great!

Campaigns are related to Opportunities through the Primary Campaign Source field on the Opportunity:

![An Opportunities sample page with the Primary Campaign Source & Primary Contact Campaign Member Status fields highlighted.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/nonprofit_success_pack/images/camp_members_thru_opp_pricampsrc.png)

The Primary Contact Campaign Member Status field lets you specify the Member Status for that Contact on that related Campaign. Here's what it looks like on the Campaign's Campaign Members related list:

![A Campaign Members sample page showing a Contact field.](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/nonprofit_success_pack/images/camp_members_thru_opp_memberslist.png)

## Setup—Before You Begin

To automatically create Campaign Members through an Opportunity, you need to ensure that your org is set up to do so.

There are three settings in NPSP Settings that control this feature:

- Automatic Campaign Member Management
- Campaign Member Responded Status
- Campaign Member Non Responded Status

To access or change these settings:

1. Click the **NPSP Settings** tab. If you don't see the tab, find it in the App Launcher (![App Launcher icon](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/resources-product/images/app_launcher_icon.png)).
2. Click **Donations**, then click **Campaign Members**.
3. Select **Automatic Campaign Member Management**.
4. Optionally, enter a Campaign Member Responded Status. The value entered is used as the default for ALL Campaign Members that are automatically added or updated through Automatic Campaign Member Management. If you leave this field blank, Salesforce uses the first status marked as "Responded" in your list of Campaign Member Statuses. If you enter a value that doesn't already exist in your list of Statuses, it will be added to the list.
5. Optionally, enter a Campaign Member Non Responded Status. The value entered is used as the default for ALL Campaign Members that are automatically added or updated through Automatic Campaign Member Management. If you leave this field blank, Salesforce uses the first status that is NOT marked as "Responded" in your list of Campaign Member Statuses. If you enter a value that doesn't already exist in your list of Statuses, it will be added to the list.
    
    ![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/images/icon_note.png)
    
    Note If you require different statuses for different Campaigns, we recommend that you leave this field blank and carefully curate the Campaign Member Statuses for each of your Campaigns. To [manage Campaign Members Statuses](https://help.salesforce.com/articleview?id=campaigns_customize_member_status_lex.htm), navigate to your Campaign and click the Campaign Members Statuses related list.
6. Click **Save**.

## Create Campaign Members Through an Opportunity

When you specify a Contact as the Opportunity's Primary Contact, NPSP automatically adds that Contact as a Campaign Member to the Opportunity's related Campaign.

1. Enter your new Opportunity donation, and specify a Primary Contact.
2. Specify the Campaign to which you want to add this contact.
3. (Optional) Set the Primary Contact Campaign Member Status if you want to set their status in the Campaign as well. See below for more details.

## Update Campaign Member Status Through an Opportunity

You can automatically update Campaign Member Status, right from the Opportunity object as well.

1. Locate an existing Opportunity donation with a Primary Contact.
2. Set the Primary Contact Campaign Member Status. See below for more details.

## Opportunity Stages, Campaign Member Statuses, and Actions on the Campaign

The Opportunity's Stage and the value in the Opportunity's Primary Contact Campaign Member Status field determine the behavior of the Campaign Member record. If the Contact is not already a Member of the Campaign, Salesforce creates a new Campaign Member record. Otherwise, Salesforce updates the existing Campaign Member record for the Contact.

Closing an open Opportunity with a blank Primary Contact Campaign Member Status field will also update the member's status. For example, if the Opportunity Stage is an Open value and the Primary Contact Campaign Member Status field is blank, then Salesforce will assign the first non-Responded value to the Campaign Member. If you later update the Opportunity to a Closed/Won stage, then Salesforce will automatically update the Campaign Member to the first Responded value.

You can use omit in the Primary Contact Campaign Member Status field to leave the Contact's current Campaign Member Status is unchanged.

The following table shows Campaign Member actions as they relate to Opportunity stage types and Primary Contact Campaign Member Status values:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
          <colgroup>
            <col style="width:26.666666666666668%">
            <col style="width:26.666666666666668%">
            <col style="width:46.666666666666664%">
          </colgroup>
          <thead class="slds-text-title_caps ">
            <tr class="">
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d12010e316">
                <strong>Opportunity
                  Stage Type</strong>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d12010e321">
                <strong>Opportunity
                  Primary Contact Campaign Member Status Value</strong>
              </th>
              <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d12010e326">
                <strong>Campaign Member
                  Action</strong>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr class="">
              <td data-label="Opportunity Stage Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e316 ">Closed/Won</td>
              <td data-label="Opportunity Primary Contact Campaign Member Status Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e321 ">blank</td>
              <td data-label="Campaign Member Action" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e326 ">Contact's Campaign Member Status updated with
                Campaign's first Responded value.</td>
            </tr>
            <tr class="">
              <td data-label="Opportunity Stage Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e316 ">Open</td>
              <td data-label="Opportunity Primary Contact Campaign Member Status Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e321 ">blank</td>
              <td data-label="Campaign Member Action" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e326 ">Contact's Campaign Member Status updated with
                Campaign's first non-Responded value.</td>
            </tr>
            <tr class="">
              <td data-label="Opportunity Stage Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e316 ">Any</td>
              <td data-label="Opportunity Primary Contact Campaign Member Status Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e321 ">omit</td>
              <td data-label="Campaign Member Action" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e326 ">Contact's current Campaign Member Status is
                left unchanged. If the Contact is not already a Member of the Campaign,
                no Campaign Member record is created.</td>
            </tr>
            <tr class="">
              <td data-label="Opportunity Stage Type" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e316 ">Any</td>
              <td data-label="Opportunity Primary Contact Campaign Member Status Value" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e321 ">Any text value</td>
              <td data-label="Campaign Member Action" class="slds-cell-wrap" style="vertical-align:top;" headers="d12010e326 ">
                <p>If the Campaign Member Status does not already
                  exist, <span id="npsp_opp_stages_campaign_member_statuses_and_actions_on_campaign__guid-eaf7d3d4-27fe-4883-9909-dd168053faf2"><a name="npsp_opp_stages_campaign_member_statuses_and_actions_on_campaign__guid-eaf7d3d4-27fe-4883-9909-dd168053faf2"><!-- --></a>Salesforce</span> creates it. Contact's Member Status is updated
                  to this value. </p>
                <div class="slds-box slds-box_x-small slds-theme_shade slds-m-top_medium slds-m-bottom_medium">
                  <div class="slds-media slds-media_responsive">
                    <div class="slds-media__figure"><span class="slds-icon_container slds-icon_container_circle slds-icon-note-note"><img style="margin-bottom:0;" src="https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-sfdo-nonprofit_success_pack-264-0-0-production-enus/bd2879e2-2bdc-4012-aa32-dc0c697c4538/images/icon_note.png" alt="Note"></span></div>
                    <div class="slds-media__body" style="padding-top:.5rem;padding-bottom:.5rem;"><span class="slds-text-title_caps">Note</span> You can edit the
                      Campaign Member Status to a Responded value by going to the Campaign
                      record, clicking the Advanced Setup button (in <span id="npsp_opp_stages_campaign_member_statuses_and_actions_on_campaign__guid-491db031-a63d-41f2-867d-31c0781a5bdb"><a name="npsp_opp_stages_campaign_member_statuses_and_actions_on_campaign__guid-491db031-a63d-41f2-867d-31c0781a5bdb"><!-- --></a>Salesforce</span> Classic only), and editing the status to
                      check Responded. The Campaign Member records will update to match.
                    </div>
                  </div>
                </div>
              </td>
            </tr>
          </tbody>
        </table>