release-day email.
fans capture their email on a pre-save flow or a bio block. on release day (or whenever you want), you ship them a single broadcast. no marketing automation, no funnels — one well-written email is plenty.
how email capture works.
fans get an email-capture form in three places:
- pre-save flow — alongside the pre-save button on a pre-release landing, a small “also email me when it drops” checkbox (default on). spotify hands us the fan’s email back; we store it in email_subscribers. one click, two rails. see pre-save for the technical detail.
- landing-page section — every release / pre- release / podcast / playlist / ticket link has an email-capture toggle in the look tab. flip it on to render a subscribe section under the buttons. headline / subhead / cta / thanks message all customizable per link.
- bio block — “email capture” block type on a bio page. drag-reorder with the rest. consent- banner-aware.
every captured row stores: email, optional first name, consent IP + user-agent + timestamp, and a one-click unsubscribe token. unsubscribed = soft-deleted; the row stays so we don’t send them again.
scheduling a broadcast.
on any release-family link (release / pre-release / podcast / playlist / ticket), the share tab has a broadcast scheduler. fields:
- send at — UTC datetime. usually release day + a few hours so fans see the email after they’ve had breakfast.
- subject line — what fans see in their inbox. plain text.
- body (markdown) — what fans read. supports headings, bold, links, images. yala renders to clean HTML + plain-text on send.
click schedule. the broadcast is queued. the worker polls status='pending' AND send_at <= now() every minute and fires when the time comes.
personalization.
we keep this minimal on purpose. the body supports two tokens:
- {{first_name}} — the fan’s first name if we have it, otherwise just “hi”.
- {{link}} — the short URL of the link this broadcast is attached to. renders as a real <a> in HTML.
anything more (segmenting by territory, by purchase history, etc.) is what real CRMs are for. yala is for the email itself.
cancel + resend.
before send time, you can cancel a queued broadcast — it’ll just not fire. after send, you can resend to a new captured-since-last-send subset (yala dedupes against the previous send).
opens + clicks.
every send tracks delivered count, open count (via a 1×1 tracking pixel), click count (via wrapped link), and unsubscribe count. live in insights.