Webinar signup block
A designed registration card for one of your own live sessions — an image, a title, a date, a description, and a Register button, all pointing at that session's public /webinar/<liveSessionId> page. It's the studio-side counterpart to the "Copy registration link" button on a live session's detail page: instead of pasting that link into a plain Button block by hand, pick the session once and the block stays linked to it.
How it works
Picking a session from the inspector's Pick a live session panel snapshots that session's title and scheduled time into the block's own fields — a one-time fill, still fully editable afterward, the same convention the Product block's "Import from store" picker uses. Only sessions with Public registration access mode show up in the picker; a subscribers-only session has no public page for the button to link to.
The Register button's destination never needs a lookup at send time: it's built directly from the session's id as https://mailinapp.com/webinar/<liveSessionId>, a plain deterministic string, the same way the Product block's external-checkout link is built from externalUrl with no database round-trip. That also means the link keeps working even if the session's title or schedule changes after the email is sent — it always lands on that session's current registration page, not a snapshot of it.
The description and image fields are yours to fill in — a live session has no description or photo of its own to pull from, so this block leaves that content entirely up to you, the same way the Add to calendar and Venue blocks leave their own text fields free-typed.
Like Meeting link, Venue, and Add to calendar, this is link content rather than a response to record: mailed HTML always renders the Register link live (the static-at-send-time convention), and there's nothing to answer, so it never appears in the responses dashboard or CSV export. The click itself still counts in the project's click heatmap, through the same generic click-tracking slot every plain link-bearing block shares.
Configurable fields:
- Title and Starts at — snapshotted from the picked session, editable afterward.
- Description (optional) — free text; the session has none of its own.
- Image URL (optional) — a cover image; also free text.
- Button text — defaults to "Register now."
- Background color, padding, border and border radius on the card.
- Title color/size, and Register button color/background overrides.
If a block is added but no session has been picked yet, it renders a muted "Pick a live session in the block's inspector panel" line instead of a dead link.
Examples
Subject
You're invited: Scaling Your SaaS in 2026
A promotional campaign for a hosted webinar pairs this block with a Countdown further up the email, the same "countdown builds urgency, then a direct link takes over" pairing the Meeting link block uses for an externally-hosted call. Once the session itself has capacity or a waitlist, that's tracked on the session's own detail page under Live — not on this project's Responses dashboard, since registration is recorded by the public /webinar/<liveSessionId> page this block links to, not by the block itself.
The session's own /webinar/<liveSessionId> page can be more than a bare name/email form, too: attach one of your studio projects as its Landing page design from the session's detail page, and that project's own images, details and links render above the registration form — see Live sessions & webinars.
What the static fallback looks like
<div style="margin:12px 0;background-color:transparent">
<img src="https://example.com/webinar-cover.jpg" alt="Scaling Your SaaS in 2026"
style="width:100%;max-width:100%;border-radius:6px;display:block;margin-bottom:10px" />
<p style="margin:0 0 4px;font-weight:600;font-size:16px;color:#111827">Scaling Your SaaS in 2026</p>
<p style="margin:0 0 8px;font-size:13px;color:#6b7280">Mar 1, 2026, 5:00 PM</p>
<p style="margin:0 0 10px;font-size:14px;color:#4b5563">Live Q&A with our founders.</p>
<a href="https://mailinapp.com/webinar/sess_abc123"
style="display:inline-block;padding:10px 20px;background-color:#4f46e5;color:#ffffff;
border-radius:6px;text-decoration:none;font-size:14px;font-weight:600">
Save my seat
</a>
</div>
There's only one tier here — mail, the live view, and the studio canvas all render the same card, since nothing about it depends on the recipient or the current time the way Meeting link's countdown badge does.