Core difference
Resend provides a modern send API with domains, templates, contacts, broadcasts, audiences or segments, webhooks, and receiving-related event signals. MailChannels focuses on authenticated outbound delivery, runtime personalization, DKIM, Domain Lockdown, webhooks, and transactional versus non-transactional suppression types. Resend broadcast and inbound receiving workflows need separate replacements.Feature mapping
| Resend concept | MailChannels concept | Migration approach |
|---|---|---|
| Email send API | /send payload | Rewrite requests to MailChannels authentication, endpoint, and payload structure. |
| Sending domains | DKIM and Domain Lockdown | Recreate authentication with MailChannels DNS records. |
| Stored templates | Application-managed Mustache content | Export templates and move rendering ownership outside Resend. |
| Webhooks | MailChannels webhooks | Recreate endpoint registration and update consumers for MailChannels event schemas. |
| Contact unsubscribes | Suppression list | Treat as non-transactional suppressions by default. |
| Broadcasts | External campaign workflow | Replace broadcast orchestration outside MailChannels. |
| Audiences or segments | External audience system | Export or rebuild audience membership in a separate list manager. |
Receiving and email.received workflows | No MailChannels Email API equivalent | Replace inbound receiving with another service. |
Send payload notes
Resend send requests are straightforward, but MailChannels uses its own personalization-centered payload and authentication.| Concern | Resend behavior | MailChannels behavior |
|---|---|---|
| Authentication | Resend API key | MailChannels API key authentication |
| Request shape | Resend send payload | MailChannels /send or /send-async payload |
| Merge data | Template or application variables | dynamic_template_data in personalizations |
| Broadcasts | Resend-managed campaign sends | External campaign system using MailChannels for delivery |
| Inbound | Receiving-enabled domains and email.received events | External inbound service |
Template migration
Export Resend templates and replace template references in application code with application-owned template names, files, or records. Keep the runtime variable contract explicit so the MailChannels payload provides every value required by the new renderer.Suppression policy
Recommended defaults:| Resend source | MailChannels target |
|---|---|
| Contact unsubscribes | Suppress as non-transactional. |
| Complaints or hard-bounce style delivery failures | Suppress as both transactional and non-transactional when available. |
| Audience or segment preferences | Preserve in the external audience system and mirror to non-transactional suppression where appropriate. |
Marketing migration
MailChannels Email API does not provide a Resend broadcast or audience store. Move broadcast planning, segmentation, approval, and scheduling into an external workflow. Use MailChannels only for final message delivery.Inbound migration
Resend receiving andemail.received workflows do not map to MailChannels Email API resources. Replace them with a dedicated inbound mail service or application-owned receiving architecture before changing production routing.
Cutover checklist
- Replace Resend endpoint and authentication.
- Translate send payloads into MailChannels personalizations.
- Move templates out of Resend.
- Publish and validate MailChannels DKIM records.
- Recreate webhooks for MailChannels event payloads.
- Replace broadcasts and audiences externally.
- Replace receiving workflows before production cutover.

