Event Registration Specifications: What are your church's registration requirements?

Events happening in the community are now at Drupal community events on www.drupal.org.
bradwade's picture

I've created a wiki for the specifications: http://groups.drupal.org/node/20933
Let's keep the discussion going here.

I'm trying to get some feed back from the community so that we can develop a solid event registration system for churches. What are your event registration needs? Below is a brain dump of specifications that I have come up with. Comments? Suggestions? Other requirements? Do you want to highlight the most important/least important things from the list for your church?

Please don't start talking about or debating solutions yet. I just want to get our needs figured out first.

Event Registration/Ticket Sales System Specifications


*Registrations with Cost and No Cost

We should have a similar process (on admin and end user side) for event registration for events that have costs associated with them and those that don't.

*All Events need to record some common data.

Such as: Name, email address, address, phone, number attending, special requests. Anything else? Anything less? (Some events may want a lighter interface - such as just name and email.)

*Each event may need to record specific data.

Such as: The Church Retreat registration needs to know if you will take the bus or drive on your own. The Tech conference needs to know if you are taking the programming or theming track of classes. The Daycare needs to know the ages of the children and if they have any food allergies. Etc.

*Options selected effect price/product/quantity

The options/attributes selected will effect the price and/or product and/or quantity.

Such as: Choosing a different seating section (orchestra, balcony, etc.) for tickets effect price. Buying two tickets needs to effect quantity (which will effect price). Selecting this weeks show or next weeks could change to an entirely different product.

*Multiple person registration

Optionally need to be able to register multiple people: yourself and your spouse. Your entire youth group.

*Quantity/stock tracking

Need to be able to automatically close registrations/ticket sales based on number of tickets sold. Need to be able to manually adjust stock in case tickets are sold or given away in other ways.

*Admin register without paying

An admin needs to be able to enter data for those who filled out paper registration and paid by cash/check.

*Optionally allow a "will pay later by check/at door" option, where registration can be completed and saved without paying.

*Discounts for certain people. Special code for friends and family to get 20% off. OR For a congregant in financial need, the church will often cover most/all of the costs to attend some event. (Perhaps the same as "will pay at door" option.)

*Discounts based on time of registration (early bird) and number of registrants

*Need to manage status of ticket/registration.

Status: Not Registered. Not Paid. User began a registration... but did not pay. (Should these records be deleted?)

Status: Registered/Paid. Once credit card processed, system needs to update status to paid.

Status: Registered/Unpaid

*Saving and Reusing Registration Data

If the user is a registered user on the web site, we should store basic registration information (address, phone, email, etc.) to make registering again at a later date a much easier process. Should that information be stored in their user profile? Could the info from their profile populate/be the default for the registration page? How would that work with registering multiple people?

*Conference Admin - Reports

List of Names of people to attend with status and other attributes. Other reports?

*Confirmation Emails

User gets an email confirmation containing all registration information and unique event information ("Thanks for registering for this conference. Be sure to pack your pillows this year because...")

*Additional reminder emails

Admins can send out reminder or alert emails to all who have registered.

*Optionally Conference Admin gets emailed notifying of each registrant.

*Question: Should we force users to be a website/Drupal Registered User to register for events? Anonymous users register?

*Event Description

Need to include a lot of information (many fields and taxonomy) to describe event such as general description (Body), begin and end dates, image field, PDF attachment of schedule, etc. Taxonomy/categories for group/dept/ministry to which event is related, topic, etc.

  • Simple as possible process for end user to register

*The easier to create a new event the better.

I'm worried that most clients won't be able to create a custom content type with custom fields, then create a product with certain attributes, then go into another module and link the two together... and have to repeat this process for every event! Also I'm concerned about accumulating too many custom content types and/or products, if we need new ones for each event.

*Tickets - Print online. Print confirmation page. Option to mail? (This isn't necessary for any of my clients (so far) but it may be important for others.)

*Sign up for certain roles at an event - Not as common of a requirement, but some events need people to sign up for roles such as: One leader, One host, Two setup/cleanup, and at least 10 attendees to have an event.


Comments

FYI, you've pretty much just

matt2000's picture

FYI, you've pretty much just listed the features of CiviEvent:

http://civicrm.org/civievent

Now that CiviCRM 2 has Views 2 integration, the fact of Events not being is less of a hindrance. We can now deal with event data in the same way we're used to dealing with other Drupal data.

Best,
Matt

Drupal.org user profile
Portfolio: http://www.NinjitsuWeb.com
Drupal Micro-blogging: http://twitter.com/matt2000

How do I evaluate CiviEvent?

strellman's picture

CiviCRM does look impressive and CiviEvent seems to be just what we are talking about, but what is the downside? Can someone advise as to why we should not use civiEvent to handle event registration?

So far I am finding that it creates its own database and I have hit an incompatibility with one of my drupal modules since both try to load the PEAR library. Since it can run without Drupal, it seems that it really should be seen as a separate system with some integration available. Issues are tracked outside of Drupal.org Does the Views 2 integration make up for what the http://drupal.org/project/civinode did? I hope so because that doesn't have a D6 version.

Maybe it is worth going outside of the Drupal community to find a solution, but how to evaluate?

evaluate CiviEvent

syoung0267's picture

The organization for which I work uses both Drupal and Civi. We are actually interested in using a Drupal event registration system in addition to CiviEvents. Our database is used for tracking the churches, clergy and lay leaders within the Eastern Pennsylvania Conference The United Methodist Church. In an effort to maintain the fidelity of the information contained in our Civi database, we want a second registration system to use for those events that register people from different conferences, which we do not want in our database.

Possible Registration Solutions

bradwade's picture

Some of my notes from the Birds of a Feather discussion at DrupalCon DC on possible methods of implementation. CiviCRM's CiviEvent wasn't mentioned as far as I can remember.

The use case we were trying to find a solution for was having a church secretary (not a geek/programmer/drupal wiz) that needs to add multiple types of events, collecting different data for each event.

UC Node Checkout

http://drupal.org/project/uc_node_checkout
This module allows you to map a node type to an Ubercart product.
Summary: Good for consistent/infrequent registration requirements, but a lot of administrative setup required.

UC Node Checkout may be a good solution when you have many/all registrations that collect the same set of data for all events. So if you only collect Name, Address, Phone, Email for all you different events, this may work.

Cons: However it is not good if you collect specific detailed information for each event (such as: for one event you need to know if the registrant wants a vegetarian lunch, for another event if they will be taking the bus, another event if their child has any allergies, etc) This is because every event would need to be its own content type, a node, and an ubercart product. It is too much and too difficult admin setup.

Ubercart Product

This approach would simply create a registration as an Ubercart product with product attributes to collect registration information.

Cons: Product Attributes are not exposed to views (so difficult to create reports/views of registration info). Even if they were, the attributes interface (as it currently exists) was not recommended by Ryan and Lyle as being easy to use.

Webform

Webform was liked by people in the BOF as being the easiest approach to create registration forms. So it was thought that perhaps a good way forward would be to integrate Webform with Ubercart perhaps completing and extending the Ubercart Webform Productize http://drupal.org/project/uc_webform_productize.

Webform - easy download of registration info

flickerfly's picture

One of the benefits of Webform is that it already has a way to download the results of all the forms in a CSV format that a secretary can easily bring into Excel, through some formatting and hand to the people at the check-in table. That's pretty simple with Webform, and perhaps CiviEvent (I don't know), but is noted as an issue with Ubercard Product and would also be an issue with anything that requires creating a View because then you're asking the church secretary to learn the Views interface and that's asking for lots of phone calls. :-)

Webform Capabilites

bradwade's picture

Does anyone know if webform has the capability of doing any calculations. For example enter a number in one field and select a drop down from another and it calculates a third field.

And can you assign multiple values to one drop down such as Medium is $20, Large is $25, X-Large is $30???

(I'm realizing this is probably not the best place to ask this... but oh well)

Calculations in Webform

rkdesantos's picture

Calculations can't be done directly in fieldtypes in Webform however with some Javascript and php in a "custom" php snippet with your theme it should be possible to do (but I have never tried). See: http://drupal.org/node/342183

Any progress?

skstarkiller's picture

Has there been any progress on making this a reality. I am ready to chip in some cash to make it happen. I am currently using a 2 step process webform > product to have people register. The problem is they can complete the webform but not pay which makes keeping track of the registrations a real problem for the event coordinator.

Any help on this would be awesome!

Event Registration Requirements Spec

bradwade's picture

Here ya go Phil. At least some progress. I cleaned up the specs and made a wiki: http://groups.drupal.org/node/20933

Just a note

jsnr75's picture

Brand new to Drupal, and in over my head. I have used forms for youth ministry event registration for years. One of the things I've found useful is a "T-Shirt Size" option, with S, M, L, XL, XXL, and XXXL as options. Just a thought while we are dreaming right?

For Camp T-shirts?

bradwade's picture

Good idea. I included it as an example in the wiki I created for the specs. http://groups.drupal.org/node/20933

Signup module

andychannelle's picture

Have you thought about starting (or adding to) the Signup Module. This does a lot of the stuff. I ask for selfish reasons: I am using it, but would like to have options for 'number of seats required' added to an event, and then have this removed from the total available seats. It works for individual signups, but I'm not talented enough to build in the extra options.

I'll Consider Signup Module...

bradwade's picture

I think signup module is worth taking a look at. However my gut reaction is that it is too simple of a tool to handle all the different requirements that I'm putting together. I think the simplicity (ie the limitations) of signup module and it's ease of use is one of its strengths. So adding a bunch of features to it might not be the best thing to do... - Brad

Any updates on what modules

tborrome's picture

Any updates on what modules you ended up using for your event registration requirements? I'm going through the same dilemma. I'm struggling about what modules to use for event volunteer registration for my church.. and I'm down to the signup and webform modules. But we cant get all the functionality we need with just one of them.

Basically, what we need is the ability for a volunteer to browse events from a calendar and sign up for that event to volunteer but like yours, there are a few specific requirements that make it a little more complex ...

  1. A volunteer should be able to do multiple registrations - like signing up the kids for an event, or signing up others who don't have user accounts or even email addresses, we have a lot of volunteers who don't even use the computer..

  2. Be able to customize the volunteer registration fields for each event.

  3. Be able to export the registration list to Excel.

  4. Be able to set limits for # of volunteers for an event.

  5. be able to open and close an event manually and automatically (when maximum is reached).

  6. Be able to prevent schedule conflicts ... volunteers shouldn't be able to sign up for 2 events for the same time slot.

  7. Be able to restrict sign ups by age (for example, there are volunteer events only for kids less than 12, events that require age > 18 or events for < 18 )

Webform is very nice with customizing registration fields and we can make the webform an event by adding CCK date fields. It also allows multiple registrations and can export the results to delimited formats and Excel. so it addresses 1 to 3 very well but the rest are questionable. Setting limits is possible through a PHP hack but opening and closing the event can only be done by unpublishing the node. I also tried the WebForm Associate module but I gave up on this because of unsolved bugs http://drupal.org/node/358252

Signup is more flexible since it can be assigned for different content types and setting max limits, opening/closing and auto-closing upon reaching limits are all built in functionality. It also has nice features for emailing reminders for signed up events and built in "My Signups" views and blocks. However, it cant handle 2 important requirements - multiple registrations and customizable registration fields... actually you can customize the registration fields in the PHP code as documented, but the customization is site wide.. not per event.

I wish a can just combine the 2! As for preventing schedule conflicts and age-based signups, I still don't have a solution...

I think I've hit a dead end. I don't know if we can achieve the requirements with existing modules.

I'd be interested to hear about your progress on this. thank you for sharing!

Your requirements are fairly

matt2000's picture

Your requirements are fairly complex. I would do it with Webform + some custom code. Part of that code would go in a custom module, and then there would be the 'Validation PHP' that webform allows to do your age-based sign-up.

Best,

Matt

Sorry. I don't really have

bradwade's picture

Sorry. I don't really have any updates. I've been using webform and Ubercart in a two step process. It's functional for the one of my church's needs, but not the ideal solution. - Brad

Add a Bounty

skstarkiller's picture

Do you think we could get some traction on this if we put a bounty on it? If so, what would that bounty amount need to be?

Glad to see you found a

ezra-g's picture

Glad to see you found a solution here. There's also http://drupal.org/project/uc_signup , which makes it easy to sell signups and collect user profile data as part of the checkout process. Collecting event-specific information (such as via webform) is something that could be mostly addressed by the feature request at http://drupal.org/node/623900. Also, I added this post to the Event Management Systems Group.

jasonrichardsmith@gmail.com's picture

I have been looking at all the different solutions all weekend, because I am trying to get my employers business off of Cvent.
I have seen a lot of the groundwork set with other modules but they just don't seem to pull together.

I believe Civicrm's Civievent has the best promise for tracking guests. It creates new contacts for every guest, does not require an email to register/create a guest and it works as a contact management system where we can track previous attendance( I am in Advancement at a University). One of the best thing about Civicrm is its ability to merge contacts. We have a wealth of information for each of our contacts that we need to access in any report for an event, and we need to make sure we do not have duplicates so we have an accurate record of event attendance. Being able to merge contacts after they register is a necessity.

Unfortunately their event module is pretty simple. It will work great for many of our events but with others it would just fail. One thing I also don't care for is how the content sits outside Drupal's regular content system. The nodes should be part of the Drupal node content system. This would make it easier to administer access to event creation. I also believe the Ubercart gateway is more robust.

I believe the best solution is to create a module that asks for event information, it then creates the Civievent event as unpublished, default drupal pages with the same taxonomy, and products if necessary.

Registration would work similarly to Civicrm's event registration but be formatted very similar to Ubercarts catalog.

Choose your items:
tickets: number of tickets opens up the appropriate number of guests slots (javescript).
block items: in some of our events we sell entire tables which will seat ten people, so buying one table would be ideal to open 10 guest slots.

After completion you are brought to ubercart for checkout.
Upon completion of checkout all guests are pushed into civievent automatically.

I think this would be an ideal for my organization.

My only problem with the above system is how ubercarts API is very poorly documented, on the plus side Civicrms API is very well documented.

I have some decent experience with php and Mysql, I create a lot of apps on the fly for my department. I don't have any experience in Drupal module development. I will be doing some serious reading this week. I would like to develop this before February next year.

CivicCRM is a separate

karens's picture

CivicCRM is a separate project that has a fair amount of overhead because it does not use Drupal's API and implements its own version of everything it needs to do. So it's memory-hungry when embedded in Drupal. Plus it works differently than Drupal so your administrators will have to learn two systems, Drupal and CiviCRM. And as you have already found, not everything integrates seamlessly because many (most?) Drupal sites do not use it.

I know it offers some advantages, but I would not add the overhead unless you're working with a large organization that has the ability to manage the extra work of learning and maintaining two different systems.

I agree on all of your points.

jasonrichardsmith@gmail.com's picture

I agree completely on all your points. My case is possibly unique. I have found working in my division (Advancement: fund raising) being able to access detailed reports on a contacts history (giving history, past attendance, school affiliations, relationships, etc) in regards to an event is one of the most important aspects my coworkers are looking for.

Plus with the methods I mentioned earlier, most people will never have to access anything outside Civicrm. Most of the people this will be catering to are people that solicit money from donors and alumni, not content creators. These are also people used to working in a contact relationship databases. In the current situation I already create around 90% of the content in Cvent (I hate Cvent by the way) and it costs my department boat loads of money.

I also believe, from what I have seen so far, CiviCRM is an excellent way for contacts to be monitored, but not a great way to publish content through Drupal.

This is why I believe pushing event registration into Civicrm through Drupal content is the best bet.

I would love to hear further feedback on this idea.