## Ship a broadcast campaign through the API

1. Build or pick the segment first. The broadcast sends to `segment_id`, so confirm the segment membership count in the dashboard before you reference it; a stale segment id sends to the wrong list.
2. Create the broadcast with send left false so it stays a draft. Include `{{{RESEND_UNSUBSCRIBE_URL}}}` in the HTML and a `{{{contact.first_name|there}}}` style fallback so missing fields render cleanly. Docs: https://resend.com/docs/dashboard/broadcasts/send-broadcast-with-api
3. Review the draft in the dashboard: open it, send a preview to yourself, and check the unsubscribe link renders. Fix typos now, not after send.
4. If the campaign is time-sensitive, create it with send set true and `scheduled_at` set to a natural time string like `in 1 hour`. Drafts can also be sent later by id with the broadcasts send endpoint, which accepts its own scheduled_at.
5. Note that broadcasts built in the dashboard editor cannot be sent through the API send endpoint; API sends only work on API-created broadcasts. Pick one authoring path and stay on it.
6. After sending, check the broadcast recipients and clicked-links endpoints to confirm delivery started and links are tracking. If a broadcast was scheduled by mistake, cancel it through the cancel endpoint before it fires.
7. Do a post-send check: opens, clicks, and complaints in the dashboard. A complaint spike means the segment or content needs work before the next send.