SYSTOPIA Extension of the Month #20: Event Check-in

Opublikowane
2025-12-01 08:36
Written by
SYSTOPIA - member of the CiviCRM community - view blog guidelines

In our “monthly” series we want to showcase helpful CiviCRM extensions SYSTOPIA has developed with and for the open source community. Event-Check-in is one of those. You might guess what the extension does from its name. But how can you ever know for sure unless you skim-read this blog post?

What does the extension do?

Event Check-in helps your organization managing attendance at CiviCRM events by checking in participants on site. The extension generates check-in links and QR codes for participants. It provides a form for authorized users to check-in event participants after scanning their QR code. It also offers API functions for verifying tokens and registering participants.

How do you use it?

1. Configure settings

After installation, first visit the settings page (/civicrm/admin/eventcheckin/settings) for basic configuration.

You can configure the participant status for and after check-in and which data to display on the check-in screen.

Screenshot CiviCRM > Administer > Event Check-in Configuration

3. Send check-in links or QR codes

To send out your check-in codes to participants, create a message template with a check-in token and send it to your participants. {$event_checkin_code_img} is the token you’d want to generate a unique check-in-link presented as a QR Code with fixed width.

In conjunction with the Custom Event Communication extensions (de.systopia.eventmessages), links and QR codes can be embedded in e-mails or documents to create automated workflows. It will also give you a handy list with all available tokens: /civicrm/eventmessages/tokenlist.

A combination of extensions allows you to create event admission tickets (layouted with CiviOffice), which contain a check-in token (generated by Event Check-in), are attached in an email (erh, you’ll also need Mail Attachment for that) which is sent out when your participants' status change to ‘registered’ (a rule set with Custom Event Communication). But let’s focus on what this extension does for now...

2. Create a user account with check-in permissions

In preparation for your event, create a role that has permission to check in participants. In a data-conscious organization the aim is to check-in as many participants as possible without granting every helping hand access to CiviCRM. However, it often makes sense to have someone on site who has comprehensive access to CiviCRM to change details in the registration or contact information if necessary.

4. Ready to check-in?

All persons who scan the QR codes at the event, e.g. via mobile phone, must be logged in with an account that has the "Check-In Event Participants" permission. Once they scan the code, they can check the participant details and set their status to “attended”.

What is it good for?

Events are integral to nonprofit work. To raise awareness about your mission and connect with members and communities in person, your events deserve several hundred or thousand participants. With numbers like this, we do not want to check them all in manually and set their status to “attended.” Instead, we want to scan QR codes on the automatically sent tickets and make life easier for ourselves and the participants. Thankfully, CiviCRM has a comprehensive set of features to help nonprofits manage large and successful events from one place. If you are already familiar with Event Messages and Event Invitation, Event Check-in is a handy addition to make your events run a little bit smoother!

Anything else?

Not to complicate things further, but to whom it might concern: this extension can also be used with a Drupal endpoint within the CiviRemote framework.

As always: This is free software, and it's hard and often unpaid work to develop and maintain it. If you find it useful, please consider making a financial contribution. You can reach us at info@systopia.de.

Thank you for reading. Feel free to get in touch with us for any questions or feedback.

Links

Filed under