Presales

Run a presale in the Sway web app: collect registrations on a public link, then email each registrant a unique code that unlocks a hidden ticket.

A presale is a two-part campaign. First, fans register on a public page that carries nothing but the teaser you wrote. Later, you email each of them a unique single-use code, and that code is the only thing that reveals a ticket type the public page never shows.

The screen's own subtitle says it in one line: Let fans pre-register, then send them unique presale links.

Everything here hangs on one rule. A presale sells a Hidden/Private ticket type. No hidden type, no presale.


Before you start

Three things have to be true, and each one fails visibly.

RequirementWhat you see when it is missing
Sway Tickets on for the eventThe page is replaced by Sway Tickets is not enabled, with Open event settings
At least one Hidden/Private ticket typeThe empty state No hidden ticket yet, and New presale is greyed out
A promoter on the event with email set upThe warning No promoter on this event has email marketing set up yet under the promoter field

Your role also has to allow managing ticketing. Without it, every button on the screen is disabled, and the server refuses the same actions independently. See Permissions.

Turn Sway Tickets on in Settings → Main, and create the hidden ticket type on the Tickets screen, choosing Hidden/Private under Visibility. The field's own hint states the consequence: hidden types are not shown publicly and unlock only through an access code or presale link.


Create a presale

  1. Open the event, then click Presales in the left sidebar.
  2. Click New presale. A panel slides in from the right, titled New presale registration.
  3. Under Ticket & promoter, pick the Hidden ticket you are preselling and the Promoter (email sender). Only promoters with email set up are listed.
  4. Under Public registration page, write the Teaser title. It is required, and it is prefilled with the event name. Teaser subtitle, Teaser image URL and Teaser description are optional.
  5. Under Registration window, set Opens at and Closes at if you want the page to open and close on its own. Both are optional.
  6. Set the four toggles under Options, covered in the next section.
  7. Click Create presale.

The panel closes on Cancel, on the ✕, on Escape, and on a click outside it. Nothing is saved until you press the button.

The presale is created Open, so its public page starts working immediately, subject to the window you set.

Opens at and Closes at are read in your browser's clock, not the event's. The two fields behave like any other date picker on your computer: what you type is what your own timezone says. If you are organising an event abroad, work out the local time you want and enter its equivalent where you are sitting. The same value is shown back to you the same way, so a presale you never edit stays consistent. The event's own start and end times are the ones that follow the event timezone, in Settings → Dates.

The four options

OptionDefaultWhat it does
Only show the presale ticket on code linksOnA visitor opening a unique code link sees this presale's ticket type and nothing else. Your public tickets stay on sale on the normal event page
Send code links to the tickets pageOffCode links open the event's tickets page directly instead of the main event page. The panel shows a live example of the link
Feature on the public event pageOffAdds a registration call to action on the public event and tickets pages
Require email confirmation (double opt-in)OffRegistrants have to click a link in a confirmation email before they count

Feature on the public event page has a second field, Display, offering Instead of the tickets and Above the tickets. Only one presale per event can be featured. If another one already is, the toggle is locked and the message underneath names it, so you know which presale to go and switch off first.

Double opt-in is off because it costs you registrants. Leave it off for a warm audience, and turn it on when you are buying traffic and expect junk addresses. Either way the panel restates the rule at the bottom: registrants are signed up on submit unless double opt-in is on.


The public registration page

Every presale gets its own address, of the form https://www.sway.events/presale/ followed by a long random token. The card shows it under Link, with a copy button and an open button beside it.

The page is deliberately reachable before the event is published. That is the point of a pre-publication funnel, and the token is the only way in. It is also excluded from search engines.

What a visitor gets, in order: your teaser image, the eyebrow Presale access, your teaser title, subtitle and description, then a short form. First name and last name are optional, the email is not, and a consent checkbox names the promoter who will be emailing them. A security check sits above the button.

After they submit:

  • Without double opt-in, they land on You're registered! and they are counted straight away.
  • With double opt-in, they land on Check your inbox and they are counted only once they click the link in the confirmation email.

Outside the registration window the form is replaced by a short message: Registration opens soon before it opens, and a closed notice once you have closed it or sent the codes. When the event is published, that closed page offers a link to the event and counts down before taking them there, with a way to stay put.

While the event is unpublished, the screen shows a banner headed This event is not published yet. Registration works, but the code links you are about to mail point at the event page, and nobody can buy on an unpublished event. Publish before you send codes: see Publish an Event.


Run the campaign

The two buttons on the right of each card are numbered 1 and 2, and that is the whole flow. Both are disabled while a presale is a draft.

1. Fill the list.

  1. Click Announce (invite to register).
  2. You land in the promoter's email screen with a draft already written around the public registration link, addressed to that promoter's subscribers.
  3. Edit it and send it.

2. Send the codes.

  1. When you have enough registrations, click Close registration. This is optional, but it stops new sign-ups arriving after the codes have gone out.
  2. Click Send codes to registrants.
  3. Sway mints one single-use code per registrant, the status flips to Codes sent, and you land in the email screen again, this time with a draft addressed to the presale list. A message confirms how many recipients will get a unique single-use link.
  4. Edit the draft and send it.

Each recipient's link is personal: the same event link with their own code attached. The email is assembled per person at send time.

Clicking Resend codes later runs the whole thing again and mints a fresh batch, which is normal. Everyone then holds more than one code, and all of them still work.

Two things decide who is actually on that list. Only registrants who are confirmed and still subscribed are included, so a double opt-in campaign where nobody clicked the confirmation email sends nothing, and you get the message No campaign created instead. And anyone who has unsubscribed from that promoter is dropped from the mailing, though their code is still minted.

If the promoter has no email set up, or you are not an admin of that promoter, you arrive on the email screen with no draft waiting. Fix the promoter's email first and come back.

One detail to catch before sending: the prefilled subject line is written in English, whatever language the admin is set to. It is a starting point, not a finished email. Rewrite it in your audience's language.


Read a presale card

ElementWhat it tells you
Status pillDraft, Open, Closed or Codes sent
Ticket chipWhich hidden ticket type this presale sells
Promoter chipWhich promoter sends the emails
Date chipThe registration window, when you set one
FeaturedThis presale is on the public event page
Presale ticket onlyCode links show this ticket type alone
Links to tickets pageCode links open the tickets page, not the event page
The large numberRegistrants, labelled registered

The big number counts confirmed registrants on this event, and it is the same number on every card. It is an event total, not a per-presale total, so two presales on the same event both display it.

Reopen replaces Close registration once a presale is closed or its codes are out. It is refused after the event has started, with the tooltip The event has already started, and reopening sets the close time to the event's start.

There is no delete on this screen. A presale you no longer want is closed, not removed.


Look up somebody's code

Once a presale reads Codes sent, a Sent codes button appears on its card. It opens a searchable list of everybody who was mailed: their name, their address, their code, and buttons to copy either the code or their personal link. Redeemed marks a code that has been used and Revoked one that no longer works.

This exists for one message you will get: "I never received my email." Search the person, copy their link, and paste it into your reply. It beats resending the whole campaign to everybody.

If your role does not include CRM access on the event, the panel says Emails hidden and drops the search field. You still see the codes, but not who holds them.


Edit a presale

Edit reopens the same panel with Save changes at the bottom. You can change the ticket type, the whole teaser, the window and all four options.

The promoter cannot be changed after creation. It drives the contact list the codes are pushed into, so it is shown as a plain chip instead of a field. If you picked the wrong one, create a second presale.

Clearing a field clears it for real: emptying the subtitle, the image, the description or either end of the window removes the value rather than keeping the old one.


How a presale meets the normal on-sale window

A presale does not suspend your ticketing. It runs beside it, and the two only touch in the four ways below.

The presale ticket type is invisible without a code. It is a Hidden/Private type, so it is never listed on the public event page, and there is no code entry box for a visitor to guess at. The ?code= on the link is the only way in. When a valid code reveals it, the row carries an Unlocked badge.

A code does not override the ticket's own sale window. The hidden type obeys the Sale start and Sale end you gave it exactly like a public one. Before its sale start it does not appear even with a perfectly valid code, and past its sale end it shows as sold out. If your presale email is going out on Friday, the hidden type has to be on sale on Friday.

Hiding the public tickets is a view, not a switch. Only show the presale ticket on code links changes what a code link displays. Your public ticket types stay on sale to everyone arriving through the normal event page for the whole time the presale runs.

Featuring a presale can hide the ticket widget, but only while it is open. With Instead of the tickets, the registration call to action takes the ticketing block's place on the public event and tickets pages. With Above the tickets, it sits on top and the ticketing stays. In both cases the call to action disappears and the ticketing comes back the moment the presale is closed or its codes have been sent, so a forgotten presale cannot leave your event unsellable.

A code grants access, not a reservation. The interface says so twice, on the create panel and on the public page: the ticket's stock is what defines scarcity, and if demand exceeds it, it is first come, first served. Sending 500 codes for 200 tickets is a legitimate strategy, not a bug, but your registrants will find out the hard way if you do not warn them.

Each code is single use. Once someone has checked out with it, it is spent. How many tickets that one checkout may carry is decided by the ticket type's own Max qty / order, not by the presale.


Where the rest lives

To changeGo to
The Sway Tickets switchSettings → Main
Ticket Visibility, price, stock, Sale start / Sale endTickets
Publishing the eventPublish an Event
The event start time that bounds ReopenSettings → Dates
The promoter that sends the emailsEvent settings, under Organizers

Taking money at the end of all this still needs a working payout account on the promoter page: see Connect payouts.