From SendGrid
Field mapping, webhook equivalents, and a migration checklist for moving off SendGrid.
The short version
Change the base URL, swap the API key, and rename three fields. Most SendGrid integrations migrate in under an hour.
Field mapping
| SendGrid | OutSend |
|---|---|
personalizations[].to[].email | to |
from.email | from |
subject | subject |
content[].value (text/html) | html |
content[].value (text/plain) | text |
reply_to.email | replyTo |
send_at (unix) | scheduled_at (ISO 8601) |
X-Message-Id | id in the response |
OutSend takes a flat JSON body rather than SendGrid’s personalizations array. If you were
using personalizations for per-recipient substitution, that becomes one request per
recipient, or a campaign with a segment.
Event mapping
| SendGrid event | OutSend |
|---|---|
delivered | email.delivered |
bounce / blocked | email.bounced |
deferred | delivery_delay (dashboard + event log) |
open | email.opened |
click | email.clicked |
spamreport | email.complained |
unsubscribe / group_unsubscribe | email.unsubscribed |
SendGrid posts events in batched arrays. OutSend posts one event per request, signed with
an X-OutSend-Signature HMAC — see Webhooks.
Checklist
- Verify your domain in OutSend and publish DKIM, SPF, and DMARC. Merge SPF into your existing record rather than adding a second one.
- Export your suppression list from SendGrid and import it before you send anything. This is the step people skip and regret.
- Move a low-volume, non-critical stream first. Watch the event log for a day.
- Point your webhook consumer at the new payload shape.
- Cut over the rest, then leave your SendGrid account open for a week so you can compare.
What is different
SendGrid pools sending reputation across customers on shared IPs. OutSend isolates it per domain and per workspace, which means your early sending history is genuinely yours — and also that you are building it from scratch rather than inheriting a pool’s. For high volume, consider a warm-up campaign rather than switching everything at once.