Keep the developer workflow. Add the customer lifecycle.
Map Resend domains, sends, templates, webhooks, and delivery events into one system for transactional email, contacts, product events, and flows.
✓One stream first. Verify it, then move the rest.
Inventory before cutover
Inventory
Source material read
Rebuild
Created paused
Verify
Real inbox test
Switch
One trigger first
Destination flow
Paused until validation and explicit cutover
[ 01 / 03 ]What moves
Add lifecycle context without treating a provider swap as the goal.
Inventory the live sending contract
Record domains, API call sites, sender identities, templates, idempotency behavior, and webhook consumers.
Connect sends to customer state
Map recipients into contacts and link transactional or lifecycle messages to the product event that caused them.
Decide whether delivery must move
Keep Resend as a supported route where appropriate, or move a bounded stream after inbox and callback verification.
[ 02 / 03 ]Concept map
Separate the delivery provider from the lifecycle control plane.
Preserve the developer ergonomics you value while making contacts, triggers, exits, and message evidence explicit.
Delivery
Resend carries the message
Keep Resend as the provider if wanted
Lifecycle
Application-owned orchestration
Templates, contacts, and flows in one control plane
Evidence
Provider delivery events
Message trace linked to the flow run
[ 03 / 03 ]Related
What the move touches
Questions people ask us
Add the lifecycle layer before changing the carrier.
Map the current Resend path, connect customer state, and test one complete journey.