yala
← help

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.

next upretargeting pixelsmeta, google ads, tiktok, twitter, +18 more. workspace-level config, consent-banner-aware.