Automated Event Info by Phone with CiviCRM and Asterisk

One of the most common phone calls we receive at Bay Area Children's Theatre is "Are tickets still available for performance xyz?"  That call is especially common on show days, when most of our staff is at the performance venue and not in the office to answer the phone.

BACT already uses Asterisk to provide our virtual PBX and I wanted to see if there was a way to automatically give callers a list of sold-out performances based on CiviCRM event data.  I discovered an Asterisk AGI script called GoogleTTS that uses Google's text-to-speach API to read arbitrary text to callers:

Seat maps and assigned seating for CiviCRM events

We've been using CiviCRM at Bay Area Children's Theatre since 2008, and started using it for ticket sales shortly thereafter.  CiviEvent was really designed for event registrations, and there are some differences between an event registration and a ticket purchase, but we found that CiviEvent gave us enough flexibility to use it for ticket sales -- especially with price sets.  BACT also has some unique flexibility that allowed us to adopt CiviEvent for ticket sales, which other organizations may not have:

CiviCRM for Performing Arts Organizations

A wide variety of organizations make use of CiviCRM, especially in the areas managing contact/donor data, contact communication and receiving online donations. Performing arts organizations also have those needs, as well as some unique requirements around events (performances) and tickets. Over a series of upcoming blog posts, I hope to outline how our organization has used and adapted CiviCRM to meet our needs for those use cases.


About Our Organization


Adding Google Analytics ecommerce tracking code to CiviCRM/CiviEvent

We're a small children's theatre company and make great use of Google Analytics.  We use CiviCRM/CiviEvent for our patron database and online ticket sales, and wanted to add Google Analytics ecommerce tracking to track the effectiveness of our various marketing activities.


I did this by copying /civicrm/templates/CRM/Price/Page/LineItem.tpl into a custom template directory, and adding the tracking code to my custom version.  All of our "events" use price sets, and the price options are various ticket categories (child, adult, senior, etc).  The code below tracks not only the entire order amount, but also the quantities of individual items in the order.