Campaigns
Campaigns are one-time email broadcasts sent to a segment of your subscribers. Use them for announcements, newsletters, promotions, and any communication that goes to multiple people at once.
Campaigns vs Sequences
| Aspect | Campaigns | Sequences |
|---|
| Timing | One-time, scheduled | Ongoing, triggered |
| Trigger | Manual or scheduled | Automatic (tag/event) |
| Recipients | Filtered segment | Individual subscribers |
| Use case | Newsletters, announcements | Onboarding, follow-ups |
Campaign States
┌─────────┐ ┌───────────┐ ┌─────────┐ ┌────────┐
│ Draft │ ──▶ │ Scheduled │ ──▶ │ Sending │ ──▶ │ Sent │
└─────────┘ └───────────┘ └─────────┘ └────────┘
│
▼
┌───────────┐
│ Cancelled │
└───────────┘
| State | Description |
|---|
draft | Being created or edited |
scheduled | Queued to send at a specific time |
sending | Currently being sent |
sent | Completed sending |
cancelled | Manually cancelled before sending |
Creating a Campaign
1. Choose Recipients
Define who receives the campaign:
All Subscribers
Recipients: All active subscribers
Filters: None
Filtered Segment
Recipients: Filtered
Filters:
- Status is "active"
- Tags contains "customer"
- Tags not_contains "churned"
2. Select Email Template
Choose or create the email content:
- Use an existing template from your library
- Create new content in the editor
- Duplicate and modify a previous campaign
3. Choose Sender
Select who the email appears to come from:
From: "Sequenzy Team" <hello@sequenzy.com>
4. Schedule or Send
- Send Now: Queue immediately
- Schedule: Pick a specific date and time
- Spread Over Time: Distribute sends linearly over 1–24 hours
You now choose these in two layers:
- Start time: Send now or schedule a future start
- Delivery strategy: All at once, Spread Over Time, or Send Time Optimization
5. Spread Over Time (Optional)
Enable Spread Over Time to distribute your campaign sends gradually over a configurable window, protecting your sender reputation during warmup.
How it works:
- Choose when the campaign should start sending
- Select “Spread over time” as the delivery strategy
- Use the slider to choose a delivery window (1-24 hours)
- The first batch sends at the chosen start time
- Remaining batches are spaced evenly across the window
When to use:
- Warming up a new sending domain
- Sending your first large campaign (1,000+ recipients)
- You’ve sent fewer than 10,000 emails total (Sequenzy will recommend this automatically)
Example:
Campaign start: Tomorrow at 9:00 AM
Spread window: 12 hours
Subscribers: 1,200
Chunks: 5
Chunk 1: Sent at 9:00 AM
Chunk 2: Sent at 12:00 PM
Chunk 3: Sent at 3:00 PM
Chunk 4: Sent at 6:00 PM
Chunk 5: Sent at 9:00 PM
Spread Over Time and Send Time Optimization are mutually exclusive. You can
only enable one per campaign.
6. Send Time Optimization (Optional)
Enable Send Time Optimization to deliver emails at each subscriber’s optimal time based on their engagement patterns.
How it works:
- Toggle “Send Time Optimization” on the schedule step
- Sequenzy analyzes each subscriber’s historical open times (last 90 days)
- Emails are delivered within a 12-hour window at each subscriber’s optimal hour
- Subscribers without enough data receive emails at the scheduled time
Requirements:
- Subscribers need at least 5 email opens in the last 90 days
- The UI shows how many subscribers have computed optimal times
Example:
Campaign scheduled: 9:00 AM
12-hour window: 9:00 AM - 9:00 PM
Subscriber A: Usually opens at 2:00 PM → Sent at 2:00 PM
Subscriber B: Usually opens at 6:00 PM → Sent at 6:00 PM
Subscriber C: Not enough data → Sent at 9:00 AM (scheduled time)
After sending, view the delivery distribution chart to see how STO spread your campaign across hours.
Filtering Options
Status Filters
| Filter | Description |
|---|
is subscribed | Only active subscribers |
is_not subscribed | Exclude active (rare use) |
Tag Filters
| Filter | Description |
|---|
contains [tag] | Has the specified tag |
not_contains [tag] | Does not have the tag |
Example: Target customers, exclude churned:
Tags contains "customer"
Tags not_contains "churned"
Tags not_contains "unsubscribed"
Email Filters
| Filter | Description |
|---|
contains [text] | Email contains text |
not_contains [text] | Email does not contain text |
Example: Target company emails:
Email contains "@company.com"
Date Filters
| Filter | Description |
|---|
less_than [days] ago | Added within X days |
more_than [days] ago | Added longer than X days ago |
Example: Recent subscribers:
Added less_than 30 days ago
Name Filters
| Filter | Description |
|---|
firstName contains [text] | First name contains |
lastName contains [text] | Last name contains |
Filter Combinations
Filters are combined with AND logic:
Tags contains "customer"
AND
Tags contains "pro-plan"
AND
Added more_than 7 days ago
This targets: Pro plan customers who signed up more than a week ago.
Sending Process
When a campaign is sent:
1. Campaign marked as "sending"
│
▼
2. Fetch all matching subscribers
(apply filters)
│
▼
3. Split into chunks (100 per batch)
│
▼
4. Queue each chunk for processing
│
▼
5. Each chunk:
- Render email with personalization
- Send via email provider
- Record in analytics
│
▼
6. All chunks complete
│
▼
7. Campaign marked as "sent"
Personalization
Available Variables
Use these in your email content:
| Variable | Description |
|---|
{{FIRST_NAME}} | Subscriber’s first name |
{{LAST_NAME}} | Subscriber’s last name |
{{NAME}} | Full name |
{{EMAIL}} | Email address |
{{customAttribute}} | Any custom attribute |
Example
<p>Hi {{FIRST_NAME|there}},</p>
<p>As a {{plan}} customer, we wanted to share...</p>
<p>Your account: {{EMAIL}}</p>
The |there syntax provides a fallback if the name is missing.
Tracking
Open Tracking
When enabled, Sequenzy tracks email opens via a tracking pixel.
<!-- Automatically inserted -->
<img src="https://api.sequenzy.com/t/o/[tracking-id].gif" />
Click Tracking
When enabled, links are wrapped to track clicks:
<!-- Original -->
<a href="https://example.com">Click here</a>
<!-- With tracking -->
<a href="https://api.sequenzy.com/t/c/[tracking-id]?url=...">Click here</a>
You can enable/disable tracking per company in Settings → Tracking.
Analytics
After sending, view campaign performance:
| Metric | Description |
|---|
| Sent | Total emails sent |
| Delivered | Successfully delivered |
| Bounced | Failed to deliver |
| Opens | Unique opens |
| Clicks | Unique clicks |
| Unsubscribes | Opted out from this email |
| Open Rate | Opens / Delivered |
| Click Rate | Clicks / Delivered |
Revenue Attribution
If you have goals configured, sent campaigns show revenue attribution metrics:
| Metric | Description |
|---|
| Conversions | Goal conversions attributed to this campaign |
| Revenue | Total tracked value from attributed conversions |
Attribution uses a 24-hour window from email interaction to conversion. Works automatically with Stripe, Polar, Paddle, and Dodo integrations.
Tracking Over Time
View how engagement changes:
Day 1: 45% opens, 12% clicks
Day 2: 52% opens, 15% clicks
Day 7: 58% opens, 17% clicks
Most engagement happens in the first 48 hours.
Campaign Types
Newsletter
Regular updates to your entire list:
Recipients: All active subscribers
Tags: contains "newsletter"
Schedule: Every Tuesday, 10am
Product Announcement
New feature or product launch:
Recipients: Filtered
Tags: contains "customer"
Send: Immediately
Sales, discounts, special offers:
Recipients: Filtered
Tags: contains "active"
Tags: not_contains "enterprise" (they don't need discounts)
Re-engagement
Bring back inactive subscribers:
Recipients: Filtered
Tags: contains "inactive"
Added: more_than 60 days ago
Segmented Updates
Different content for different segments:
Campaign A: Pro Plan Updates
- Tags: contains "pro-plan"
Campaign B: Starter Plan Updates
- Tags: contains "starter-plan"
Campaign C: Free Tier Updates
- Tags: contains "free-tier"
Best Practices
1. Test Before Sending
- Send a test email to yourself
- Check personalization renders correctly
- Verify links work
2. Segment Thoughtfully
Don’t send everything to everyone:
✓ Feature update → Only to customers using that feature
✓ Upgrade offer → Only to free/starter tiers
✓ Renewal reminder → Only to annual subscribers
✗ Everything → All subscribers
3. Time Your Sends
- B2B: Tuesday-Thursday, 10am-2pm
- B2C: Evenings and weekends
- Consider time zones: Schedule for recipient’s local time
4. Monitor Deliverability
Watch your metrics:
⚠ Bounce rate > 5% → Clean your list
⚠ Complaint rate > 0.1% → Review targeting
⚠ Open rate < 10% → Improve subject lines
5. Respect Unsubscribes
- Process unsubscribes immediately
- Don’t re-add unsubscribed contacts
- Provide easy unsubscribe links
Campaigns vs Transactional
| Use Campaign | Use Transactional |
|---|
| Marketing messages | Order confirmations |
| Newsletters | Password resets |
| Promotions | Account alerts |
| Announcements | Receipts |
Don’t use campaigns for transactional messages—they may be delayed or
filtered.