How was this made with CiviCRM?

Introduction #

In this use case we have a Drupal 9 install with CiviCRM in the same environment, using the Drupal Module ‘CiviEntity’ as the main engine. CiviCRM Entity is a Drupal module which exposes many CiviCRM entities as true Drupal entities. That means that almost any module that can use Drupal entities can also access and manipulate CiviCRM data, Drupal style.

This use case is easy when you look at it from a user perspective and is therefore helpful for the visitors of the website and also for the back office users who need to create new events. When you are familiar with Drupal functionality like creating webforms, views, content types (and we assume you are) this use case is straightforward and only in video 1 we use CiviEntity. Since you need to do quite a few things to create this use case, we have created a drawing showing that process step by step.

How was this made - Events

Modules and extensions used in this use case #

CiviCRM Extensions: #

Drupal modules: #

  • CMRF Core – CMRF is a CiviCRM remote integration toolkit.
  • CMRF Call Report: Shows the CiviCRM Api calls in a report (comes with CMRF, needs to be switched on)
  • CMRF Form Processor: – for the event registration form
  • CMRF Views: –> show participant data from CiviCRM in a Drupal View ((comes with CMRF, needs to be switched on)
  • CiviCRM Entity: used it to create a form to add a new event in Drupal.
  • Drupal Webforms: to create the event registration form
  • Webform CiviCRM integration: CiviCRM event fields available in webforms, used for event registration form
  • Mollie for Drupal: Enables online payments in Drupal through Mollie Payment provider
  • Mollie Support for CMRF: enables Mollie in this context (comes with CMRF, needs to be switched on)
  • Bootstrap layouts and Bootstrap lay out builder: Used to manage the display of the content types and CiviEntity page

How was this made – in Drupal #

Creating New Events #

Step 1A: To allow users from your organisation to create new events in a more user friendly way, you can set up a form with CiviEntity in Drupal.

Managing your Event Page Display #

Step 1B: On the tab ‘Manage Display’ you can create a page that shows how a single event is presented. In our use case we want to display the following information: 

Event description, start and end date, webform for people to register (which we will show in step 2) and an overview of the participants who have already registered (which we will show in step 3). 

For this step we added the Drupal Theme Bootstrap and the modules Bootstrap layout en Bootstrap lay out builder. 

Create a webform to Register Participants #

Step 2: Create a webform for participants to register for an event.

Create a View of Registered Participants #

Step 3: The last step to set up the display page for a single event is to add the list of participants that have already subscribed to the event.

Add a button “Add New” to the View #

Step 4: This button is used for people in the back office to add a new event that Save the Forest is organising. Instead of having to go through all the fields in CiviCRM, it is more user friendly to do it on the website. 

Create a View “Upcoming Events” #

Step 5: This view will show all upcoming events nicely displayed in a block, and only accessible for the people in the back office.

Create the Content Type “Event” #

Step 6: The last step is to create the content type Event where we then display the view of upcoming events and where you can add new events. 

How was this made – in CiviCRM #

Set up the Extended contact matcher #

The “Extended Contact Matcher” allows you to map incoming contact data to an existing contact, and even update some of the attributes right away. If the contact doesn’t exist, a new contact will be created instead. We use this extension to try to avoid duplicate contacts as much as we can. 

With the extended contact matcher you can 

  • determining how contacts are matched.
  • recording an activity when contacts are created/updated
  • adding contacts to groups or adding a tag.

Tokens for mail template #

In the email template used for the confirmation of the registration are tokens showing event and participant information. Some of the tokens used in the email template come with CiviCRM by default, like first name or address. The Event and Participant tokens need to be created. For that we use the data processor and the extension ‘Data Processor Token Output’ 

Mail template #

This template we used for the Event Registration confirmation was created with Mosaico, an extension that makes creation of templates more user friendly. 

Form processor to manage the participant registration #

For general information on the Form Processor, we refer you to the use case of Fundraising. The Form Processor shown in this video is used to process the event registration from the website.

Report ‘Event participants’ #

For the back office to manage the participants, we have created a report with all participants, the name of the organisation (if applicable) and the amount they have paid in case of a paid event. We used the Data Processor to create this report. It is a powerful and flexible tool that gives you possibilities to link different data sources, add columns, decide on the order of columns and abilities to filter the search criteria.

It would go too far to show you complete creation of this report, since every Data Processor will be different. To give you an idea we will show you how the relationship between the participant and the employer is set up, how to add or edit a column and how to add and set filters in the report. 

Creating name badges #

Using the report Event Participants, we can create name badges. 
In this video we demo how to create your own badges with the look and feel of your organisation of for a specific event. 

Report ‘Event Income Summary’ for the managers #

In the video about the Event tokens, we already explained how a Data Processor is set up. In this video we show you how to use the aggregation function to add up the event revenue and to calculate the total cost of an event.