A campaign is a one-time bulk send — a newsletter, a product launch, a sale announcement — delivered to all your subscribers or to specific tags. Campaigns send in the background in batches, so a 50,000-recipient send neither times out nor slows your site.
Creating a campaign
Go to Send Emails → Campaigns and click Add Campaign. The editor walks you through three steps:
1. Recipients
Choose who receives the campaign:
- All subscribers, or
- Contacts with specific tags.
- With the WooCommerce/EDD integration active, you can additionally filter to customers only or non-customers only — perfect for win-back offers or first-purchase incentives.
A live recipient count shows exactly how many contacts match. Only contacts with the subscribed status are ever included — unsubscribed, pending, and bounced contacts are excluded automatically.
2. Content
Write the subject and body. Both support merge tags — {{first_name}}, {{company}}, and friends — resolved per recipient at send time.
Every campaign email must offer a way out: if your body doesn’t contain {{unsubscribe_url}}, an unsubscribe footer is appended automatically, and one-click List-Unsubscribe headers are always added. Details in Unsubscribe & Compliance.
3. Review and send
- Test send — email the campaign to yourself first. Always do this; inboxes render HTML differently than your editor.
- Send now — the campaign starts queuing immediately.
- Schedule — pick a date and time (your site’s timezone) and the campaign sends itself when it’s due.
How sending works
Campaigns are delivered by a background queue built on WP-Cron:
- Recipients are processed in batches, respecting the emails per hour rate limit from Settings. Set the limit to whatever your host or sending service allows.
- Delivery state lives in the email log, so sending is fully resumable — a server restart mid-send never causes duplicates or lost recipients.
- On hosts where WP-Cron is broken or disabled, an admin-request fallback keeps the queue moving whenever anyone uses wp-admin. Sending works everywhere; it’s just fastest with a healthy cron.
While a campaign is sending, you can pause it at any time and resume later — useful if replies start reporting a broken link.
Campaign stats
Each campaign shows its own numbers, derived live from the email log, so they can never drift out of sync:
- Sent and failed counts,
- Opens and clicks (when tracking is enabled).
Every individual send is inspectable in the log — including the exact error for any failure — with one-click resend.
Practical tips
- Match the rate limit to your provider before your first big send; a too-high rate is the top cause of mid-campaign failures.
- Send a test to Gmail and Outlook accounts, not just your own domain.
- Target tags rather than “all subscribers” whenever the content isn’t truly for everyone — relevance is what keeps your unsubscribe rate down.
- Pro users can A/B-test and build reusable templates as those features roll out — see the Pro roadmap.