New features: help attendees avoid email address typos, apply a promotion code to an existing registration, plus more!

In this post, we’ll highlight a few improvements that are now available in Event Espresso. These can help you whether you are organizing in-person events, virtual events, or a mix of both types.

1. Ask attendees to confirm their email address by entering it twice

Have you received an email from a frustrated attendee that registered for an event but didn’t receive their ticket or confirmation email? I imagine you went through steps like this to solve this problem:

– Logged in your WordPress dashboard on your website
– Pulled up the attendee’s registration in Event Espresso
– Spotted a typo on their email address in the Contact Details section
– Updated their email address to fix the typo
– Resent their confirmation email or ticket through the Registration Details area
– Replied to their email

Mistakes happen. I recently booked an appointment online for routine service for my car. While setting up the appointment, I typed my email address wrong — an email address that I’ve had for over ten years! Luckily, I realized what I did and fixed it before sending the appointment request.

What if you could almost eliminate having to fix typos on attendee email addresses?

We’ve added a new system to help you do that. It works by 1) adding a confirm email address field to the registration form and 2) looking for a matching email address as an attendee filling out the registration form.

Example of registration form with confirm email address field

Example of the registration form with confirm email address field.

 

If there isn’t a match, an attendee sees a visual nudge to correct their email address, so they can quickly finish their event registration. Here is how to set this system up in Event Espresso in less than one minute.

From your WordPress dashboard, go to Event EspressoRegistration Form. Next, click on the Question Groups tab at the top of your screen. Look for the Personal Information question group and click on it.

Look for the Confirm Email Address question. Click and drag it right under the Email Address question. Then click the checkbox to the left of the Confirm Email Address label.

Drag and drop the confirm email address question and enable it

Then save changes by clicking on the Save button in the top right corner of your screen.

2. Support for additional schema.org properties for events

Event Espresso supports schema.org, which is a markup language that helps search engines understand your events. It runs behind the scenes by using information that you add to your events and venues. Here is an example of how event information may appear in search results pages from search engines:

Example of structured data for events in search engine results

We’ve added support for two more properties:

– eventStatus
– eventAttendanceMode

The eventStatus property represents the status of an event in Event Espresso. For instance, if you’ve canceled an event, then the schema.org markup for your event page will include “canceled” for eventStatus.

The eventAttendanceMode property can be offline, online, or mixed. Think of offline as in-person events and online for virtual events. Mixed is a combination of in-person and online. Mixed is used when a venue for an event has a street address plus a virtual URL set through the venue editor.

Remember that the schema.org markup is something that Event Espresso handles automatically for you, so it will continue to benefit you as you continue to host events with Event Espresso.

3. Add a promotion or discount code to an existing registration

Have you ever needed to change the cost of a ticket or registration for a specific attendee in the past? This could be done by canceling a registration and manually creating a new one in your WordPress dashboard. Then we added a quick link to reach the front-end registration checkout page from your WP dashboard.

The quick link can be found on the right side of the transactions overview page in the Actions column through the person icon.

Front end link in the actions column of the transactions overview page

Example of the front end link in the actions column.

 

A quick link to registration checkout was an improvement as it was far fewer steps than canceling a registration and starting with a new one. We wanted to make the process of adding a promotion code to an existing registration easier for you. Now, you can add a discount code from the transaction details page.

From your WordPress dashboard, go to Event EspressoTransactions. Next, search for an attendee’s name and click on their transaction ID. Scroll to the Payment Details area, which is about mid-way down the page.

The Discount Code field appears in the lower right corner. Enter a code and click the Apply Discount Code button.

Apply a discount code from the transactions details page

Example of the apply discount code area on the transactions details page.

 

We know event organizers use this in different ways, so we are sharing those ideas with you:

– Give a specific attendee a certain price for their existing registration.
– Clear the balance due for staff, speaker, or volunteer registrations.
– Apply a promotion code to an attendee that forgot to use a code while registering.

Get access to these improvements today in Event Espresso 4.10.5.p and the Promotions and Discount Codes add-on 1.0.15.p by updating your Event Espresso software through the Plugins screen in your WordPress dashboard.

Which of the enhancements above will you try out first? Please share a comment below to let us know!

Related Articles

One thought on “New features: help attendees avoid email address typos, apply a promotion code to an existing registration, plus more!

Share a Reply or Comment

Your email address will not be published.

Need help with Event Espresso? Create a support post in our support forums

Event Espresso
[gravityform id=116 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_116' ><form method='post' enctype='multipart/form-data' id='gform_116' action='/2020/05/new-features-help-attendees-avoid-email-address-typos/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_116' class='gform_fields top_label form_sublabel_below description_below'><li id="field_116_5" class="gfield gfield_contains_required field_sublabel_hidden_label field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >What is your 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_116_5'> <span id='input_116_5_3_container' class='name_first' > <input type='text' name='input_5.3' id='input_116_5_3' value='' aria-required='true' placeholder='First name' /> <label for='input_116_5_3' class='hidden_sub_label screen-reader-text'>First name</label> </span> </div></li><li id="field_116_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_1' >What is your email address so we can follow up with you?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_116_1' type='text' value='' class='medium' placeholder='hello@example.com' aria-required="true" aria-invalid="false" /> </div></li><li id="field_116_2" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_2' >Tell us about your concerns below<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_textarea'><textarea name='input_2' id='input_116_2' class='textarea medium' placeholder='What kind of events are you planning?' aria-required="true" aria-invalid="false" rows='10' cols='50'></textarea></div></li><li id="field_116_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_116_6'><li class='gchoice gchoice_116_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_116_6_1' /> <label for='choice_116_6_1' id='label_116_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_116_3" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_3' id='input_116_3' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_116_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_116_4' type='hidden' class='gform_hidden' aria-invalid="false" value='https://eventespresso.com/2020/05/new-features-help-attendees-avoid-email-address-typos/' /></div></li><li id="field_116_7" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_7' >Name</label><div class='ginput_container'><input name='input_7' id='input_116_7' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_116_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_116' class='gform_button button' value='Send my message' onclick='if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} jQuery("#gform_116").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_116' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='116' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_116' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_116' id='gform_target_page_number_116' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_116' id='gform_source_page_number_116' 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_2" name="ak_js" value="179"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>