Every dashboard action is an MCP tool your agent can call.Read the docs
Transactional emails

Send critical product email you can trace. Keep receipts and lifecycle on one history.

Receipts, resets, and alerts run through the same contact record as your lifecycle email — so the person who got a password reset this morning isn't a stranger to your welcome flow.

Accept-and-queue with idempotent retries. A message ID you can follow.

Message trace
Transactional emails

Receipt accepted

Details

delivered

To[email protected]

From[email protected]

Templatewelcome

Sourceapi

ProviderSend & Retain

Delivery events

  1. RequestIdempotency key verified
  2. SafetySuppression cleared
  3. ProviderDelivery accepted
  4. WebhookDelivered
Queued is not delivered

[ 01 / 04 ]From product event to queue

A complete send path, not a fire-and-forget call.

Keep the credential on the server, make retries idempotent, and retain the returned message ID for the delivery timeline.

A network retry with the same idempotency key returns the original message instead of sending twice.

app/api/receipts/route.ts
const response = await fetch("https://sendandretain.com/api/v1/emails", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.AEM_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": `receipt-${order.id}`,
  },
  body: JSON.stringify({
    to: order.customerEmail,
    template: "receipt",
    props: { orderId: order.id, total: order.total },
  }),
});

const message = await response.json();

Accepted response

{ "id": "msg_…", "status": "queued" }

[ 02 / 04 ]What you get

Critical mail, with the evidence attached.

Send from your product

Use the API for receipts, password resets, alerts, and other event-driven messages.

Protect critical sends

Keep transactional traffic separate, observable, and protected by suppression controls.

Trace delivery

Follow each message from accepted to delivered, bounced, complained, or opened.

[ 03 / 04 ]Why it holds up

A send path that can refuse unsafe work.

Transactional email is only reliable when acceptance, suppression, delivery, and retries are separate states you can inspect.

  • Stable idempotency keys stop a network retry becoming a duplicate message.
  • Suppression, domain, and address checks run before provider handoff.
  • A queued identifier links the request to its later delivery events.
Message trace
Transactional emails

Receipt accepted

Details

delivered

To[email protected]

From[email protected]

Templatewelcome

Sourceapi

ProviderSend & Retain

Delivery events

  1. RequestIdempotency key verified
  2. SafetySuppression cleared
  3. ProviderDelivery accepted
  4. WebhookDelivered
Queued is not delivered

Questions people ask us

Know whether every critical product email arrived.

Send one real message with an idempotency key, then follow its ID through to delivery.