Out of the box Rocks check-in works with barcode scanners. This can be a great feature for allowing event guests the ability to check-in from a QR code in their confirmation email, or parents from your church's app. Generating the QR codes for your guests to use can seem impossible requiring development or a plug-in. The solution might be much easier than you think.

First let's discuss what data check-in is looking for in a QR code. If you edit a person's profile in Rock you will notice a section titled "Alternate Identifiers" with one or more 14 character identifiers. This is what Check-In is trying to match against when you scan in a code. We can use lava to get this for any given person. You will need to enable Lava Entity Commands if you haven't already.

The next issue is that even if you can get the Alternative Identifier with lava you will still need to generate the QR code. Thankfully, there are free services that will generate codes for us. Simply send them some text and they will send you back an image of your code.

Here's the Lava:

{% assign personAliasId = Person.PrimaryAlias.Id %}
{% personsearchkey where:'PersonAliasId == {{personAliasId}}' limit:1 %}
<img src="https://api.qrserver.com/v1/create-qr-code/?size=150x150&data={{personsearchkey.SearchValue}}">
{% endpersonsearchkey %}

You will need to have a Person merge object for this to work as is. If you are sending an email this Person will be the recipient. If you are sending this as part of a registration confirmation you will need to get the personAliasId from the registrant.