Docs / Roadmap

Planned for v1.0

v1.0 roadmap

One item is left: the delivery-status webhook events. The signed webhook itself — the endpoint, the HMAC signature, the retry ladder, the delivery log — ships today; what does not is the delivered and bounced half of the lifecycle. None of the wire shapes here are committed yet — treat them as drafts and pin us in the dashboard changelog when they ship.

These items are subject to change as the milestone hardens. When a feature lands, this page (and the matching /docs/* page that owns the detail) move together in the same PR.

Draft

Delivery-status webhooks

The signed webhook fires for message.received and message.sent today. The delivery-status events — message.delivered and message.bounced — are the residual: the receive worker owns those transitions and the platform never sees them, so reporting them means changing the ingest contract, which is out of scope for this milestone.

  • Until then, poll fm.messages.status(id) — today it answers sent or failed. The vocabulary also holds delivered / bounced, but the worker has no bounce ingestion, so a bounce is not observable at all.
  • The delivery log already shows every attempt of the two events that do fire, for 30 days.
  • When the worker starts reporting status transitions, the webhook gains the two events and this entry closes.
// What ships today
POST <your-webhook-url>
Content-Type: application/json
X-Flowmails-Signature: sha256=<hex>
X-Flowmails-Timestamp: <unix seconds>
X-Flowmails-Event: message.sent
X-Flowmails-Delivery-Id: <stable across retries>

{
  "id": "whd_8421",
  "event": "message.sent",
  "createdAt": "2026-07-06T12:34:56.000Z",
  "data": {
    "messageId": "<msg@example.com>",
    "from": "billing@example.com",
    "to": "ops@example.net",
    "subject": "Your invoice is ready"
  }
}

What v1.0 is not

  • Marketing email platform. Flowmails is built for transactional and operational mail, not bulk campaigns.
  • Team accounts. There are no workspaces in v1 — every credential belongs to exactly one account, and reads are scoped to it.
  • Webhook signing-key rotation. Each endpoint’s secret is minted once and shown once; rotating it invalidates the stored secret, so the endpoints have to be re-created.

Ship today