If you're new to email infrastructure, the difference between campaigns and sequences can feel murky. Some platforms blur the line. Others force you into one paradigm. Here's how PushMail thinks about it — and when to use each.
Campaigns: One Message, Many Recipients
A campaign is a single email sent to a group of contacts at a specific time. Think:
- Weekly newsletter
- Product launch announcement
- Seasonal promotion
- Event invitation
Campaigns are one-shot. You compose an email, pick your audience (a list, a tag, or a segment), and either send immediately or schedule it for later. Every recipient gets the same email at the same time.
When to use campaigns
- You have time-sensitive content (a sale ends Friday, a webinar is next week)
- You want to broadcast the same message to everyone
- The content isn't personalized to where someone is in a journey
- You're sending a one-off communication
Campaign workflow in PushMail
POST /api/v1/campaigns
{
"name": "March Newsletter",
"subject": "What's new in March",
"html": "<h1>March Update</h1>...",
"listId": 42,
"sendingConfigId": 1,
"scheduledAt": "2026-03-10T09:00:00Z"
}The campaign sits in scheduled status until the cron worker picks it up and sends it in batches. You get delivery tracking, bounce/complaint handling, and full event logs — same as any other send.
Sequences: A Series of Emails Over Time
A sequence (also called a drip campaign or automation) is an ordered series of email steps with delays between them. Each contact progresses through the sequence independently, based on when they were enrolled.
Think:
- 5-day onboarding flow after signup
- 3-email nurture series after a lead magnet download
- Re-engagement drip for inactive users
- Educational course delivered over 2 weeks
When to use sequences
- The content builds on itself — step 2 assumes step 1 was read
- Timing is relative to the contact, not to a calendar date
- You want to automate a repeatable journey
- Different contacts should be at different stages simultaneously
Sequence workflow in PushMail
First, create the sequence and its steps:
POST /api/v1/sequences
{ "name": "Onboarding Flow", "sendingConfigId": 1 }
POST /api/v1/sequences/5/steps
{ "subject": "Welcome!", "html": "...", "delayValue": 0, "delayUnit": "minutes" }
POST /api/v1/sequences/5/steps
{ "subject": "Getting started", "html": "...", "delayValue": 1, "delayUnit": "days" }
POST /api/v1/sequences/5/steps
{ "subject": "Pro tips", "html": "...", "delayValue": 3, "delayUnit": "days" }Then enroll contacts:
POST /api/v1/sequences/5/enroll
{ "contactId": 123 }The cron worker checks every minute for enrollments that are ready for their next step, sends the email, and advances them.
Side-by-Side Comparison
| Campaigns | Sequences | |
|---|---|---|
| Timing | Fixed date/time | Relative to enrollment |
| Steps | Single email | Multiple ordered steps |
| Per contact | Everyone at once | Independent progression |
| Best for | Announcements, newsletters | Onboarding, nurture, education |
| Scheduling | Calendar-based | Delay-based (minutes, hours, days) |
| Enrollment | Send to a list/segment | Enroll individually or in bulk |
Why You Need Both
Most real-world email programs use both. A typical setup:
- Sequence: New signup triggers a 5-email onboarding flow
- Campaign: Monthly newsletter goes to all active subscribers
- Sequence: User goes inactive, auto-enrolled in a re-engagement drip
- Campaign: Product launch announcement to everyone
The key insight: campaigns are about your timeline. Sequences are about the contact's timeline.
Transactional Email: The Third Pillar
Beyond campaigns and sequences, there's transactional email — triggered by a user action and sent immediately. Password resets, order confirmations, login codes. In PushMail, these use the same POST /api/v1/send endpoint and the same sending configs. One platform, three use cases.
Ready to set up your first campaign or sequence? Check out the quickstart guide or head to your dashboard.