▶️Note: This video may refer to products and features that have since been merged or changed. For the most up-to-date information, please refer to the content of this article.

Creating Zaps is easy using the built-in features of Events Calendar Pro and Event Tickets Plus.

But what if you need to customize your automation to match your specific workflow?

We’ve got you covered with two specialized Zapier Apps:

  1. The Events Calendar Zapier App
  2. Event Tickets Zapier App

Let’s explore what each app offers to enhance your automation experience.


The Events Calendar Zapier App

Event Triggers:

  • New Event: Triggers when a new event is created
  • Updated Event: Triggers when an event is updated – does not trigger on new event creation
  • Canceled Event: Triggers when the status of an event is changed to canceled

Event Actions:

Create

  • Create Event: This action allows you to create a new event in The Events Calendar directly from your trigger event in Zapier.
  • Find Event: This action is a ‘Search’ type action, which means it allows you to search for existing events in The Events Calendar based on specified criteria.

Zap Templates

Check out the Zap Templates (aka recipes) for Event triggers to get a head start!

You can tweak those to your liking or simply use them as inspiration to create your own Zaps.

Available fields for ‘New and Updated Event’ triggers:

FieldData type
idinteger
titlestring
descriptionstring
excerptstring
permalinkURL
event_statusstring
featuredboolean
stickyboolean
featured_image_urlURL
categoryarray
tagarray
website_urlURL
coststring
has_ticketboolean
has_rsvpboolean
in_date_rangeboolean
sold_outboolean
tickets_ticketsarray
tickets_rsvparray
start_datedate and time
end_datedate and time
timezonestring
timezone_abbrstring
all_dayboolean
multi_dayboolean
is_pastboolean
durationinteger
recurringboolean
Virtualboolean
Virtual URLURL
Virtual Button Textstring
Organizers (comma separated)
    idinteger
    descriptionstring
    titlestring
    excerptstring
    permalinkURL
    featured_image_urlURL
    phonephone
    websiteURL
    emailemail
Venue
    idinteger
    descriptionHTML
    titlestring
    excerptstring
    permalinkURL
    addressstring
    countrystring
    citystring
    state_provincestring
    statestring
    provincestring
    zipstring
    phonephone number
    directions_linkURL
    websiteURL
    geolocation
        overwrite_coordinatesboolean
        latitudenumeric
        longitudenumeric
        addressstring
        distanceboolean

Event Tickets Zapier App

Tickets Triggers:

  • Attendees: When a new attendee is generated
  • Updated Attendees: When an attendee has been updated
  • Check-in: When an attendee is checked into an event via ticket or RSVP
  • New Order: When a new order of tickets is created
  • Refunded Orders: When a ticket order is refunded from Tickets Commerce, EDD, or WooCommerce

Tickets Actions

Search

  • Find Attendees: Find attendees in your connected WordPress site
  • Find Tickets / RSVP: Find tickets / RSVP in your connected WordPress site

Zap Templates

Take a look at the Zap Templates (aka recipes) we have created for Tickets triggers to give you a sense of the possibilities.

Best of all, you can customize the templates to match your workflow!

Available fields for ‘Attendee’ and ‘Check-In’ triggers:

FieldData type
idinteger
holder_namestring
holder_emailemail
ticket_idstring
security_codestring
attendee_metastring
    slug (for each attendee information field)string
    label (for each attendee information field)string
    value (for each attendee information field)string
check_in
optoutboolean
user_idinteger
is_subscribedboolean
is_purchaserboolean
purchaser_namestring
purchaser_emailemail
provider (woo, edd, rsvp – string)string
ticketstring
ticket_product_idinteger
order_idinteger
order_statusslug
event_idinteger
event_titlestring

NOTE: For WooCommerce orders, the customer_email field is the logged-in user email instead of the customer email entered during checkout, so anonymous users always get an empty customer email for WooCommerce orders.

Available fields for ‘New Order’ trigger:

FieldData type
idinteger
order_idinteger
order_numberinteger
order_datedate and time
statusstring
shipping_totalnumeric
shipping_tax_totalnumeric
tax_totalnumeric
discount_totalnumeric
order_totalnumeric
order_currencystring
payment_methodstring
shipping_methodstring
customer_idinteger
customer_userinteger
customer_emailemail
billing_first_namestring
billing_last_namestring
billing_companystring
billing_emailemail
billing_phonephone
billing_address_1string
billing_address_2string
billing_postcodestring
billing_citystring
billing_statestring
billing_countrystring
shipping_first_namestring
shipping_last_namestring
shipping_companystring
shipping_emailemail
shipping_address_1string
shipping_address_2string
shipping_postcodestring
shipping_citystring
shipping_statestring
shipping_countrystring
customer_notestring
items (comma separated)string
    idinteger
    keystring
    valuestring
variation_idinteger
taxnumeric
tax_classstring
tax_statusstring

Adding custom fields to your Zaps


If you’re seeking to expand the fields available for your zaps, consider utilizing the following filters:

  • tec_automator_map_tickets_commerce_order_details
  • tec_automator_map_edd_order_details
  • tec_automator_map_woo_order_details
  • tec_automator_map_attendee_details

A code example:

Imagine you’ve added some custom fields to your attendee info and want them accessible in Zapier for automation. You can use the tec_automator_map_attendee_details filter. Here’s a snippet to kickstart things for you.

function tec_automator_attendee_custom_fields( $attendee_data, $attendee ) {
	$attendee_id = $attendee[ 'attendee_id' ];

	// Get the serialized array from the postmeta table
	$serialized_data = get_post_meta( $attendee_id, '_tec_tickets_commerce_attendee_fields', true );
	if ( empty( $serialized_data ) ) {
		return $attendee_data;
	}

	// Define custom fields to include
	$fields_to_include = [ 'field1', 'field2' ];
	$meta_fields       = [];

	// Loop through serialized data and extract selected fields
	foreach ( $serialized_data as $field_name => $field_value ) {
		foreach ( $fields_to_include as $label ) {
			if ( strpos( $field_name, $label ) !== false ) {
				$meta_fields[ $label ] = $field_value;
			}
		}
	}

	// Merge the selected fields into the attendee data
	$attendee_data[ 'attendee_metadata' ] = $meta_fields;

	return $attendee_data;
}

add_filter( 'tec_automator_map_attendee_details', 'tec_automator_attendee_custom_fields', 10, 2 );

Some notes

Where do the field1 and field2 come from? – you might ask. A fair question.

When a ticket which has attendee information is purchased, then all the data will be saved with the attendee. The attendee information will be saved in the wp_postmeta table with the _tec_tickets_commerce_attendee_fields meta key. The meta value will be the attendee information in serialized form. For example:

a:3:{s:10:"first-name";s:4:"John";s:9:"last-name";s:3:"Doe";s:13:"email-address";s:18:"[email protected]";}

This would come from attendee field with the labels “First Name”, “Last Name”, and “Email address”. The labels are transformed into lowercase, and the spaces are replaced with a -. These will be the labels in the snippet.

So line 11 could look like this:

$fields_to_include = [ 'first-name', 'last-name', 'email-address' ];