Separate urgent and bulk traffic
Sendix runs separate delivery workers per priority, so bulk digests don’t hold up security or billing mail.
Mentions, alerts, weekly digests, usage warnings and account changes: send them from your product events, keep the copy in versioned templates, and label every message so you can tell the types apart.
await fetch("https://sendix.dev/api/v1/emails/batch", {
method: "POST",
headers: {
Authorization: "Bearer " + process.env.SENDIX_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
emails: digests.map((d) => ({
from: "Acme <[email protected]>",
to: [d.email],
template_id: WEEKLY_DIGEST_TEMPLATE_ID,
template_data: { name: d.name, items: d.items },
priority: "bulk",
scheduled_for: d.sendAt, // ISO 8601
tags: [{ name: "type", value: "weekly-digest" }],
})),
}),
});Call POST /v1/emails from your event handlers — or POST /v1/emails/batch for up to 100 messages per request — with a template_id, template_data and tags such as {"name": "type", "value": "mention"}. Use priority "default" for notifications and "bulk" for digests, scheduled_for for timed sends, and topics plus unsubscribe links for anything users can opt out of.
What your code does, what Sendix does, and where to look when something goes wrong.
Give each notification type its own Sendix template with the variables it needs, and publish a version before use.
Single events call POST /v1/emails; fan-out and digests use /v1/emails/batch (up to 100 emails, partial or strict validation).
Add name/value tags for type or tenant, and choose default or bulk priority so digests never slow down urgent mail.
Use bounce, complaint and unsubscribe events to stop mailing addresses that no longer want or accept your mail.
Habits that protect deliverability and your users, whichever provider you use.
Sendix runs separate delivery workers per priority, so bulk digests don’t hold up security or billing mail.
Send template_version with template_id when a change must not reach users until you deploy it.
Model notification categories as Sendix topics so contacts can opt out of digests without losing account mail.
One batch request carries up to 100 messages, each with its own recipient, variables and tags.
Compute the local send time in your app and pass it as scheduled_for; scheduled mail can be cancelled before it goes out.
Up to 20 name/value tags per message make it easy to separate notification types in logs and exports.
Sendix signs each webhook with X-Sendix-Signature and keeps the same events on the message at GET /v1/emails/{id}/events.
| Event | What to do with it |
|---|---|
| email.delivered | What to do with itAccepted by the receiving server. |
| email.opened | What to do with itOpen tracked (when tracking is enabled). |
| email.clicked | What to do with itLink click tracked. |
| email.complained | What to do with itMarked as spam — stop non-essential mail. |
| email.unsubscribed | What to do with itThe contact opted out. |
Short answers to the questions teams ask while wiring this up.
Messages triggered by a user’s own activity or account — mentions, alerts, security and billing notices — are generally treated as transactional. Promotional content is marketing and needs consent and an unsubscribe option. Rules differ by country, so offer opt-outs for non-essential notifications either way.
Use POST /v1/emails/batch with up to 100 messages per request. For audience-wide announcements, Sendix Broadcasts send to a segment with scheduling and per-recipient results.
Yes. POST /v1/emails/{id}/cancel cancels a scheduled message before it is sent, and PATCH /v1/emails/{id} can move its scheduled_for time.
Create topics (POST /v1/topics) for each category and store each contact’s choices with the contact topics endpoints; unsubscribe links are handled by Sendix and recorded as suppressions.
The free plan includes 1,000 emails per month. Paid plans change volume and limits, not your API calls or SMTP settings.
1,000 emails free every month. No credit card required. Upgrade only when you outgrow the free tier — and we will let you know when that time comes.
Managed SaaS platform · Native SMTP engine · SOC 2 in progress