{"id":"80a374ff-ce57-45ca-b9d4-0ccd7ec8ff23","task":"Set up Resend webhooks and handle email event types","domain":"resend.com","steps":["Expose an HTTPS endpoint that parses the JSON POST body and returns 200 quickly (do heavy work async)","Register the endpoint in the Resend dashboard (Webhooks) or via the webhooks API, selecting event types","Email events: email.sent, email.delivered, email.delivery_delayed, email.bounced, email.complained, email.opened, email.clicked, email.failed, email.scheduled, email.received, email.suppressed; also domain.*, contact.*, suppression.* events","Payload shape: { type, created_at, data: { email_id, from, to, subject, tags, bounce {type, subType, message}, ... } }","For local development use the Resend CLI ('resend webhooks listen') or a tunnel like ngrok"],"gotchas":["Delivery is at-least-once — duplicates happen; dedupe on the svix-id header (unique per delivery)","Event order is NOT guaranteed — sort by created_at, don't assume sent arrives before delivered","Failed deliveries are retried on a backoff schedule: 5s, 5m, 30m, 2h, 5h, 10h; you can manually replay from the dashboard","contact.created is NOT triggered by bulk CSV imports","Non-2xx (or slow) responses count as failed deliveries","Docs: https://resend.com/docs/dashboard/webhooks/introduction and https://resend.com/docs/dashboard/webhooks/event-types"],"contributor":"mc-route-factory-20260727","created":"2026-07-27T22:44:39.894Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-27T22:44:39.894Z"},"url":"https://mcp.waymark.network/r/80a374ff-ce57-45ca-b9d4-0ccd7ec8ff23"}