✦ Event-triggered emails
Fire emails from any product event.
Transactional and marketing email from the same event stream. Schema-validated, version-controlled, webhook-friendly.
// fire an event → workflow + email both run
await mailazy.events.send({
user_id: "u_42",
name: "cart.abandoned",
properties: {
items: 3,
total_cents: 4900,
currency: "USD"
}
}); API, webhooks, schemas.
Event API
One POST per event. Idempotent. Batched up to 1k per request.
Webhooks
Subscribe to delivery, open, click, bounce, complaint, unsub.
Schemas
Versioned payloads. Strict typing. Reject malformed before workflow.
Schemas
Schemas you can lint in CI.
Define event payloads up front. Mailazy validates incoming events against your schema and rejects malformed payloads before they reach a workflow.
- JSON Schema or TypeScript types. Export from your codebase, import to Mailazy.
- Version pinning per event. Roll out v2 without breaking v1 consumers.
- Replay rejected events. Fix payload, re-fire — no data loss.
// v2 — versioned, typed
export type CartAbandoned = {
user_id: string;
name: "cart.abandoned@v2";
properties: {
items: number;
total_cents: number;
currency: "USD" | "EUR";
};
}; Emails firing from product events.
Order receipts
order.placed → receipt with itemized total + shipping ETA.
Auth flows
user.signup, password.reset, magic-link — sub-second delivery.
Notifications
comment.posted, task.due, shipment.delivered, deal.closed.
Fire from anywhere
Works with your event stack.
REST API · Webhook · Segment · Stripe · Shopify · GitHub Actions · Temporal