How to Send Email to Campaign Members in Salesforce

Adding members to a Salesforce Campaign is the straightforward part. Actually reaching all of them by email—in the right sequence, with accurate status tracking, and without bumping into the platform’s volume ceiling—is where most teams hit unexpected friction. Salesforce provides the Campaign Members related list and the Send List Email interface to handle exactly this workflow, but the two tools interact in ways that are easy to misconfigure. Send the wrong member subset, skip status filtering, or ignore the 5,000-email daily org limit, and a carefully planned email campaign produces incomplete delivery, zero engagement data, and a Campaign record that tells you nothing useful. This guide covers the precise steps for sending to campaign members, the filtering options that make targeting effective, and the tracking behaviors that determine whether your Campaign record reflects reality.

How Campaign Members Work and Why They Are the Starting Point

A Campaign Member is a Contact or Lead associated with a Salesforce Campaign record. Each member carries a status field—a picklist value that represents their position in the campaign’s engagement funnel. Default statuses are Sent and Responded, but admins customize these to match the actual funnel: Invited, Sent, Opened, Clicked, Registered, Attended, Converted, Unsubscribed. The member status is what makes Campaign reporting meaningful—it is the data point that populates the Campaign’s response rate, separates responders from non-responders, and triggers follow-up automation.

Members are added to a Campaign through three methods: selecting records from a Contact or Lead list view and using the "Add to Campaign" action; running a filtered Salesforce report and adding the results to the Campaign; or importing via the Data Import Wizard. Regardless of how they were added, every member starts with an initial status—typically "Sent" for email campaigns or "Invited" for event campaigns. That initial status is what you will use to filter the first email sent.

Before any send, verify two fields per member. The Email Opt Out field on the parent Contact or Lead must be unchecked—Salesforce silently suppresses opted-out records at send time. See the Salesforce email opt-out guide for how this interacts with campaign sends. Running email verification before the send removes hard bounce risk and protects email deliverability for all future sends from the org.

Step-by-Step: Sending Email to Campaign Members from the Campaign Record

The direct path for sending an email to campaign members starts on the Campaign record itself—not from a Contact or Lead list view. This keeps the send tied to the Campaign object, enabling member status updates and attribution reporting.

  1. Open the Campaign record in Salesforce Lightning. Navigate to the Campaigns tab and open the campaign you want to send for.
  2. Scroll to the Campaign Members related list on the Campaign record layout. If it is not visible, ask your admin to add it to the page layout or use the Related tab.
  3. Filter members by status. Click the list view filter icon above the Campaign Members list and set the Status filter to the status you want to target—for example, "Invited" for a first send or "Opened" for a follow-up to engaged members. Targeting by status ensures you are not re-sending to members who have already converted or unsubscribed.
  4. Select the members you want to reach. Use the checkbox at the top of the list to select the visible page (up to 200 records per page) or individually check specific records. Each Send List Email operation is capped at 500 recipients.
  5. Click the dropdown arrow on the Campaign Members list and select "Send List Email." This opens the Lightning compose window while keeping the send associated with the Campaign object.
  6. Choose a Lightning email template. Merge fields in the template—{!Contact.FirstName}, {!Lead.Company}—populate automatically from each member’s parent Contact or Lead record. Visualforce templates are not supported.
  7. Review the recipient count and merge field preview in the compose window, then click Send. Salesforce dispatches immediately—there is no native scheduling option from this interface.

After the send, Salesforce creates an Activity History entry per Contact or Lead confirming delivery. It does not automatically update Campaign Member status. Status updates require a Flow automation or a native AppExchange email solution that fires engagement events back to Salesforce.

Filtering by Member Status to Precision-Target Each Send

The most powerful feature of sending from the Campaign Members list is status-based filtering. Without it, every send reaches all members regardless of where they are in the funnel—wasting the segmentation data the Campaign object was built to maintain.

Status filtering enables three patterns: filter to "Invited" or "Sent" for initial outreach; filter to "Opened" or "Clicked" for a follow-on message—a natural next step in a drip sequence; or filter to "Sent" members who never progressed to Opened for a non-responder nudge.

According to Salesforce’s Campaign Member documentation

Handling the 5,000-Email Limit Across Large Campaign Member Lists

Salesforce applies a 5,000-email daily org limit to all Campaign sends. Every recipient draws from the same shared pool as list view sends, workflow alerts, and Flow-triggered messages. The limit resets on a rolling 24-hour GMT window.

For member lists exceeding 500 records, sends must be batched manually across multiple Send List Email operations. A campaign to 2,000 members requires four separate sends. There is no built-in automation that splits large lists.

For campaigns where the member list exceeds 5,000, or where the org’s combined email activity regularly approaches the daily ceiling, a native Salesforce mass email solution removes the limit entirely. HFM Advisors, a financial services firm managing thousands of client contacts in Salesforce, faced exactly this ceiling when running regular client outreach campaigns. Their deployment approach is detailed in the HFM Advisors case study. RPOA encountered the same constraint scaling membership communications and resolved it without rebuilding their Salesforce data model; see the RPOA case study for the operational details.

Updating Campaign Member Status After the Send

Member status is what separates a Campaign that produces data from one that just sends emails. Salesforce does not update Campaign Member status automatically when an email is opened or clicked—the status update requires an explicit action: manual editing, a Flow automation triggered by tracking fields, or a native email automation platform that logs engagement events directly to Salesforce.

For manual updates, navigate to the Campaign Members list and edit the Status field on individual records—practical for small campaigns but not for hundreds of members. Salesforce Flow can update Campaign Member status when an engagement field changes—but requires the open or click event to be written to the Contact record first, which native Send List Email does not do.

A native AppExchange email application solves both problems simultaneously: it logs open, click, and bounce events as Activity records on each Contact or Lead, and updates Campaign Member status in real time. Salesforce Ben’s overview of Salesforce campaign tracking covers the campaign tracking architecture in more detail.

When to Upgrade Beyond Native Campaign Member Email

Sending email to campaign members natively works reliably for campaigns up to a few hundred members on standard Contact and Lead objects, where basic Activity logging satisfies reporting needs, and no additional tools are required.

Three conditions signal that the native workflow has reached its ceiling. First, the member list exceeds the 5,000-email daily org limit, and multi-day batching is operationally impractical. Second, campaign members include recipients on custom Salesforce objects—event registrants, program participants, membership records—that Campaign Members cannot natively include. Third, real-time email tracking—opens, clicks, link-level analytics, and A/B testing across subject line variants—is required to optimize campaign performance beyond what delivery confirmation provides.

UMass Boston case study.

Send to Every Campaign Member—Without Batching, Without Ceilings

MassMailer sends unlimited emails to campaign members natively inside Salesforce, updates member status automatically on open and click events, and logs every engagement to Activity Timeline in real time. Schedule a demo to see it live in your org—no middleware, no data exports, no daily ceiling.

Key Takeaways

  • Send List Email from the Campaign Members related list—not from a standalone list view—to keep the send associated with the Campaign object and enable attribution reporting.
  • Filter Campaign Members by status before selecting recipients; targeting "Invited" or "Sent" members for the first send and "Opened" for follow-up sends is what makes Campaign segmentation meaningful.
  • Salesforce does not update Campaign Member status automatically from email opens or clicks—status updates require Flow automation or a native AppExchange email platform that logs engagement events.
  • Each Send List Email operation is capped at 500 recipients; member lists larger than 500 require multiple sends that must be batched manually across the filtered Campaign Members list.
  • The 5,000-email daily org limit applies to all Campaign sends—for member lists exceeding that threshold, a native Salesforce email solution that bypasses the ceiling is required.
  • The "Responded" checkbox on each Campaign Member Status picklist value determines what counts toward the Campaign’s response rate—configure it on engagement statuses like Clicked, not just Sent.