Newsletter
Draft issues with AI from your own content, grow a double-opt-in list, and send from your own verified domain — with delivery, open, and click tracking built in. Sending requires Pro and a verified sending domain.
Your newsletter is the one distribution channel you own outright — no algorithm between you and the reader. BlackOps treats it that way: issues are drafted from your own content, subscribers are double-opt-in, and every send goes out from your domain with your sending reputation, not a shared platform address.
Newsletter sending is a Pro feature. Drafting is available on every tier, but sends and signups unlock only after your sending domain is verified.
Before your first send
Three one-time steps, in order:
- Verify a sending domain — Settings → Email Sending Domain. Add a dedicated subdomain (like
news.yourdomain.com), create the SPF/DKIM records it shows you, click Verify. See Custom Email Sending Domain. - Set your From Email — Newsletters → Settings. It must be an address on the verified domain (e.g.
you@news.yourdomain.com). Set your From Name and optional Reply-To while you're there. - Turn on signups — nothing to click: the subscribe form on your site starts accepting readers automatically once steps 1–2 are done.
Until these are complete, sends and test sends return a message explaining exactly what's missing, and the signup endpoint politely declines — no subscriber ever gets stuck waiting on a verification email that can't be sent.
Drafting an issue
Create a newsletter from the Newsletters tab under Promote. Pick the content sources you want to draw from — recent posts, saved content, notes — and the AI reshapes them into a draft in your brand voice. Everything is editable before anything sends; the AI is a first-drafter, not the author of record.
Your configured header, footer, sign-off, signature, and P.S. from Newsletter Settings wrap every issue, so each send looks consistent without per-issue formatting work.
Subscribers
- Double opt-in: new signups get a verification email and only join the list after confirming — the list stays clean and consentful.
- Migration: import an existing list via CSV; imported readers get a re-opt-in confirmation rather than being silently added.
- Unsubscribe: every issue carries working unsubscribe links plus the one-click
List-Unsubscribeheader mail clients surface.
Sending
- Test send — every draft has a send-test that delivers a
[TEST]-prefixed copy to your admin email so you can check rendering and the from line before going out. - Send to all — sends in rate-limited batches with real-time progress, duplicate prevention (a subscriber is never sent the same issue twice), and automatic resume if a send is interrupted partway.
Growing the list from outside BlackOps
Your list doesn't have to grow only through the form on your hosted site.
A form on any other site — the subscribe endpoint accepts cross-origin requests, so a plain fetch form on your app, landing page, or anywhere else works directly. Point it at your BlackOps site's domain:
<form onsubmit="event.preventDefault();
fetch('https://blog.yourdomain.com/api/newsletter/subscribe', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: this.email.value })
}).then(r => r.json()).then(d => this.outerHTML = '<p>' + (d.message || d.error) + '</p>')">
<input type="email" name="email" placeholder="you@example.com" required />
<button type="submit">Subscribe</button>
</form>
Programmatically from your app — add subscribers server-to-server with your API key, for example when a user signs up for your product:
await fetch('https://blackopscenter.com/api/v2/subscribers', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({ domain: 'blog.yourdomain.com', email: user.email, name: user.name })
})
Both paths run the same double opt-in: the reader gets a confirmation email and only joins the list after clicking it. Signing up for your app isn't consenting to your newsletter — the confirmation step is what keeps the list clean and compliant, so there's intentionally no way to skip it.
Tracking
Delivery events feed back automatically: each issue in the list shows its open rate and click rate, and per-subscriber delivery status (delivered, bounced, complained) is recorded via webhooks. Use it to learn which subjects and topics actually land.
Related
- Custom Email Sending Domain — the prerequisite for sending
- Voice Generation — how drafts pick up your voice