# Migrate to Emailit

> Move from another email provider to Emailit without downtime. What to move, in which order, how to run both providers in parallel, and how to cut over.

This guide explains how to move your email sending from another provider to Emailit. It covers what to move, the order that avoids surprises, and how to switch traffic over without a gap in delivery. For step-by-step details for a specific provider, pick it from the list below.

  - [SendGrid](/docs/migrate/sendgrid/)
  - [Mailgun](/docs/migrate/mailgun/)
  - [Postmark](/docs/migrate/postmark/)
  - [Amazon SES](/docs/migrate/amazon-ses/)
  - [Resend](/docs/migrate/resend/)

## What to move

| What | Where it goes in Emailit | How |
| --- | --- | --- |
| Sending domains and DNS | **Email API → Domains** | Add each domain and publish the Emailit records next to your current ones. See [Add a domain](/docs/domains/add-a-domain/). |
| API keys and SMTP credentials | **Email API → API Keys** | Create one key per app and environment. The API key is also the SMTP password. See [API keys](/docs/developers/api-keys/). |
| Suppressions | **Email API → Suppressions** | Export bounces, complaints and unsubscribes, then **Import** a CSV of `email,type,reason`. See [Manage suppressions](/docs/suppressions/manage/). |
| Templates | **Email Marketing → Templates** | Import HTML, a ZIP with images, or create them with the API. Convert variables to [Temple](/docs/templates/temple/). |
| Webhooks | **Email API → Webhooks** | Create endpoints, map event names, and update signature verification. See [Set up webhooks](/docs/webhooks/set-up/). |
| Contacts and lists | **Email Marketing → Contacts** and **Audiences** | Import CSV or Excel files, or use the [Contacts API](/docs/api-reference/contacts/create/). See [Import and export contacts](/docs/contacts/import-export/). |
| Inbound processing | Your domain's inbound subdomain | Point an MX record at Emailit and subscribe to `email.received`. See [Inbound](/docs/inbound/). |

## Recommended order

1. **Create a workspace and add your domains.** Emailit's DNS records use their own names (`emailit._domainkey`, `emailit.<domain>`, and optionally `go` and `inbound`), so they sit next to your current provider's records without replacing them. You don't need to change your root SPF record or your DMARC record.

2. **Request production access early.** New workspaces are in sandbox mode and can only send to workspace members. Once a domain is verified, an Admin requests access in **Workspace → Settings → Requests**. Mention your current provider and volume. See [Production access](/docs/workspaces/production-access/).

3. **Import your suppressions before the first real send.** This keeps you from emailing addresses that bounced, complained or unsubscribed with your old provider. Import them with the type `recipient`, which blocks all sending to an address.

4. **Recreate templates and webhooks.** Templates and webhook handlers need small code changes, so do them while the old provider still carries your traffic.

5. **Create API keys and update your app.** Change the API calls or SMTP settings behind a configuration switch, so you can move traffic back if you need to.

6. **Size your limits.** New workspaces can send 2 emails per second and 5,000 emails per day. If your volume is higher, request an increase from the **Sending Limits** card on the dashboard home page before you cut over. See [Limits](/docs/limits/).

7. **Run both providers in parallel**, then cut over. See below.

## Run both providers in parallel

Both providers can send for the same domain at the same time, because each signs mail with its own DKIM selector and uses its own return path. Move traffic gradually:

- **Start with one message type,** such as password resets or receipts, or a small share of all traffic.
- **Watch the results** in **Email API → Emails** and on the **Sending health** score, and compare bounce rates and inbox placement with your old provider.
- **Increase the share over days, not hours.** Mailbox providers trust a sudden jump in volume from new IP addresses less than a steady ramp. See [Warm-up](/docs/deliverability/warm-up/).
- **Keep suppressions in sync.** During the overlap, add addresses that bounce or unsubscribe on either side to both lists.

## Cut over

When all traffic goes through Emailit and delivery looks healthy:

- [ ] Switch the remaining apps, cron jobs and third-party tools to Emailit's API or SMTP settings.
- [ ] Keep the old provider's account and webhooks active for a few days to catch late bounces and complaints on mail it already sent, and import those into Emailit.
- [ ] Export any remaining suppressions from the old provider one last time.
- [ ] Remove the old provider's DNS records, including its entry in your root SPF record if it had one. Keep your DMARC record.
- [ ] Revoke the old provider's API keys and SMTP credentials.
- [ ] Work through the [go-live checklist](/docs/get-started/go-live/).

## Get help with your migration

If you'd rather not do this alone, Emailit's [Priority migration](/docs/programs/priority-migration/) service moves your domains, DNS, templates, suppressions, contacts and webhooks with you, usually within one business day. A named engineer works with you by email and on Discord, your production access review is prioritized, and your limits are sized to your real volume. Request it on the [migration page](/migrate/).

## Related

- [How Emailit works](/docs/get-started/how-emailit-works/)
- [Choose between the API and SMTP](/docs/get-started/api-or-smtp/)
- [Templates import and export](/docs/templates/import-export/)

---
Source: https://emailit.com/docs/migrate/
