Wait List Manager Add-on

The Wait List Manager add-on allows you to automate the process of capturing wait list signups when your events sell out.

View quick links for this add-on –>

If the wait list is activated on an event, and the event sells out, a button will automatically display on the event details page that encourages attendees to join a wait list. If an attendee joins the wait list and someone cancels, the wait list attendee can be auto-promoted to the next available spot.

Need to Buy a Support License for the Wait List Add-on?

Wait List Installation

This add-on requires Event Espresso 4.9.49 or newer. It cannot be used with old versions of Event Espresso 4.

This add-on is a plugin for WordPress and can be installed through your WP dashboard (WP-admin).

Download the latest version of the Wait List add-on from your Event Espresso account.

Then login to your WordPress dashboard (WP-admin) and go to Plugins. Next, click on Add New –> Upload and browse to the plugin on your computer. Then select the zip file and begin the upload process. Wait for the plugin to upload and then click on Activate.

Setup and Configuration

Login to your WP dashboard and go to Event Espresso –> Events –> Choose an event.

You’ll now be viewing the overview screen for the selected event. Scroll about half way down the page, until you see the Event Wait List settings.

Event Wait List Settings


Once you’ve added a wait list to an event by adjusting the value of the “Wait List Spaces” setting and the event sells out, the ticket selector is replaced and a button will be displayed on the event details page. The “Sign Up For The Wait List” button allows potential attendees to sign-up to be on the wait list if spaces open up. Spaces can open up if someone cancels or is removed from the event list.

Wait List Front-end

This image shows a sold out event with the option to sign up for the wait list:

Sold Out Event w/ Wait List Sign Up

Wait List Sign Up Form

When a registrant uses the button to sign up for the wait list, then a popover is displayed to capture the attendee information:

Once all wait list spots are taken, the “Join The Wait List” button goes away:

Sold Out Event w/o Wait List Sign Up

Manually Processing Standby Registrations

Once registrants are added to the wait list, you can easily follow-up with them or promote their registration to approved, pending payment, and more, if any spaces open up for the event.

To manually promote registrants, head on over to the Registration List table filtered for the wait list:

Wait List Registration Overview

Here you can get an overview of wait list registrations, promote registrations, view registrant information, and resend notifications.

To promote someone on the wait list to an open spot, simply click on the persons name or select the box and use the bulk actions to change the status. For this example, I will click into a single wait list registration to view the details:

Wait List Registration Manual Promote

From there you can change the registration status and send related messages. If you are running a paid event, you can use the “Pending Payment” option to make sure the attendees pay before taking a spot in the registration list. However, if you’ve promoted multiple attendees to “Pending Payment” and only have a limited number of spaces, then the first attendees to pay will receive their spot on the “Approved” registration list.


Reducing available spaces after promoting registrants should be avoided at all costs.

Auto-promotion Settings

The Wait List Manager auto-promotion setting helps you by making sure wait list registrations are automatically promoted whenever a space opens up in the event.

If you use the bulk cancel action to cancel registrations you’ll need to refresh the event editor page for the sold out event to trigger the auto-promotion of wait list registrations.

You can also leave some spaces on manual control if desired.

Wait List Manager Auto-promotion Settings

Wait List Messages

The Wait List Manager creates three additional messages that send when your customers sign-up for a wait list. To edit and manage the Wait List messages, login to your WP dashboard and go to Event Espresso –> Messages –> Default Message Templates.

Once on the Default Message Templates dashboard, you may need to navigate to the second page of messages. Once you are on the second page of the messages overview, you should see the newly added Wait List Messages:

Wait List Messages Overview

Wait List Messages Overview

From there you can edit the content of each message to meet your needs.


The plugin will not activate. Can you help?
Are you running a current version of Event Espresso 4? This add-on needs at least version 4.9.49.p to activate.

Where is the menu screen for this add-on?
This plugin does not create any new menus in the WordPress admin screen. It uses the messages setting screen along with the event editor for Event Espresso.


Our support team cannot write custom coding for you. Below are some examples on customizing this add-on.

How to change text strings from the Wait List add-on

Below is some example code that shows how to change the wording of some of the text strings from the Wait List add-on:

You can add the above to a functions plugin or into your WordPress child theme’s functions.php file.

How to add a phone number field to the wait list form

Example code that shows how to add the phone number field to the Wait List form:

You can add the above to a functions plugin or into your WordPress child theme’s functions.php file.

Need to Buy a Support License for the Wait List Add-on?

Need more help?

  • Browse or search for more information on this topic in our support forums. Customers with an active support license can open a support topic and get help from Event Espresso staff.
  • Have an emergency? Purchase a support token and get expedited one-on-one help!
  • Go back to documentation for Event Espresso
Event Espresso
[gravityform id=95 title=false description=false]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(r=Array.prototype.slice.call(r,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_95' ><form method='post' enctype='multipart/form-data' id='gform_95' action='/wiki/wait-list-manager/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_95' class='gform_fields top_label form_sublabel_below description_below'><li id="field_95_1" class="gfield gfield_contains_required field_sublabel_hidden_label field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >First name<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_95_1'> <span id='input_95_1_3_container' class='name_first' > <input type='text' name='input_1.3' id='input_95_1_3' value='' aria-required='true' placeholder='What is your first name?' /> <label for='input_95_1_3' class='hidden_sub_label screen-reader-text'>First</label> </span> </div></li><li id="field_95_2" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_95_2' >Email address<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_95_2' type='email' value='' class='medium' placeholder='What is your email address?' aria-required="true" aria-invalid="false" /> </div></li><li id="field_95_3" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_95_3' >What is your #1 question about using the Wait List Manager for your events?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_3' id='input_95_3' type='text' value='' class='large' placeholder='What question can we answer for you today?' aria-required="true" aria-invalid="false" /> </div></li><li id="field_95_6" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >GDPR Agreement</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_95_6'><li class='gchoice gchoice_95_6_1'> <input class='gfield-choice-input' name='input_6.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_95_6_1' /> <label for='choice_95_6_1' id='label_95_6_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id="field_95_4" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_4' id='input_95_4' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_95_5" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_5' id='input_95_5' type='hidden' class='gform_hidden' aria-invalid="false" value='https://eventespresso.com/wiki/wait-list-manager/' /></div></li><li id="field_95_7" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_95_7' >Comments</label><div class='ginput_container'><input name='input_7' id='input_95_7' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_95_7'>This field is for validation purposes and should be left unchanged.</div></li></ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_95' class='gform_button button' value='Send My Message' onclick='if(window["gf_submitting_95"]){return false;} if( !jQuery("#gform_95")[0].checkValidity || jQuery("#gform_95")[0].checkValidity()){window["gf_submitting_95"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_95"]){return false;} if( !jQuery("#gform_95")[0].checkValidity || jQuery("#gform_95")[0].checkValidity()){window["gf_submitting_95"]=true;} jQuery("#gform_95").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_95' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='95' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_95' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_95' id='gform_target_page_number_95' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_95' id='gform_source_page_number_95' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="233"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>