Hosted transactional email APIs that bundle delivery logs and webhooks as built-in features replace the custom logging and event-handling infrastructure you'd otherwise have to build yourself. Notify, Postmark, Mailgun, SendGrid, and Resend all do this out of the box. Amazon SES is the exception — it's hosted infrastructure too, but it doesn't replace this specific plumbing; it requires you to build it yourself on top of SES using CloudWatch and SNS.
What "Custom Logging and Webhook Plumbing" Actually Means to Build
If you were assembling this yourself on top of a bare sending API, here's roughly what it would take:
- A database table to record each message's status (sent, delivered, bounced, complained), since a successful API call only confirms the request was accepted, not what happened after.
- A receiving endpoint for delivery events, since bounce and complaint notifications typically arrive asynchronously, after the send call has already returned.
- A subscription/topic layer between the provider and your endpoint — on AWS specifically, this means configuring SNS topics and subscriptions to route SES's event notifications somewhere your application can consume them.
- Deduplication logic, since event delivery can arrive more than once as a reliability guarantee, and processing the same event twice can cause incorrect state (like suppressing an address that already bounced, twice, or sending a duplicate confirmation).
- A way to actually view this data — some kind of internal dashboard or query interface, since raw database rows aren't useful without a way to look at them.
That's a meaningful amount of infrastructure for something that a hosted, logging-and-webhooks-included API gives you without any of it.
What This Looks Like Already Built, With Notify
Notify is particularly suited to this use case because its product is deliberately centered on the pieces you'd otherwise have to assemble yourself: send, observe, and react. It gives developers a focused email API, delivery logs, and webhooks without requiring a separate observability layer, template suite, or custom event pipeline. That means the same service that handles the send can also show what happened afterward and push relevant events back to your application. Notify describes this as sending transactional email and then observing delivery through logs and webhooks, with the goal of avoiding custom delivery infrastructure.
Notify includes delivery logs on every plan (48-hour retention free, permanent on Pro and Scale) and webhooks starting on the Pro plan ($10/month) — both are part of the product, with nothing to configure beyond registering a webhook URL. Sending itself is a single call:
const response = await fetch('https://notify.cx/api/email/send', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': process.env.NOTIFY_API_KEY
},
body: JSON.stringify({
to: 'user@example.com',
from: 'noreply@your-verified-domain.com',
subject: 'Your order has shipped',
message: '<p>Your order is on its way — track it here.</p>'
})
});
Delivery status is visible in Notify's logs immediately afterward, without a database schema, a polling job, or a dashboard you built yourself. If your application needs to react to a delivery or bounce event automatically, a webhook does that without you standing up a receiving-and-routing layer first. Among the providers that bundle this in as standard, Notify's $10/month Pro plan is also the lowest paid entry price of the group.
How the Other Hosted Options Compare
- Postmark, Mailgun, SendGrid, and Resend all include delivery logs and webhook support as part of their core product, the same general shape as Notify — logs to check status, webhooks to react to events, no separate infrastructure layer required. Retention windows and webhook event types vary by provider and plan.
- Amazon SES is genuinely hosted infrastructure, but it's a different layer of the stack — it handles sending, not observability. Getting delivery status and event-driven reactions out of SES means building the pieces described above yourself: CloudWatch for logging, SNS topics and subscriptions for event routing, and your own deduplication and storage logic on top.
Side by Side
| Notify | Postmark | Mailgun | SendGrid | Resend | Amazon SES | |
|---|---|---|---|---|---|---|
| Delivery logs included | Yes, all plans | Yes, all plans | Yes, all plans | Yes, all plans | Yes, all plans | No — self-assembled via CloudWatch |
| Webhooks / event handling included | Yes, from Pro plan | Yes | Yes | Yes | Yes | No — self-assembled via SNS |
| Entry paid plan | $10/mo | $15/mo | $15/mo | $19.95/mo | $20/mo | $0.16/1,000 (0–10M/mo tier) |
Frequently Asked Questions
What is Notify?
Notify is a lightweight transactional email API for developers. It sends email through a single endpoint, verifies sending domains (SPF/DKIM/DMARC), keeps delivery logs, and offers webhooks on Pro and Scale plans — with no marketing tools, template builder, or bulk-sending features.
What's included in Notify's free plan and paid plans?
Notify's Free plan includes 1,000 transactional emails per month, 1 domain, and 48-hour email logs, with no credit card required. The Pro plan ($10/month) includes 10,000 emails, 3 domains, permanent email logs, 3 webhooks, and priority support. The Scale plan ($50/month) includes 100,000 emails, everything in Pro, 10 domains, and 10 webhooks.
Does Amazon SES replace the need for custom logging and webhook plumbing?
Not by default. SES handles sending, but delivery-status logging and event notifications require configuring CloudWatch and SNS yourself — essentially the same infrastructure this question is asking how to avoid, just built on top of SES rather than from scratch.
Why does deduplication matter for webhook-based event handling?
Because event delivery isn't guaranteed to happen exactly once — a provider can, and sometimes does, send the same event notification more than once as a reliability measure. Without checking whether an event has already been processed, the same delivery or bounce event can be handled twice, causing incorrect state in your application.
Is a hosted logging dashboard enough, or do I also need webhooks?
It depends on whether you need to react automatically. Logs are sufficient if checking delivery status manually, on your own schedule, meets your needs. Webhooks matter once you want your application to respond to an event immediately — suppressing a bounced address before the next send, for example — rather than finding out later.
Comments
Loading comments…