Migrate · SendGrid
From SendGrid to Oveyon, by reading.
Paste the key. The import copies suppressions, domains and the event webhook over here; nothing changes at SendGrid. Then you point your application, domain by domain — and roll back if you want.
No card · Domain live in minutes · The free plan never expires
01 · Three steps
Get started in three steps.
Create a restricted key
At SendGrid, generate an API key with read-only access to suppressions, sender authentication and mail settings. The import needs nothing more: every call it makes is a GET.
Paste it in the panel and follow along
Under Sending → Migration, pick the provider and paste the key. The import reads page by page and shows, read by read, what was read, what came in and what was skipped, with the cause. Repeating duplicates nothing.
Point, domain by domain
Publish the DNS the panel generates, swap host and credential in your application and turn on the domain switch on the Migration screen: it arms the warmup ramp and records the date. Turning it off undoes our side; what came in stays.
02 · The credential
What the import asks for.
A SendGrid API key. We recommend creating it with restricted, read-only access — but the guarantee is on our side: the import only knows how to GET, from a catalog of reads frozen in code, and a write does not exist in it, not even by mistake.
03 · What we read there
Read by read, what becomes what.
| Read | What it becomes here | Access |
|---|---|---|
| Spam reports (spam_reports) | suppression with reason complaint — the one that can never be deleted | READ |
| Bounces | suppression with reason bounce | READ |
| Blocks | suppression with reason manual | READ |
| Invalid emails (invalid_emails) | suppression with reason manual | READ |
| Authenticated domains | a sending domain here, with its own DKIM key generated — waiting for your DNS | READ |
| Event webhook | an event endpoint here, with a new secret and HMAC-SHA256 signatures | READ |
Cap of 250,000 suppressions per import — the excess shows as skipped in the report, it does not vanish in silence. A reason with no equivalent comes in as manual, never as complaint.
04 · What we do not read
And what stays with you.
- Dynamic templates — recreate them with POST /v1/templates ({{variables}} and published versions).
- Marketing contacts and lists — we are not a campaign platform.
- Statistics and sending history — the record starts here, with the first send.
05 · On arrival
What is different here.
Your own DKIM per domain
Each domain is born with its own key, generated here, and the wizard checks the DNS live on every visit. SPF, DKIM, DMARC, MTA-STS, TLS-RPT and ARF out of the box.
A complaint can never be deleted
Not from the panel, not through the API, not by deleting the domain and re-adding it. Your list leaves here whole, whenever you want.
A ramp that counts days you sent
A new domain climbs in steps of effective days — not calendar days. Rolling back does not reset what you really built.
A record ready for audit
Who did it, when, what changed — including when the “who” was our support. A trail without purge, visible under Account → History.
Other sources
Coming from somewhere else?
Postmark · Mailgun · Amazon SES · Brevo · Any SMTP server · All sources