Creating a campaign
Set the name and content
Give the campaign an internal name and write the email content:
- Name — for your reference only, not shown to recipients
- Description — optional internal notes
- Subject — the email subject line
- Body — HTML email content; supports
{{variable}}substitution from contact data - From — must be from a verified domain
- From name — optional display name
- Reply-to — optional reply-to address
Choose your target audience
Select who receives the campaign:
- All subscribed contacts — sends to every contact with
subscribed: true - Segment — sends only to contacts in a specific saved segment
Send a test email (optional)
Before sending to your full list, use the Send Test option to deliver a preview to any email address. This sends a real email so you can verify formatting, links, and content.
Sending options
Send immediately
The campaign enters the send queue right away. Plunk processes it in the background using BullMQ, so large audiences are handled without blocking your dashboard.
Schedule for later
Provide an ISO 8601 timestamp for
scheduledFor. The campaign stays in SCHEDULED state until that time arrives, then enters the queue automatically.Background queue processing
Campaigns are sent asynchronously via a background worker. After you send a campaign, Plunk:- Resolves the audience (all subscribed contacts or a segment).
- Queues individual send jobs for each recipient.
- Processes the queue with retry logic and rate limiting.
The campaign detail page shows a live count of sent, delivered, opened, clicked, and bounced emails as the queue is processed.
Campaign analytics
Each campaign tracks the following metrics:| Metric | Description |
|---|---|
| Total recipients | Number of contacts targeted |
| Sent | Emails successfully handed off to AWS SES |
| Delivered | Emails confirmed delivered to the recipient’s server |
| Opened | Unique contacts who opened the email |
| Clicked | Unique contacts who clicked a link |
| Bounced | Emails that bounced (hard or soft) |
Canceling a scheduled campaign
A campaign in SCHEDULED state can be canceled before it is dispatched. Canceling sets the status to CANCELLED and removes it from the send queue. You cannot cancel a campaign that is already in SENDING state — emails already enqueued will continue to be delivered. To cancel via the API:Campaign statuses
| Status | Description |
|---|---|
DRAFT | Created but not yet sent or scheduled |
SCHEDULED | Queued for a future send time |
SENDING | Currently being processed and dispatched |
SENT | All emails have been handed off to SES |
CANCELLED | Canceled before sending completed |