What problem does it solve? Sending transactional email directly from Convex functions risks rate-limit violations, duplicate sends on retries, and no visibility into delivery status. This Skill wires the official @convex-dev/resend component so emails are queued, batched, retried idempotently, and tracked via webhooks. ## Core Features & Use Cases - Queued, batched sending: Send emails with resend.sendEmail(ctx, payload) from mutations and actions while respecting Resend rate limits. - Webhook-driven delivery tracking: Mount a /resend-webhook endpoint in convex/http.ts to record delivered, bounced, and opened events. - Idempotent retries and cleanup: Prevent duplicate emails on retries and purge old finalized emails with a scheduled cleanup cron. - Use Case: A SaaS app needs welcome emails on signup. Register the component in convex.config.ts, call sendEmail from an internal action, and monitor delivery status with resend.status(ctx, emailId). ## Quick Start Set up the Convex Resend component to send a welcome email from an internal action and track its delivery via webhook.