Skip to content

Embed

The registration form

One element, on a site with the tag installed.

Paste this where the form should appear:

<sw-webinar-form data-webinar-id="ID"
data-button-text="Save my seat"
style="--sw-webinar-form-button-background: #ff5438"></sw-webinar-form>

The id identifies the webinar; the dashboard hands you the snippet with it in place. The element is drawn by the site tag, so the tag has to be installed on the page (Settings → Site tag) — without it, nothing appears. The page the form is on has to be on a domain your organization allowed (Settings → Site tag → Allowed Domains) — the id alone opens nothing. Nor does anything appear while your organization is not served — suspended, locked, or with no plan: the API answers the form, the A/B test and the site tag’s page view 403 ORGANIZATION_UNAVAILABLE.

An A/B test goes in the webinar’s place, with data-ab-test-id="ID" instead of data-webinar-id: the form is drawn as the webinar the test deals the visitor’s browser, which keeps that webinar for every form and player of the test it meets. The test’s page in the dashboard hands you this snippet too. Both attributes written, the webinar’s stands. While the test is unpublished nothing is drawn: the API answers 410 AB_TEST_UNPUBLISHED.

Which fields are on, which are required and the webinar’s schedule come from the dashboard, and changes there show on your page without touching the snippet. Everything else is written on the element — the snippet the dashboard hands you carries what you set in the webinar — and you can change any of it by hand. When you edit the webinar’s form, copy the snippet again.

What the form shows of the schedule depends on the webinar, always in the visitor’s own time zone, their device’s:

  • On a launch, nothing: a registration is in all of its sessions, so the form shows no date and asks for none. It goes on taking registrations past the last date, until they are closed.
  • On an evergreen, the next times of its schedule, for the visitor to pick one. With nothing left to offer, the form says no session is available. Set in the dashboard to use each registration’s time zone, the schedule’s hours are read in the visitor’s own zone: a time at 15:00 is at 15:00 wherever they are. That is the webinar’s setting, not the snippet’s: a snippet that still carries data-use-webinar-registration-timezone (or data-use-attendee-timezone) still draws, and the attribute is ignored.

An evergreen does not accept registrations for a time more than 90 days ahead, so its form offers only times within them. A time further off is not shown until it comes within 90 days, and a form left open brings it in as it does.

Once the webinar’s registrations are closed, from the dashboard or by the date set for them, a line saying so stands in the form’s place: the API answers 410 WEBINAR_FORM_CLOSED. So does a launch with nothing left to be in, every date canceled or past with no session.

Attribute What it does
data-schedule-limit How many times an evergreen’s form offers at most. Absent, 3. A launch’s form shows none.
data-hide-required-mark Required fields do not show the *.
data-<field>-label, data-<field>-placeholder A field’s words, for name, email, phone, schedule, timezone. Empty, none.
data-button-text The button’s words.
data-fields-order email,name: these first, in this order, the rest after.

The look is the --sw-webinar-form-* custom properties, set on the element or on anything around it: the font family and text colour, the labels’ colour, weight, size, case and spacing, the fields’ background, text and border colours, weight, size, corners and shadow, the button’s colour, text colour, hover colour, weight, size, case, spacing, corners and shadow, and the form’s own background and corners.

A person who sends the form again with all of it the same on the same webinar, the name, the email, the phone, the time zone and the UTM tags, and on an evergreen the same time, adds nothing: no new registration, no webinarRegistration.created webhook, no automation and no sw_form_submission on the page. The form answers as usual and takes them to the link they already have. Any part different is another registration. A sending that could not register, such as a time no longer on offer, is refused the same way the first time. A webinar that charges for entry opens a new order each time.

© 2026 Sparkwebinar. All rights reserved.