Waiting list (Pro)
A form with a Maximum registrations set closes the moment it reaches it, and shows whoever arrives next the closed message. That is the right default, and it stays the default — but it costs you the one thing a full event most wants to know: who else would have come.
Somebody turned away by a closed message leaves no trace. So when a place comes free the Thursday before, it is a place nobody can fill.
With a waiting list on, the form stays open past its maximum and says what it is now doing. Registrations that arrive after the last place is taken are stored like any other, marked as waiting, and put in a queue you can admit people from.
Turning it on
On the form's Settings tab, under Waiting list:
- Keep taking registrations once the form is full. The switch. Off is what the form did before.
- Most people on the list. Leave empty for no limit. Once the list is this long, the form closes as it would have without one — a queue of two hundred for a room of thirty helps nobody.
- Shown above the form when it is full. Your own wording for the notice.
- Told to somebody who joins the list. Replaces the thank-you message and the confirmation email, for them only.
- Emailed when you give somebody a place.
The waiting list needs a Maximum registrations to work — a form that never fills up never starts one. The panel says so if you have not set one.
What the person filling it in sees
Once the form is full, a notice appears above it saying it is fully booked and that signing up now joins the waiting list. Everything else looks as it did, which is exactly why the notice matters: without it, somebody would fill the form in believing they had a place.
When they submit:
- the thank-you message tells them they are on the list, and where — "You are on the waiting list, at number 3";
- the confirmation email says the same, with the subject "You are on the waiting list for …" rather than "Your registration for …";
- the calendar invitation is not attached. An event somebody has no place at does not belong in their diary.
Write your own wording for any of it, and none of the above is guessed at.
Running the list
Responses grows a Waiting list column on a form that has one. Each response reads:
| Registered | Holds a place. |
| Waiting (#3) | On the list, third in line. |
| Given a place | Was on the list, and you admitted them. Counts as a registration. |
| Taken off the list | You removed them. Their response is kept. |
Hover a waiting row for two actions:
- Give a place — marks them registered and emails them to say so. Use it when somebody cancels.
- Take off — removes them from the queue. Everybody behind moves up. Their response is kept: a name removed from a list is not a response to destroy, and deleting it is a separate decision.
Positions are worked out each time they are read, never stored, so the queue closes up on its own the moment anyone ahead is admitted, removed or deleted.
How it counts
The maximum counts people who hold a place — everyone stored, less everyone waiting and everyone taken off. So:
- the registration that takes the last place is a registration, not the first person in the queue;
- admitting somebody from the list takes up a place, and the count goes up by one;
- taking somebody off frees nothing, because they never held a place.
Two people submitting in the same second can both find room. That is the same race the maximum has always had, and it is settled the same way — by you looking at a list one longer than you expected, rather than by the site holding a lock across a payment.
In the export and the webhook
The Waiting list column appears in the Excel and CSV exports, saying the same thing the screen does.
The webhook payload carries two extra keys on a form with a list, false and null included, so a receiving system can tell "not waiting" from "an older form that never said":
{
"waitlist": true,
"waitlist_position": 3
}
With payments
They work together, and it is worth knowing which counts what. Payments can be set to count only registrations somebody actually paid for; the waiting list counts registrations that hold a place. On a form using both, an unpaid registration does not hold a place, so it does not push the next person onto the list.
If the license lapses
The form stops taking more than its maximum, exactly as it did before. Nothing is deleted: every response — waiting, admitted or otherwise — stays where it is, the column stops appearing, and it all comes back when the license does.