Goal: inbound mail arriving as structured POSTs at your endpoint.
Step 1. Point the receiving domain's MX records at mx.sendgrid.net. Mail for the domain now flows to SendGrid.
Step 2. In Settings > Inbound Parse, add the hostname and the exact HTTPS URL that receives the parsed POSTs. No redirects in front of it.
Step 3. Build the receiver: parse the raw MIME payload, return 2xx immediately, and hand the message to a queue for real processing. Slow handlers cause retries and duplicates.
Step 4. Handle the failure modes: 5xx responses are retried, so make processing idempotent; messages undeliverable after three days are dropped, so monitor for gaps.
Step 5. Test with real messages including attachments and odd encodings before pointing production MX at it.
Verify: test messages arrive within seconds, retries from a forced 5xx do not double-process, and attachments parse. Pitfall: MX changes propagate slowly; keep the old receiver live during the cutover.