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

Migrate from Postmark to Send & Retain

Move your transactional emails one at a time, with Postmark running until each one works. Then add automations on the same API.

Start for free

✓Free to start. Unlimited contacts on every tier.

Migration control
Postmark

Inventory before cutover

01

Inventory

Source material read

02

Rebuild

Created paused

03

Verify

Real inbox test

04

Switch

One trigger first

Destination automation

Paused until validation and explicit cutover

paused
The source stays available

[ 01 / 05 ]Step by step

How do I migrate from Postmark?

There's no Postmark connector. Your agent works from your code and your templates, one email type at a time.

  1. Set up your domain

    Your agent creates your sending domain and hands you the DNS records to add, then verifies them and sets up a sender.

  2. Import suppressions first

    Export each message stream's suppressions from its Suppressions tab and import them as your block list.

  3. Rebuild templates

    Your agent rewrites your Postmark templates in React Email, keeps their variables, and sends you a test of each.

  4. Swap one call site

    Start with a low-risk email, not password resets. Retry with the same Idempotency-Key and it never sends twice.

    send-welcome.mjs
    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": `welcome-${user.id}` },
      body: JSON.stringify({ to: user.email, template: "welcome" }),
    });
  5. Move the critical emails last

    Once the first email has delivered cleanly, move receipts and resets. Keep Postmark connected until they work.

  6. Add automations

    Send product events and your agent builds welcome and trial automations on top, paused until you turn them on.

[ 02 / 05 ]Example prompts

What can I ask my agent to do?

Paste these into Claude Code, Cursor, or Codex inside your repo.

  • Inventory

    “Find every Postmark call in this repo and list each email type, its template, and its stream.”

  • Templates

    “Rewrite our Postmark welcome template in React Email, render it, and send me a test.”

  • Swap

    “Move the welcome email to the Send & Retain API with an idempotency key. Leave resets on Postmark.”

  • Automations

    “Send a trial started event from our billing code and build a paused trial automation for it.”

[ 03 / 05 ]Postmark vs Send & Retain

What changes when I move from Postmark?

Focus

Postmark

Transactional email, with a separate broadcast stream

Send & Retain

Transactional and marketing email in one system

Marketing automations

Postmark

Not built for email automation

Send & Retain

Automations triggered by product events, always created paused

Contacts

Postmark

No contact records

Send & Retain

One record per person, with attributes, events, and history

Templates

Postmark

Postmark templates

Send & Retain

React Email (TSX), versioned. Edits create drafts

Pricing

Postmark

Priced on email volume

Send & Retain

Priced on sends. Unlimited contacts on every tier

Who does the work

Postmark

Developers, in code, plus an official MCP server

Send & Retain

Your app over the API, your AI agent over MCP

[ 04 / 05 ]Do you need to move?

Should I leave Postmark?

Only if you want more than transactional email. Postmark is a strong choice for receipts and resets alone.

  • Sending only transactional email and happy with it? Stay on Postmark.
  • Want welcome, trial, and win-back emails without building them in your own code? Send & Retain does both.
  • Moving? Go one email type at a time, critical emails last.

Questions people ask us

Move one transactional email first.

Rebuild one template, swap one call site, and keep Postmark until it works.