Why Migrate to Inbound?
Two-Way Email
Not just sending - receive emails and trigger webhooks in your app
Email Threading
Automatic conversation tracking with full thread support
MCP Integration
Connect AI assistants directly to your email infrastructure
Better Auth Plugin
Built-in authentication email support with React templates
Migration Steps
Get Your Inbound API Key
Sign up at inbound.new and generate an API key from your dashboard.
Dashboard
Get your API key
Update API Calls
Update your email sending calls (minimal changes required):Before (Resend):After (Inbound):
Verify Domain DNS
Add your domain to Inbound and update DNS records:You’ll need to update your DNS records from Resend’s to Inbound’s. Both use similar SPF, DKIM, and DMARC records.
API Compatibility Comparison
Sending Emails
Inbound’s API is intentionally designed to be compatible with Resend for easy migration.
| Feature | Resend | Inbound | Notes |
|---|---|---|---|
| Basic send | ✅ | ✅ | Identical API |
| HTML content | ✅ | ✅ | Identical API |
| Plain text | ✅ | ✅ | Identical API |
| Multiple recipients | ✅ | ✅ | Identical API |
| CC/BCC | ✅ | ✅ | Identical API |
| Attachments | ✅ | ✅ | Identical API |
| Custom headers | ✅ | ✅ | Identical API |
| Tags | ✅ | ✅ | Identical API |
| Scheduled emails | ✅ | ✅ | Identical API |
| React Email | ✅ | ✅ | Same react prop |
Code Examples: Side by Side
Feature Parity
Features Available in Both
Transactional Emails
Send one-off emails with full HTML/text support
Attachments
Support for file attachments with base64 or URL
React Email
Use React components as email templates
Email Scheduling
Schedule emails for future delivery
Custom Headers
Add custom SMTP headers
Tags & Metadata
Tag emails for analytics and filtering
Domain Verification
SPF, DKIM, DMARC support
Webhooks
Delivery and bounce notifications
Inbound-Only Features
These features are unique to Inbound:Receive Emails
Create email addresses that trigger webhooks when messages arrive
Email Threading
Automatic conversation tracking with thread IDs
Reply to Emails
Use
inbound.reply() to respond to received emailsEmail Forwarding
Forward incoming emails to other addresses
MCP Server
Connect AI assistants to your email infrastructure
Better Auth Plugin
Built-in authentication emails with templates
Email Parsing
Automatic HTML/text extraction and attachment handling
Subdomains
Automatic subdomain support for verified root domains
DNS Record Migration
When migrating, you’ll need to update your DNS records from Resend to Inbound.Record Types
Both platforms use similar DNS records:| Record Type | Purpose | Migration |
|---|---|---|
| SPF (TXT) | Sender authorization | Replace Resend’s SPF with Inbound’s |
| DKIM (TXT) | Email signing | Add new DKIM keys from Inbound |
| DMARC (TXT) | Email policy | Update if specific to Resend |
| MX (for receiving) | Incoming email | Inbound only (new feature) |
Example DNS Update
Remove Old Resend Records
Remove these from your DNS:
resend._domainkey.example.com(DKIM)- SPF record containing
include:resend.io
Code Changes Needed
Import Statements
Client Initialization
Sending Emails
Environment Variables
Response Format
The response format is slightly different:Field Name Differences
Inbound uses snake_case for API fields to match OpenAPI standards, but the SDK accepts both formats for compatibility.
| Resend (camelCase) | Inbound API (snake_case) | SDK Support |
|---|---|---|
replyTo | reply_to | Both accepted |
scheduledAt | scheduled_at | Both accepted |
contentType | content_type | Both accepted |
Testing Your Migration
Use this checklist to verify your migration:Send a basic email
Send a basic email
Send with attachments
Send with attachments
Send with React Email
Send with React Email
Verify domain
Verify domain
Common Migration Issues
Domain not verified
Domain not verified
Problem: Emails fail with “domain not verified” error.Solution:
- Check DNS records are properly set
- Wait 24-48 hours for DNS propagation
- Use
inbound.domains.retrieve(id)to check status
Rate limits
Rate limits
Problem: Getting rate limit errors.Solution:
- Check your plan limits in the dashboard
- Implement exponential backoff
- Upgrade your plan if needed
Attachment issues
Attachment issues
Problem: Attachments not working.Solution:
- Ensure content is base64 encoded
- Check file size limits (10MB per attachment)
- Verify
content_typeis specified
API key errors
API key errors
Problem: Authentication failing.Solution:
- Verify API key is correct
- Check environment variable name changed from
RESEND_API_KEYtoINBOUND_API_KEY - Regenerate API key if needed
Migration Checklist
Use this checklist to ensure a smooth migration:- Sign up for Inbound account
- Generate API key
- Install
inboundemailpackage - Update import statements
- Update client initialization
- Update environment variables
- Add domains to Inbound
- Update DNS records
- Verify domains
- Test basic email sending
- Test with attachments
- Test React Email templates
- Update error handling
- Test in staging environment
- Monitor first production emails
- Remove Resend package
- Clean up old DNS records
Gradual Migration Strategy
For large applications, consider a gradual migration:- Test Inbound with a percentage of traffic
- Roll back quickly if issues arise
- Compare delivery metrics side-by-side
Beyond Migration: New Capabilities
Once migrated, explore Inbound’s unique features:Receive Emails
Reply to Emails
Email Threads
MCP Integration
Getting Help
If you run into issues during migration:Documentation
Read the full API reference
Discord Community
Join our Discord for support
GitHub Issues
Report bugs or request features
Email Support
Contact our support team
Next Steps
After completing your migration:Webhooks Guide
Learn about webhook payloads and security
Better Auth Plugin
Add authentication emails
MCP Integration
Connect AI assistants to your emails
Best Practices
Email deliverability tips