Automated Event Ticketing, QR Code Generation, and Check-in System - n8n Workflow

A powerful n8n workflow for managing event ticketing end-to-end: registration, automated QR code generation via Google Sheets, Gmail delivery, and real-time check-in validation.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?


  • Event organizers needing a low-cost, automated ticketing backend.

  • Users looking for advanced n8n templates integrating Google Sheets as a database.

  • Developers needing a robust check-in API built with an n8n trigger webhook.

  • Businesses requiring automated email communication using Gmail automation.

Overview

This sophisticated n8n workflow provides a complete backend solution for managing ticketed events without relying on expensive, third-party ticketing platforms. It solves the complex problem of secure ticket generation, distribution, and validation. The system uses Google Sheets as a powerful, centralized database.

The registration process is handled via a dedicated n8n trigger webhook, and the check-in process uses a separate API endpoint for real-time scanning validation. A crucial component of this n8n automation is the scheduled generation of unique, QR-enabled tickets, sent directly via the Gmail n8n node, ensuring attendees receive their secure, individual admission passes. This n8n workflow demonstrates powerful flow control and custom scripting capabilities.

How it Works

The n8n workflow operates in three distinct, connected stages:


  1. Registration Intake (Webhook): A participant submits their registration details via the /v1/register n8n trigger webhook. The Validate Input n8n node validates the data. If valid and the email is not a duplicate (checked against the Google Sheets Register tab via the Get Participant n8n node), the information is stored with a PENDING payment status, and a confirmation JSON is returned.


  1. Scheduled Ticket Generation: The START n8n trigger runs every minute. It fetches rows from the Register sheet where the Payment Status is PAID and Email Sent is NO. The Generate Ticket Data n8n node iterates through the purchased quantity, creating a unique ticket ID for each. It then uses an HTTP Request n8n node to generate a QR code image from the encoded ticket data. The Build HTML Email custom n8n node embeds this QR code base64 data into a professional HTML ticket template. Finally, the ticket is sent via the Gmail n8n node, and the sheet records are updated in both the Register and Tickets tabs, marking Email Sent as YES.


  1. Real-time Check-in (Webhook): When event staff scans a ticket, the data hits the /v1/scanner n8n trigger webhook. The Parse Barcode n8n node extracts the ticket_id. The workflow uses the Get Tickets n8n node to look up the ticket in the dedicated Tickets sheet. The Ticket Available? n8n node checks if the ticket exists and has not yet been scanned. If valid, the ticket status is updated to YES via the Update Ticket Status n8n node, and a success response is immediately sent via the respondToWebhook n8n node. If invalid or already checked in, a corresponding error message is returned.

Installation Guide


  1. Import the n8n workflow: Copy the provided JSON and import it into your n8n instance via the Workflows section to set up these powerful n8n templates.

  2. Google Sheets Structure: You must configure two tabs in your specified Google Sheet: Register (for customer bookings) and Tickets (for individual QR code records). Ensure the column headers match those referenced in the n8n node configurations (e.g., "Email", "Ticket ID", "Checked In").

  3. Credential Configuration:

Google Sheets OAuth2: Set up a Google Sheets credential and connect it to all googleSheets n8n nodes within the workflow.
Gmail OAuth2: Set up a Gmail credential for the Send Email (Gmail) n8n node, which is vital for the Gmail automation part of the n8n template.

  1. Activation: Activate the n8n workflow. Configure your external systems (forms, scanner apps) to use the provided webhook URLs for registration and scanning, triggering the flow.

Node Details

SCAN TICKET (Webhook n8n trigger): Receives the POST request containing the scanned QR code data.
Parse Barcode (Code n8n node): Custom JavaScript used to safely deserialize the QR code JSON string from the payload, extracting the unique ticketid.
Get Tickets (Google Sheets n8n node): Queries the Tickets sheet using the extracted ticketid to check for ticket existence and status.
Ticket Available? (If n8n node): Controls the check-in logic, confirming the ticket exists and is marked as 'NOT YES' (unscanned) in the Google Sheet.
Update Ticket Status (Google Sheets n8n node): Updates the row corresponding to the scanned ticket, setting Checked In to YES and recording the timestamp.
START (Schedule n8n trigger): This periodically running n8n node initiates the ticket generation flow, ensuring paid customers are processed automatically.
Filter Paid Not Sent (Filter n8n node): Filters registrations in the Google Sheet where payment is PAID and Email Sent is NO.
Generate QR Code (HTTP Request n8n node): Calls an external API (qrserver.com) to generate a unique QR code image for each ticket based on the custom data generated by the preceding n8n node.
Build HTML Email (Code n8n node): Constructs a richly formatted, responsive HTML email template, embedding the binary QR code image data generated in the previous step.
Send Email (Gmail n8n node): Executes the final Gmail automation step, sending the completed ticket email to the participant, finalizing this segment of the n8n workflow.

Related n8n Workflows

Free

Nodes: 10 Nodes
Updated: December 26 2025
View all
Created by

Featured*