CiviMail Integration with CiviEvent: Potential MIH Project for 4.1

Published
2011-03-24 18:11
Written by
lobo - member of the CiviCRM community - view blog guidelines

Update: We now have sponsorship committed for 63% of this project and have started a Make-it-Happen Campaign!

 

CiviEvent is the most popular CiviCRM Component. We get a steady stream of feature requests along with quite a few patches. We were approached recently by an organization that wanted to add Reminder Emails for CiviEvent.

We had a quick online and offline conversation with them and realized that there was a fair amount of cool integration so an event administrator could schedule and send messages to event participants. Briefly the set of features would include:

  • Ability to schedule a mailing 'n' days before / after the event start date / end date OR on a specific date. This will allow an event admin to schedule a reminder email 7 days before the event and a thank you email 1 day after the event.
  • Ability to decide who the recipient list is based on a combination or participant role (attendee, sponsor, volunteer) and participant status (Pending, Registered, Wait Listed, Cancelled).
  • Ability to type the text/html message and subject or use a civicrm message template.
  • Ability to include event information in the message as "civicrm mail tokens".
  • Sending the event as a vevent/ical format used by exchange/gmail, so the recipient can register from within the mail

Note that this development assumes that CiviMail will be used for the mailings, so CiviEvent can scale to events with large number of participants. If you / your org are interested in the above features AND can help Make It Happen for 4.1 please comment on this post and/or send us an email. While we do think these features are useful, we'd like to ensure that there is sufficient community interest before adding it to an already crowded MIH field for 4.1 :)

If there are other features similar to this that you would like to combine with this MIH and help make it happen, please feel free to add this as a comment also.

CiviEvent is approaching the feature set and functionality of the commercial closed source packages. Together, we can Make It Happen for CiviCRM v4.1

Filed under

Comments

Hi,

What I'd love being able to do:

Chose a template "event invitation" or "thank you participation" or "remember: meeting tomorrow".

 

These templates have token that are for events:

 

"Dear {contact.first_name},

 

I'm inviting you to the event "{event.title}" on the {event.start_date}, this is about {event.description}"

 

By chosing a token  event.xxx or one template that contains one, it adds a field in the send an email form: "event" where I can select (autocomplete with event api ;) and event (for that example, I'll go for the next benelux meetup, id 42)

 

Beside sending the email with the "I'm inviting you to the event 'civicrm benelux meetup'...", it sends the event information as an attachement as a vevent/ical (invitation).

 

When I receive it in gmail or outlook, I got the event detail and "are you going to attend", if I click on yes, it adds the event to my calendar, and sends back to civi the registration, that automatically adds it to the event.

 

What do you think ?

 

Technical detail: Instead of saving the id separately, the tokens are automatically rewritten as {event.title|id=42}, that would introduce the option to add params to token.

these ideas sound great. just two thoughts:

- anticipate the need for flexibility re: the number of emails sent out. some orgs may only want one triggered by a single event or generated from a single date point. others may need multiple emails. so to the degree the emails can be configured for multiple records, the better.

- would love to see some reworking of the event interface as part of this project. there are a lot of little things that could be improved to make the event creation process more intuitive. for example -- choosing whether the event is mapped should be on the location tab. max registrant and "event full" should be on the online form tab. event role should be on the online form tab. etc. basically -- we have some options scattered around that are not where they intuitively "belong"

 

I could put together a wiki doc with recommendations if it would be helpful. with the continual addition of new features, the existing interface is becoming more difficult for new users to understand and absorb.

Alan B (not verified)
2011-03-25 - 08:09

I think this is a great idea, but I am not sure what of this isn't available already or with Rules integration.

We send lots of event related email, scheduling them based on event dates. By far our biggest issues are the lack of easy conditionals and the difficulty of remembering which custom field is which (tokens don't use the custom field name, just its number).

 

1. Pretty sure that the rules integration does not do this out of the box. Currently out of the box, rules provides workflow for CiviMail only

2. The seed sponsor for this is on Joomla, and hence Rules is not currently an option (though if you follow the forum thread, that seemed to be the most logical way to proceed!)

3. Am curious as to how you do "automated scheduling of event emails" based on event dates. Can you elaborate a bit more on this

4. lcdweb: yes, the ability to schedule multiple emails is definitely part of the requirement

5. Due to recent changes in CiviMail (primarily due to ACL, permissioning and cron), the scheduling of email will happen at a very late stage (so we pick up all the event participants)

6. Xavier: event tokens will allow one reminder message template to be used for multiple emails :) The other aspects will depend on how much interest there is in this feature

 

If a mailing is scheduled using CiviMail that is going to a smart group, when the recipients bound to the mailing? When it is created or when it is actually sent?

P.S. We would like to see Rules Integration across CiviCRM, as well as CCK/Views integration. It would make it much easier to extend almost every aspect of the system.

the recipients are bound to the mailing when the mailing is created. This is to resolve and ensure that all ACL issues etc are known and answered at scheduling time. With regard to rules integration, a few folks on this post have expressed an interest in it. However, not too many people contributed to the rules MIH in v3.1 nor has that module received any patches to extend the functionality. So if folks are interested in specific things, ensure you do support the relevant MIH's :)

If one can schedule CiviMail using smart groups when one creates an event (3 mailings: 1 week before the event to those who are not in the registered smart group, 1 the day before the event to those in the registered smart group and one the day after to those in the attended smart group) and expect these messages to go to those who are smart group members as of when the message is being sent, does that not solve the problem?

 

but the core requirement of the major sponsor is to make it easy and avoid the admins to go in and repeat the process for all events created. Also since we dont do late binding right now, you'll need to go in and patch the code to do so. If you do so (and please do account for using the right ACLs), please create an issue and attach your patch

 

It still seems that switching to late binding would be needed for their solution as well, and has many other benefits (there are many reasons that people want to schedule mailings to smart groups where late binding makes sense). Implementing it would allow scheduling announcements sent to smart groups to which users could add themselves on the web, etc.

We want to allow Events to have Contact registrants, to have email reminders for Events, follow-up emails after Events for registrants and no-shows. But implementing inside of CiviCRM may or may not be the way to go. I actually don't know enough to tell. We are working with and evaluating Civi, but not actually using it for day-to-day stuff yet.

 

From the vantage point of a Drupal developer, I see that exposing some CiviCRM components for use by Rules will empower a non-programmer with a lot of configurable functionality. Then exposed fields, entities, and hooks/actions can be composed as necessary. Plus there are side-benefits of more general interfaces which will allow many other Drupal Modules to access CiviCRM components.

 

As such, I have created a module to make Drupal Tokens available for Contacts, and I plan on doing so for Events.

http://forum.civicrm.org/index.php/topic,19558.msg81786.html

 

I've also just started a module to make Event hooks available, so Rules can fire off of them. This is similar to (or an extension to) the drupal/civicrm_rules module which ships with CiviCRM. That module already makes Rules available for Contact and Mailing. Together, these modules can make those objects available to Drupal, so the tokens can be used.

 

Also, it seems like it's possible that these and the few Drupal modules in the Civi distribution should probably be hosted over at drupal.org. They have many other interface modules there and it might encourage more collaboration by opening it to the Drupal community. Just a thought.

 

Sarah Gladstone (not verified)
2011-03-26 - 15:02

A frequent request I hear is that the event planner wants to be be able to do a "Find Participants" search ( Or an "Advanced Search" with "Display Results As" set to Participants)

then in the list of batch actions, select the action "Send email to contacts" and then compose a message using event-specific mail merge tokens.

Would this use-case be part of the scope of this project?

 

but to a large extent will depend on the goals and needs to the key seed sponsors

 

Would be great if you can get the folks making the frequent requests to help make this happen

 

lobo

Yes, I realize this alienates Joomla users, but Drupal Rules is very comprehensive, extensible, documented and well maintained.  It would be unfortunate if site managers have to manage two sets of rule logic.  We don't use joomla, so I'm obviously biased.    

 

Slightly but not fully off-topic: I'm currently developing a spec to either provide Drupal Notifications module set with a CiviMail send method, or less likely, extend CiviMail rules integration and Notifications Rules integration so that notifications content can be sent via CiviMail.

In general I think there is a need to improve the ability to send out multiple emails. However, it might be better to develop this more generally so it can support what marketers term a campaign: a target list of contacts, a set of bulk email templates, and a set of conditions for sending the contacts the templates (e.g. first invitation, second invitation to non-responders for a week after campaign, third invitation to non-responders scheduled for a week before end of campaign, immediate thank you emails to responders, wrap up thank you emails to responders, etc.). The idea of scheduling a series of communications with respect to a date and some other criteria, whether it be donating, becoming a member, or signing up for an event, is very powerful and useful.

This project will be a nice addition to CiviCRM. Our organization will be migrating to CiviCRM this fall to primarily replace our event registration system and our current routine includes the sending of reminder messages before (or on the day of) an event and many times a thank you message after an event. Of course these are currently being sent manually. Also, being able to schedule these based on role or status will add some flexibility. It would also be nice if there was also a way to include other parameters, such as if an event is active and to automatically “un-schedule” the email messages if the event has been canceled (right now “event status” will likely be accomplished in our implementation with custom data – although this would make a great enhancement down the road).

Anonymous (not verified)
2012-05-22 - 23:01

Hi guys,

Sorry if I'm being ignorant here but what's the status of this potential Make-It-Happen project?

Got a client very interested in this style of functionality but currently working on a relatively old version of Civi.

Thanks for any info.