Newsletters
Lists, subscribers, broadcasts, drip sequences, double opt-in.
Create a list
curl https://api.koltrix.com/api/v2/lists \
-H "Authorization: Bearer kx_..." \
-d '{
"name": "Weekly product updates",
"from_name": "Acme Team",
"from_address": "[email protected]"
}'Add a subscriber
curl https://api.koltrix.com/api/v2/lists/$LIST_ID/subscribers \
-H "Authorization: Bearer kx_..." \
-d '{
"email": "[email protected]",
"name": "Ada Lovelace",
"tags": ["beta", "vip"]
}'If the list has require_double_opt_in = true, the new subscriber starts in
pending status and gets a confirmation email. They become active after
clicking the confirm link.
Bulk import (CSV)
In the dashboard, Newsletters → list → Import CSV. Required column: email.
Optional: name, tags (semicolon-separated). Duplicates are upserted, not
errored.
Campaigns
Compose in the dashboard, choose a list, hit Send. The worker:
- Loads active subscribers (skipping
unsubscribedandbounced). - Checks the warmup budget for today; refuses to start if it would exceed.
- For each recipient:
- Generates a unique
unsubscribe_tokenlink in the body - Inserts a tracking pixel + rewrites outbound links through
/t/c/:token - Sends via SMTP, writes
outbound_messages - Fires
message.sent(ormessage.bounced) webhook
- Generates a unique
Segments
Per-list smart filters (status, tags, signup date, engagement). Send campaigns to a segment instead of the full list. UI: Newsletters → list → Segments.
Drip sequences
Automations: when a subscriber is added to a list (or tagged), run an ordered series of steps with delays.
Step 1 (T+0h): Welcome
Step 2 (T+24h): Setup guide
Step 3 (T+72h): "How's it going?" check-inConfigure under Newsletters → Sequences. Active sequences automatically schedule the next step on subscribe.
Templates
Reusable HTML emails. Store them once under Settings → Templates, reference them from campaigns or the API. Placeholders you can use in any body:
{{name}}— subscriber name{{email}}— recipient email{{unsubscribe_url}}— personalized one-click link
Suppression
Recipients that bounce hard (SMTP 5xx) are added to the suppression list automatically. Anyone who clicks unsubscribe is suppressed too. You can also add / remove manually under Settings → Suppressions.