Automated QR Code Ticket Generation on Event Signup

Aug 6, 2025·5 Minutes Read

What You'll Have When Done: A fully automated system that monitors your Google Sheets for new event signups, generates unique QR code tickets with personalized information, and updates your spreadsheet with the generated QR code.

Prerequisites

Before you begin, make sure you have:

  • A PDF.co API Key (Get yours here)
  • Google Sheets with OAuth2 credentials configured in n8n
  • Google Drive OAuth2 credentials configured in n8n
  • An n8n instance (cloud or self-hosted)
  • A Google Sheet for event signups with the following columns:
    • Timestamp
    • Name
    • Email
    • Event Name
    • Ticket ID
    • QR Code (this will be auto-populated)
  • A Google Drive folder for storing generated QR code tickets
  • A PDF template for your tickets (uploaded to PDF.co Built-in File Storage)

Quick Start Options

Option A: I Want It Working Now

  1. Import this workflow template → Download JSON File
  2. Connect your Google accounts in n8n (Sheets, Drive)
  3. Add your PDF.co API key
  4. Set up your Google Sheet with the required columns
  5. Upload your ticket template to PDF.co and get the filetoken link
  6. Configure the folder for QR code storage
  7. Test with sample signup data
  8. Activate and let it run

Option B: I Want to Build It Step-by-Step

Follow the 6-step guide below to create the automation from scratch.

What This Automation Does (Overview)

  1. Monitors your Google Sheet for new event signups
  2. Generates a QR code using the unique Ticket ID
  3. Creates a personalized PDF ticket with attendee information and QR code
  4. Downloads the generated ticket from PDF.co
  5. Uploads the ticket to Google Drive for storage
  6. Updates the original spreadsheet with a link to the QR code

Step-by-Step Build Guide

Step 1: Monitor for New Event Signups

Node: Google Sheets Trigger

Settings:

  • Trigger On: Row Added
  • Document from List: Select your event signup Google Sheet
  • Sheet from List: Choose the appropriate sheet (usually Sheet1)

What This Does: Automatically detects when someone new signs up for your event by monitoring new rows added to your Google Sheet.

Success Looks Like: The trigger activates immediately when a new signup is added, capturing all the attendee information (Timestamp, Name, Email, Event Name, Ticket ID).

Step 2: Generate QR Code from Ticket ID

Node: PDF.co API → Barcode Generator

Settings:

  • Value: ={{ $json['Ticket ID'] }} (uses the Ticket ID from the signup)
  • Barcode Type: QR Code (default)

What This Does: Takes the unique Ticket ID from your signup form and converts it into a scannable QR code that can be used for event check-ins.

Success Looks Like: PDF.co processes the Ticket ID and returns a URL to the generated QR code image.

Note: To learn more about the Barcode Generator API, visit PDF.co API Docs.

Step 3: Create Personalized PDF Ticket

Node: PDF.co API → Add Text/Images to PDF

Settings:

  • PDF URL: Your uploaded PDF template filetoken link
  • Text Annotations:
    • Attendee Name: ={{ $('Google Sheets Trigger').item.json.Name }}
      • Position: x: 52.14, y: 136.3
      • Font: Verdana, Size: 16
    • Event Name: ={{ $('Google Sheets Trigger').item.json['Event Name'] }}
      • Position: x: 40.33, y: 43.19
      • Font: Verdana, Size: 25
    • Ticket ID: ={{ $('Google Sheets Trigger').item.json['Ticket ID'] }}
      • Position: x: 81.88, y: 213.14
      • Font: Verdana, Size: 12
  • Images:
    • QR Code: ={{ $json.url }} (from previous step)
      • Position: x: 465.18, y: 19.63
      • Size: 126.28 x 157.06

What This Does: Takes your PDF ticket template and overlays it with personalized information from the signup (name, event, ticket ID) plus the generated QR code.

Success Looks Like: PDF.co creates a customized ticket PDF with all attendee information and QR code properly positioned on your template. For more information, visit our API Docs.

Tip: Use the PDF Inspector tool to easily find and fine-tune the placement of text and images on your PDF template.

Step 4: Download the Generated Ticket

Node: HTTP Request

Settings:

  • Method: GET
  • URL: ={{ $('PDFco Api1').item.json.url }} (from the ticket generation step)

What This Does: Downloads the finalized ticket PDF from PDF.co's servers so it can be uploaded to your Google Drive storage.

Success Looks Like: The personalized ticket PDF is downloaded and ready for storage.

Step 5: Store Ticket in Google Drive

Node: Google Drive → Upload File

Settings:

  • Input Data Field Name: data
  • Parent Drive From List: My Drive
  • Parent Folder From List: Select your "QR Code Storage" or designated ticket folder

What This Does: Saves the generated ticket to your Google Drive for organized storage and easy access.

Success Looks Like: The ticket PDF appears in your designated Google Drive folder with appropriate naming.

Step 6: Update Spreadsheet with QR Code Link

Node: Google Sheets → Update Row

Settings:

  • Document From List: Same spreadsheet as Step 1
  • Sheet From List: Same sheet as Step 1
  • Mapping Column Mode: Map Each Column Manually
  • Column to Match On: Ticket ID
  • Columns to Update:
    • Ticket ID: ={{ $('Google Sheets Trigger').item.json['Ticket ID'] }} (matching column)
    • QR Code: =IMAGE("{{ $json.webContentLink }}") (Google Sheets IMAGE function)

What This Does: Updates the original signup row with a visual QR code that displays directly in the spreadsheet for easy reference.

Success Looks Like: The QR Code column in your spreadsheet shows the actual QR code image for each attendee.

Congrats! You've created a fully automated event ticketing system that generates personalized QR code tickets for every signup. This system scales automatically and provides professional-looking tickets with zero manual work.

Built something cool with this workflow? Share it with us @pdfdotco

Related Tutorials

See Related Tutorials