Webhooks
A few moving parts are involved here. The points below cover each of them, so you can see the full scope before deciding where to start.
- Verify the provider signature before parsing business events.
- Reject stale or duplicated event IDs or process them idempotently.
- Return a fast acknowledgement and move slow work to a function or queue.
- Log a correlation ID without logging secrets or full personal payloads.
Transactional email
Use a verified From domain, a clear Reply-To and branded templates. Monitor accepted, delivered, bounced and suppressed states. Keep the database submission even if notification delivery needs a retry.
Domain and SSL steps
Here is the process broken into clear steps. Take them one at a time and check each off before moving on.
- Add the domain in the hosting or app settings.
- Create the exact DNS records provided by the platform.
- Wait for DNS propagation and verify the final host.
- Open both HTTP and HTTPS versions and confirm the preferred redirect.
- Test OAuth, webhooks, sitemap and canonical URLs on the final origin.
DNS record checklist
This comes down to a handful of concrete details. Work through the list below and flag the ones you have not covered yet.
- SPF record includes the sending provider and no conflicting duplicate SPF lines.
- DKIM records match exactly what the email provider issued.
- DMARC policy is set, even a monitoring-only policy, rather than left absent.
- A record or CNAME for the app domain points at the correct hosting target.
- Old records from a previous provider are removed, not just left alongside new ones.
Signs an integration is misconfigured
Use the list below as a working checklist. Each item is something you can verify or action directly on your own site.
- Emails land in spam despite showing as delivered by the provider.
- A webhook handler processes the same event more than once, creating duplicate records.
- The domain works over HTTP but shows a certificate warning over HTTPS.
- OAuth callbacks fail only on the custom domain, not on the preview URL.