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

Migrate from Resend to Send & Retain

Keep sending through your Resend key if you like. Add contacts, automations triggered by product events, and an agent that runs them.

Start for free

✓Free to start. Unlimited contacts on every tier.

Migration control
Resend

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 Resend?

There's no connector for Resend. Your agent reads your code and templates, and rebuilds any Resend automations from what you describe.

  1. Choose how you send

    Paste your Resend API key on your sending settings page to keep sending through Resend, or use our platform sending with nothing to configure.

  2. Import contacts and unsubscribes

    Export your contacts from Resend as a CSV. Import it as your block list first, which picks up the unsubscribed column, then import it again as contacts.

  3. Port your templates

    Templates here are React Email (TSX) too, so your agent ports yours rather than starting over, then sends you a test of each.

  4. Swap one call site

    Move one email type to the Send & Retain API. 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. Add automations on top

    Send product events like signup or trial started, and your agent builds the welcome and trial automations, 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 Resend call in this repo and list each email type and the template it uses.”

  • Templates

    “Port our React Email templates to Send & Retain, render each one, and send me a test.”

  • Swap

    “Move the password reset email to the Send & Retain API with an idempotency key. Leave everything else on Resend for now.”

  • Automations

    “Send a signup event when we create a user, and build a paused welcome automation for it.”

[ 03 / 05 ]Resend vs Send & Retain

What changes when I move from Resend?

Sending

Resend

Resend's own infrastructure

Send & Retain

Our platform, or your own Resend or SendGrid key, with failover

Templates

Resend

React Email in code, or dashboard templates in a visual editor

Send & Retain

React Email (TSX), versioned. Edits create drafts

Marketing email

Resend

Broadcasts to segments, and automations triggered by events

Send & Retain

Automations triggered by what each user does. No broadcasts

Pricing

Resend

Plans by email volume, and by contacts for marketing

Send & Retain

Priced on sends. Unlimited contacts on every tier

Agent access

Resend

Remote MCP server with browser sign-in, or an API key

Send & Retain

Remote MCP server with browser sign-in. Automations stay paused until you approve

[ 04 / 05 ]Do you need to move?

Should I stop using Resend?

Not necessarily. Many teams keep Resend as the sender and use Send & Retain for everything around it.

  • Happy sending only receipts and resets? Resend may be all you need.
  • Want your agent to build and run those automations, paused until you approve, with unlimited contacts? Add Send & Retain.
  • Keep your Resend key connected, and switch to our platform sending later if you want to.

Questions people ask us

Keep Resend. Add the automations.

Connect your Resend key, port one template, and build your first automation paused.