Introducing Broadcasts: Marketing Emails in SendPigeon
Send targeted marketing emails to your audience with contact management, templates, and tracking—all from the same platform as your transactional emails.
We built SendPigeon for transactional email. Password resets, order confirmations, the emails your app needs to send. But we kept hearing the same request: "Can I also send newsletters?"
Today, yes. Broadcasts are here.
What's new:
- Contact management with tags and custom fields
- Broadcast campaigns with audience targeting
- Open and click tracking per recipient
- Automatic unsubscribe handling
- CSV import for existing lists
Available on: Starter plan and above ($7/mo)
Why We Built This
Most teams end up with two email tools: one for transactional, one for marketing. That means:
- Two sets of DNS records to manage
- Two dashboards to check
- Two billing relationships
- Templates that don't match
We wanted to fix that. Same verified domains, same visual editor, same API patterns—just a different send mode.
How It Works
1. Import Your Contacts
Add contacts one by one, batch via API, or import a CSV. Organize them with tags like newsletter, beta-users, or paying-customers.
// Add contacts via API
await client.contacts.create({
email: "user@example.com",
tags: ["newsletter", "product-updates"],
fields: { firstName: "Alex" }
});
// Or batch import
await client.contacts.batch([
{ email: "user1@example.com", tags: ["newsletter"] },
{ email: "user2@example.com", tags: ["newsletter"] },
]);
2. Create a Broadcast
Use the visual editor or write HTML directly. Add personalization with {{firstName}} variables. Preview on desktop and mobile.
3. Target Your Audience
Select which tags to include. Only contacts matching your criteria receive the broadcast.
4. Send or Schedule
Send immediately or schedule for later. We handle unsubscribe links automatically—no need to add them yourself.
Tracking Built In
Every broadcast includes:
- Open tracking — See who opened and when
- Click tracking — Know which links get clicks
- Per-recipient status — Delivered, bounced, complained
- Analytics dashboard — Opens over time, link performance
Tracking respects your organization's privacy settings. If you've disabled tracking for transactional emails, broadcasts follow the same rules.
Unsubscribe Handling
We automatically:
- Add an unsubscribe link to every broadcast
- Host the unsubscribe page
- Update contact status when someone unsubscribes
- Exclude unsubscribed contacts from future sends
You don't have to think about compliance. It just works.
Pricing
Broadcasts are available on Starter ($7/mo) and above. Broadcast emails count toward your monthly quota—same as transactional emails.
| Plan | Emails/mo | Contacts |
|---|---|---|
| Starter | 10,000 | Unlimited |
| Growth | 30,000 | Unlimited |
| Pro | 100,000 | Unlimited |
Getting Started
- Go to Dashboard → Broadcasts
- Import contacts or add them manually
- Create your first broadcast
- Send a test email to yourself
- Send to your audience
Or use the API:
// Create and send a broadcast
const broadcast = await client.broadcasts.create({
name: "January Newsletter",
subject: "What's new this month",
htmlContent: "<p>Hello {{firstName}}!</p>",
tags: ["newsletter"]
});
await client.broadcasts.send(broadcast.id);
What's Next
This is v1. We're planning:
- A/B testing for subject lines
- Send time optimization
- Automation sequences
- More analytics
Have requests? Let us know at info@sendpigeon.dev.