How to Send Email Campaign in Salesforce: Step-by-Step Guide
Most Salesforce teams know they can send bulk emails from the platform. Far fewer structure those sends as proper email campaigns that tie messaging to revenue, track recipient engagement over time, and generate the attribution data leadership actually wants. Sending a list email from a contact view is fast and convenient. Sending an email campaign—with a Campaign record, configured member statuses, and Opportunity influence tracking—is what transforms a one-time send into a measurable marketing activity. This guide covers the full workflow from Campaign object setup through send execution, tracking, and the point at which the native 5,000-email daily limit requires a different approach.
What a Salesforce Email Campaign Is—and Why It Differs from a List Email
A Salesforce Campaign is a native CRM object that represents a discrete marketing initiative—a product announcement, a nurture sequence, a webinar invitation, or a quarterly newsletter. The Campaign record stores metadata about the initiative: type, status, budget, expected revenue, start and end dates, and cumulative performance statistics. It is the organizational container that turns a bulk email send into a trackable marketing event.
Sending a list email without a Campaign association is the equivalent of making a phone call without logging the activity. The message goes out, but there is no record connecting that communication to a lead source, an opportunity, or a revenue outcome. Salesforce Campaign Management exists precisely to close that gap—it creates the data structure that lets teams answer questions like "how much pipeline did this campaign generate?" and "which message drove the most responses?"
Campaign emails also enable Campaign Influence tracking, which connects marketing touches to Opportunities. When a contact in an email campaign later becomes an opportunity, Salesforce can attribute credit to that campaign—providing the multi-touch attribution data marketing teams need to justify spend. None of this is possible with unassociated list sends.
Setting Up the Campaign Record Before You Send
Every email campaign starts with a Campaign record. Navigate to the Campaigns tab in Salesforce and click New. The fields that matter most for email campaigns are: Name (clear and consistent with a naming convention such as YYYY-MM-Type-Name), Type (set to Email to distinguish from events, ads, or direct mail), Status (start with Planned, move to In Progress when sending begins), Start and End Dates, and Budgeted Cost (essential for ROI calculation).
Member Statuses deserve particular attention. Salesforce provides default statuses—Sent and Responded—but these rarely reflect the engagement stages that email campaigns actually track. Before adding any members, customize the status picklist to match your email funnel: Sent, Opened, Clicked, Converted, Bounced, or Unsubscribed. Each status should represent a meaningful engagement tier. According to Salesforce's Campaigns documentation, the "Responded" flag on any status determines which members count toward the campaign's response rate—set this correctly on Opened and Clicked to get accurate reporting.
Finally, enter an Expected Revenue value on the Campaign record. Combined with Won Opportunity value from Campaign Influence, this field enables the ROI formula: ((Won Opportunities Value − Actual Cost) / Actual Cost) × 100. Without it, the Campaign record is a send record, not a performance record.
Building Your Audience: Adding Campaign Members Correctly
Campaign Members are the Contacts and Leads included in the campaign. Salesforce offers three methods for adding them—choosing the right one for your audience size determines whether the campaign is manageable or error-prone.
The first method is adding from a List View. Navigate to the Contacts or Leads tab, open a filtered view, select records, and use "Add to Campaign" from the actions dropdown. This works well for audiences up to a few hundred records and gives immediate confirmation of who was added.
The second method is adding from a Report. Run a Contacts or Leads report filtered to your target criteria, then use the "Add to Campaign" button on the results. This is the most precise method for complex audience criteria—it leverages Salesforce's full reporting logic to define exactly who qualifies based on multiple fields and conditions.
Before adding any member, verify that the contact's Email Opt Out field is unchecked and that the email address has been validated. Using Salesforce email verification to clean the list before adding members reduces hard bounces, protects sender reputation, and improves email deliverability rates for the campaign.
Sending the Email: Methods, Templates, and the Volume Ceiling
With the Campaign record set up and members added, execute the send through Send List Email. From the Campaign record, go to the Campaign Members related list, select recipients, and click "Send List Email" from the actions menu. The compose window opens in Lightning, where you select a Lightning email template, preview merge field population, and dispatch the send.
Template quality determines campaign effectiveness. Use email templates with merge fields pulling first name, company, and account type from each recipient record. The MassMailer email template builder provides a drag-and-drop environment for building mobile-responsive Lightning templates without HTML expertise.
Volume is the critical operational constraint. Salesforce caps all mass email activity—including Campaign sends—at 5,000 external emails per org per day on a rolling 24-hour window based on GMT. A campaign to 3,000 contacts consumes 60% of the daily allocation immediately, leaving 2,000 emails for the entire org’s other activity that day. For campaigns exceeding 5,000 recipients, teams must split sends across multiple days or deploy a native Salesforce mass email solution that operates outside the platform limit entirely.
Tracking Campaign Performance: Member Status, Opens, and Revenue Attribution
Campaign tracking in Salesforce operates at two levels: member-level engagement status and campaign-level aggregate performance. Understanding both—and the gap between them—sets realistic expectations about what native Campaign reporting delivers versus what requires additional tooling.
At the member level, Salesforce creates an Activity History entry per Contact or Lead confirming the send. It does not update member status from email engagement—a contact who opens remains in "Sent" status unless a Flow or AppExchange app updates the field when the open event fires. Without automation, the "Responded" count stays at zero regardless of actual engagement.
At the campaign level, Salesforce aggregates total members, response rate, leads generated, opportunities created, and won revenue. These power campaign performance tracking reports. For revenue attribution, Salesforce's Campaign Influence documentation covers how to connect campaign touches to Opportunities via the Primary Campaign Source field or the customizable Campaign Influence model, enabling multi-touch attribution across complex buying journeys.
For real-time open and click tracking at the recipient level, a native AppExchange email solution is required. These apps log engagement events directly to Activity Timeline and automatically update Campaign Member status—transforming the Campaign object from a send ledger into a live engagement dashboard. Opal Group used this approach to track campaign engagement across custom object recipients that standard Campaign sends could not reach; see the Opal Group case study for details.
When Native Campaign Email Hits Its Ceiling and What Comes Next
Native Salesforce Campaign email works well when audiences fit within the 5,000-email daily limit, recipients are Contacts or Leads on standard objects, email automation requirements are limited to simple scheduled sends, and basic delivery confirmation satisfies reporting needs.
Four scenarios signal native campaigns need reinforcement: audiences exceed 5,000 contacts; recipients live in custom objects that Campaign Members cannot include; A/B testing across subject lines is needed; or multi-step drip sequences must fire automatically from email engagement events.
Sandy Hook Promise ran high-volume nonprofit campaigns inside Salesforce on a constrained budget. A native solution gave them the volume capacity and Campaign-integrated tracking they needed without adding a separate ESP subscription. The Sandy Hook Promise podcast episode details how they scaled affordable campaigns natively. Salesforce Ben's guide to Salesforce campaigns is a further reference for organizations mapping their campaign architecture before deploying high-volume email.
Run Your First Unlimited Campaign—Natively Inside Salesforce
MassMailer sends unlimited Campaign emails from Salesforce, auto-updates Campaign Member status on opens and clicks, and logs every engagement event directly to Activity Timeline—no middleware, no CSV exports, no sync delays. Install MassMailer free from the AppExchange and send your first campaign without hitting a ceiling.
Key Takeaways
- A Salesforce Campaign record is the container that makes email a revenue-attributable channel—it connects sends to member engagement, opportunity pipeline, and ROI reporting.
- Configure Campaign Member Statuses before adding members—custom statuses like Opened and Clicked, with the "Responded" flag set correctly, are what make engagement rate reporting meaningful.
- The most precise method for building a campaign audience is adding members from a filtered Salesforce Report, which leverages full reporting logic to define exactly who qualifies.
- Native Salesforce does not automatically update Campaign Member status from email opens or clicks—a workflow, Flow automation, or AppExchange email app is required to close that tracking gap.
- The 5,000-email daily org limit applies to Campaign sends—for audiences exceeding that threshold, native AppExchange email solutions that bypass the ceiling are the appropriate solution.
- Campaign Influence connects email campaign touches to Opportunities, enabling multi-touch attribution—without it, campaigns are send records, not revenue attribution records.