Campaigns
Write it, pick who gets it, schedule it. The queue survives a restart mid-way through forty thousand recipients and picks up where it stopped.
In private beta · from $19/month
Beacon is the marketing half of BeaconPulsar. It holds your contacts, decides who should hear what, and sends it — including the messages that go out weeks later because of something a customer did today.
Send, wait, branch, exit, and an SMS step that records itself as skipped.
Queued, sent, delivered, opened, clicked, bounced, failed — counted, not sampled.
The queue is a table with a lease per row, not a loop inside a request.
Bought on its own. Pulsar is a separate purchase you do not have to make.
Automation
Five step types and no more. Each person moves through on their own clock, held by a background worker, so closing the tab changes nothing.
Audience
Evaluated against each contact the moment it is used, so it is never stale and there is nothing to rebuild after an import.
{ "allOf": [ { "field": "emailConsent", "is": true }, { "field": "lifetimeValue", "greaterThan": 50 }, { "field": "daysSinceLastOrder", "greaterThan": 60 } ], "anyOf": [ { "field": "tags", "contains": "wholesale" }, { "field": "opensLast90", "greaterThan": 2 } ]}Sending
Pressing send writes one row per recipient and returns. A worker drains them, taking a short lease on each row, so two workers can never send the same person twice.
| Recipient | State | Updated |
|---|---|---|
| rima@example.com | Opened | 09:41:02 |
| arif@example.com | Delivered | 09:41:02 |
| tanvir@example.com | Sent | 09:41:03 |
| bounced@example.com | Bounced | 09:41:03 |
| sadia@example.com | Queued | — |
Events
Post an event and the people who match enter on their own. No nightly batch, no export, no spreadsheet.
curl -X POST https://api.beaconpulsar.com/v1/events \ -H "Authorization: Bearer $BEACON_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"order.placed", "contact":"rima@example.com", "properties":{"total":4200}}'What is in it
Write it, pick who gets it, schedule it. The queue survives a restart mid-way through forty thousand recipients and picks up where it stopped.
Rules over behaviour, not a static list. Re-read every time they are used, so there is nothing to rebuild after an import.
Wait, branch, send, exit. A welcome series, an abandoned cart, a win-back — each running per person in a background worker rather than a browser tab.
Scheduling and publishing to social alongside the email calendar. Being switched on now — the product page marks which parts are live.
Reusable blocks, so a campaign is assembled rather than written from nothing, with a preview of what actually lands.
Opens and clicks per campaign, and where they led. Which message made money, not which had the best open rate.
Subscription state per contact and per channel, recorded with when and how it was given — because the day it matters is the day someone asks.
Pricing
One price list in US dollars, the same in every country. Yearly is the only discount, at 17%.
$19/month
One list, a newsletter, a few campaigns a month.
$49/month
You want journeys running while you do something else.
$129/month
Volume where deliverability is its own job.
Not there yet
Questions
No. Beacon is priced and cancelled on its own, from $19 a month. Pulsar sits in your dashboard as a preview with its price on it, doing nothing until you want it.
It resumes. The queue is a table with a lease on each row, not a loop inside a request, so rows a stopped worker had leased are reclaimed by age and rows already sent are never sent again.
From the per-recipient rows themselves — seven states each: queued, sent, delivered, opened, clicked, bounced, failed. The dashboard figures are counted, not estimated from a sample.
Yes. Because segments are rules evaluated at use, an import does not leave you with stale lists to rebuild afterwards.