logo
QR Codes•

QR Code Tickets: One Code per Attendee That Expires After the Event

How to give every attendee their own QR code ticket by email as soon as they register, count each scan and stop the code working after the event.

Avatar for undefined
CodeQR Team
Content Team

A QR code ticket is a QR code that belongs to one attendee. Create it when the person registers, send it to them by email, and set it to stop working after the event. In CodeQR that is a dynamic QR code with an expiration date, which needs the Starter plan or above. A Make template can do the whole chain for every new registration: create the code, write the ticket link and image back to your sheet, and email the code from Gmail.

What a QR code ticket is

A ticket here is a code that opens a page of your choice and carries a short link that is unique to one person. It does not take payment or reserve a seat. Because each attendee has their own code, you can tell tickets apart, count scans for each one and switch a ticket off after the date you set.

Our page on a QR code for event registration covers a different case: one code, printed on a poster, that opens the sign-up form for everyone. A ticket is what you send after that form is filled in.

Why each attendee needs their own code

With a single shared code, every scan looks the same. With one code per attendee, a scan tells you which ticket was opened. It also lets you change where one ticket leads without touching the rest.

A per-attendee code also means a personal page is possible. The code can open a ticket page, a check-in form or an event page, depending on the address you give it, and that address can be different for every row.

What the ticket opens

Pick the destination before you build anything, because it decides what the code is for:

  • A check-in form, where your staff confirm the attendee's name.
  • An attendee page with the schedule, the room and the person's own details.
  • The event page, if all you need is the code and its scan count.

Each registration row carries its own Ticket URL, so you can point every ticket at a different page. Keep the address the same across all rows if one page is enough.

How the Make template works

The template starts from a registration list in Google Sheets with a Name, an Email and a Ticket URL for each person. When a new row arrives, it creates a dynamic QR code that expires on the date you set, writes the ticket link and the PNG image link back to the row, and sends an email with the QR code from Gmail.

Because the format is dynamic, the printed pattern holds a short link. That link can be edited later in CodeQR, and every scan is counted. Our post on whether QR codes expire explains static and dynamic codes in more detail.

Set the expiry date

Choose the date when the ticket should stop working, usually the end of the event. You enter it once in the template as a date and time in ISO 8601 format, such as 2026-12-31T23:59:00Z, and it has to be in the future when each ticket is created. After that date, a scan opens CodeQR's Expired QR Code page instead of your destination.

Expiry needs the Starter plan or above. On the Free plan, the API refuses an expiry date with a 403 error. The pricing page lists the plans.

Counting scans per ticket

Every scan of a dynamic code is counted against that code. Since each ticket has its own, you can see how often it was opened.

Any scan counts, including the attendee scanning their own ticket to see it, and a staff member scanning at the door. A count of two does not mean two people. Use scan counts as a signal, such as which tickets were never opened. For attendance, use the check-in form.

Who this suits

Per-attendee tickets fit workshops, meetups, classes and small conferences, where you already collect a name and an email at registration and want each person to arrive with something they can show at the door. They matter less for an open event with no sign-up, where one code on a poster is enough.

What to do on the day

Decide the door routine before the event. One person at the entrance scans each ticket with a phone, and the code opens the page you chose, such as the check-in form. Brief your staff on two cases: an attendee who cannot find the email, and an attendee whose code shows the Expired QR Code page. For the first, search the sheet by name or email and open the Ticket URL from that row. For the second, check the event date and the expiry you set.

What this costs in plan terms

Each ticket is a dynamic QR code, and dynamic codes count toward the monthly QR code limit on every plan. Before a large event, compare your attendee count with the limit on your plan on the pricing page.

On the Make side, each module run counts as an operation, so a large registration list needs a Make plan with enough monthly operations. The templates work on every Make plan.

Timing and testing

The Google Sheets trigger checks for new rows on a schedule, every 15 minutes in the template. A ticket is therefore not instant: an attendee who registers will get their email after the next check. Say so on the confirmation page, for example, "Your ticket arrives by email within about 15 minutes."

Before you open registration, add a test row with your own email, scan the code from the email and check that it opens the page you chose.

Set up your account

You need a CodeQR account on the Starter plan or above and a connection between CodeQR and Make. Create a CodeQR account, then follow our help article on connecting CodeQR to Make.

Use the Make template for event tickets

Open the Create and email a ticket QR code for each new registration template. Row 1 of the sheet holds the headers Name, Email, Ticket URL, QR Code ID, Ticket Link and QR Code Image. The guided setup asks for your Google connection and the sheet where registrations land, your CodeQR connection, the Ticket URL and Name columns, the date and time tickets stop working, and your Gmail connection with the email's subject and wording.

When you turn it on, Make asks where to start. Choose From now on, so only new registrations get a ticket. Choose All only if everyone already in the sheet still needs a ticket, because each of those rows gets an email, test rows included.

QR code ticket questions

Yes. A dynamic QR code can have an expiration date. After that date, a scan opens CodeQR's Expired QR Code page. Expiry needs the Starter plan or above.

A ticket for every registration

The Make template creates an expiring QR code for each new registration and emails it from Gmail.