How to Build a QR Code Check-In System With Google Forms and Sheets (No Coding)

You can build a QR code check-in system without programming or buying dedicated attendance software. Create a Google Form, connect it to Google Sheets, and generate a QR code that opens the form on a visitor’s phone. Every completed submission creates a timestamped record you can use to monitor attendance.

This practical guide shows how to set up the entire workflow, calculate attendance totals, identify possible duplicate entries, and prepare a reusable check-in process for an office event, workshop, classroom, or community gathering.

What Is a QR Code Check-In System?

A QR code check-in system lets participants open a digital registration form by scanning a QR code with their phone’s camera.

In this setup, three tools perform different jobs:

Tool Purpose
Google Forms Collect attendee details and check-in submissions
Google Chrome Generate a QR code linking to the form
Google Sheets Store timestamps, count submissions, and review attendance

The workflow is straightforward:

Scan QR code → Open Google Form → Enter details → Submit → Record in Google Sheets

Importantly, scanning the QR code alone does not record attendance. The attendee must submit the form successfully.

This is a lightweight sign-in system, not a secure ticket-validation platform. For events requiring identity verification, staff should check the attendee’s registration or ticket separately.

Step 1: Plan Your Check-In Form

Before opening Google Forms, decide what information you actually need.

For this example, imagine a company organizing a morning training workshop with 30 registered attendees.

Each attendee has already received a unique registration code, such as EVT-101.

Your form needs only three fields:

Question Google Forms field type Required?
Registration Code Short answer Yes
Full Name Short answer Yes
Session Dropdown Yes

For Session, use an option such as "Morning Workshop."

Google Forms automatically records a submission timestamp, so you do not need to ask attendees to enter the check-in time manually.

A registration code helps distinguish attendees who share the same name and makes duplicate submissions easier to identify.

If you do not issue codes, you can use names for a simpler sign-in sheet. However, name-based counts should not be treated as reliable proof of unique attendance.

Privacy tip: Avoid collecting phone numbers, identification numbers, or personal email addresses unless they are necessary. Add a brief notice explaining why information is collected, who can access it, and when it will be deleted.

Step 2: Create Your Google Form

Visit Google Forms and create a blank form.

Use the following configuration.

Form title: Office Training — QR Check-In

Form description:

Welcome! Please enter your registration details to record your attendance. Your submission time will be saved automatically. This information is used only for event attendance administration and will be deleted according to the organizer’s retention policy.

Add the three questions from Step 1. Mark each as Required.

Then open Settings → Responses.

For a public workshop, consider these settings carefully:

  • Limit to 1 response: Leave off if attendees may not have Google accounts. Enabling it requires Google sign-in and limits submissions by account, not registration code.
  • Collect email addresses: Leave off unless you actually need email addresses. Verified email collection introduces an account-based identification requirement.
  • Allow response editing: Leave off for a simple attendance record unless corrections by attendees are part of your process.

Preview the form on a phone-sized screen. Keep questions short enough to answer while standing at a reception desk.

Finally, publish the form and configure responder access so your intended attendees can open it.

Google’s current Forms publishing guidance explains the Publish, Share, and responder-access controls. An unpublished form cannot accept ordinary responder submissions.

Step 3: Generate Your QR Code Without a Paid Tool

Once the form is published, copy its responder link, not the editing URL from your browser.

In Google Forms, use the Published or Share control to copy the responder link.

Then:

  1. Open that responder link in Google Chrome.
  2. Open Chrome’s menu.
  3. Select Cast, save, and share → Create QR code.
  4. Download the QR code image.
  5. Insert it into a printed sign or reception display.

Chrome provides built-in QR code sharing, so this workflow does not require a paid QR-code generator.

The QR code represents the form’s URL. Anyone who receives the code may be able to open the form, subject to its access settings.

For this basic setup, use one form and one QR code per event. That keeps attendance records straightforward and avoids mixing unrelated sessions.

If you replace the form with a different URL, create a new QR code rather than assuming the old printed code will redirect automatically.

Optional: make a pre-filled responder link

If a value such as the event or session should already appear in the form, Google Forms offers a Pre-fill form option. Fill the relevant fields, generate the pre-filled responder link, and create the QR code from that link instead of the ordinary blank-form link. A pre-filled value is convenient, not proof of identity; attendees may be able to edit it. Keep the code linked to a published responder URL and do not encode the editor URL.

See Google’s Forms sharing and pre-fill instructions for current interface steps. Menu names and available sharing settings can vary by account.

Step 4: Connect Google Forms to Google Sheets

In your form, open the Responses tab.

Choose Link to Sheets or the response-destination option, then select Create a new spreadsheet.

Name it:

Office Training — Attendance Records

Google Sheets creates a response sheet containing the automatically generated timestamp and your form questions.

For this example, the columns should be:

Column Field
A Timestamp
B Registration Code
C Full Name
D Session

If your form questions appear in a different order, your actual column positions will differ. Use the columns shown in your response sheet when entering formulas later.

Do not delete the original response columns or use them for unrelated calculations.

Create another tab called Attendance Summary. Keep all reporting formulas there, separate from the raw submissions.

The linked spreadsheet is a separate Google Drive file. Restrict its sharing permissions to staff who need the records; a public responder link is not a reason to make the spreadsheet public.

For more advanced spreadsheet reporting, see our Google Sheets QUERY function guide.

Step 5: Create a Copy-Ready QR Check-In Sign

A visitor should understand what to do without asking the receptionist.

You can copy this layout into Google Docs and place the downloaded QR code in the center:

OFFICE TRAINING — CHECK-IN

Welcome to today’s workshop!

Scan the QR code below to check in.

[Insert your QR code image here]

  1. Open your phone’s camera.
  2. Scan the QR code.
  3. Enter your registration code and name.
  4. Tap Submit.
  5. Show the confirmation screen to reception if requested.

Need assistance? Please ask our reception staff.

Keep the QR code large enough to scan comfortably, and avoid placing it behind reflective glass.

Position the sign near the entrance. Have a staff-operated device or paper list available for attendees whose phones cannot scan the code or connect to the internet.

A successful QR scan opens the form; it does not guarantee that the participant completed registration.

Step 6: Build an Attendance Dashboard in Google Sheets

Now turn raw submissions into useful numbers.

Suppose four sample responses appear in your linked sheet:

Timestamp Registration Code Full Name Session
09:01 EVT-101 Alex Wong Morning Workshop
09:03 EVT-102 Jamie Lee Morning Workshop
09:05 EVT-101 Alex Wong Morning Workshop
09:07 EVT-103 Morgan Chan Morning Workshop

The third response uses the same registration code as the first. It may be an accidental second submission.

On the Attendance Summary tab, enter the following labels and formulas.

A2 — Total submissions

In B2:

=COUNTA('Form Responses 1'!B2:B)

This counts nonempty registration codes.

A3 — Unique registration codes

In B3:

=IFERROR(COUNTUNIQUE(FILTER('Form Responses 1'!B2:B,'Form Responses 1'!B2:B<>"")),0)

This excludes blank entries before counting distinct codes.

A4 — Possible extra submissions

In B4:

=B2-B3

A5 — Morning workshop submissions

In B5:

=COUNTIF('Form Responses 1'!D2:D,"Morning Workshop")

For the example above, the results are:

Metric Result
Total submissions 4
Unique registration codes 3
Possible extra submissions 1
Morning workshop submissions 4

These formulas update as the referenced response columns grow. Replace Form Responses 1 with your actual tab name if necessary.

The results are administrative indicators, not identity verification. A mistyped registration code can appear unique, and a reused code does not tell you who actually entered it.

Step 7: Identify Duplicate Check-Ins

A small event can review duplicate codes manually. For a larger attendance list, add a simple helper column.

On a working copy of your response data, enter this formula in the first data row of a column named Review Status:

=IF(B2="","",IF(COUNTIF($B$2:B2,B2)>1,"Review duplicate","First check-in"))

Copy it down the working column.

The formula marks the first appearance of a registration code as "First check-in" and later appearances as "Review duplicate."

For EVT-101, the first row is marked as the first check-in and the second row is flagged for review.

This is not a guarantee of fraud or an automatic rejection. Reception staff should decide whether the second submission is a correction, a duplicate, or a genuine issue.

A separate working sheet is preferable to modifying the response destination directly. If you use manually filled formulas, newly appended rows may need the formulas extended.

Copy-ready event-day run sheet

This is an illustrative organizer checklist; replace each placeholder with the actual event details.

Event: [event name]
Date and check-in window: [date / start-end time]
Form owner: [name or role]
Reception lead: [name or role]
Published responder link: [URL]
QR sign location: [reception / entrance]
Response sheet owner: [name or role]
Duplicate review rule: [who checks repeated codes]
Escalation contact: [name or role]
After-event action: stop responses, review exceptions, export only if needed,
and apply the organization's retention and access policies.

Test the sign on an attendee’s phone under the intended account-access rules before the event opens. A form submission records a response; it does not by itself verify the person was physically present.

Step 8: Operate the System on Event Day

Assign one person to monitor the form responses and another, if needed, to help attendees.

Before opening reception, confirm that the form is published, the QR code points to the responder form, and the linked spreadsheet is accessible to the staff member responsible for attendance.

During check-in, staff can review the submission count and investigate repeated codes. They should not assume that a submitted form proves physical attendance when the link can also be opened remotely.

After the event, stop accepting new responses using the form’s Published or response-management controls.

Keep the records only as long as necessary for the stated attendance purpose. Restrict file sharing, remove unnecessary copies, and apply your organization’s privacy and retention requirements.

This workflow is appropriate for simple event sign-ins. It is not designed to replace access control, payroll timekeeping, regulated attendance verification, or secure event ticket scanning.

Common Problems and How to Fix Them

Problem What to check
QR code opens the wrong page Confirm that you encoded the published responder URL, not the form editor URL
Attendee is asked to sign in Review account restrictions, verified email collection, and Limit to 1 response
Responses are not visible in Sheets Check the form’s linked spreadsheet and response destination
Duplicate count looks too high Look for reused or mistyped registration codes
QR code scans but no attendance appears Confirm that the attendee submitted the form
Staff cannot open the spreadsheet Check spreadsheet permissions separately from Form access

For a different no-code workflow involving request ownership and follow-ups rather than attendance, see our Google Forms Request Tracker tutorial.

Frequently Asked Questions

Can I create a QR code check-in system for free?

Yes. The basic workflow uses Google Forms, Google Sheets, and Chrome’s built-in QR code feature without requiring paid attendance software. Account or organizational policies may restrict available sharing options.

Does scanning the QR code automatically check someone in?

No. The QR code opens the Google Form. The attendee must submit the form successfully before a response is recorded.

Can attendees check in without a Google account?

They generally can if the published form allows the intended public audience and does not require account-based features such as Limit to 1 response or verified email collection. Organization administrators may impose additional restrictions.

Can the same QR code be used every day?

Yes, if the responder URL stays the same and access remains enabled. However, a single reused form combines submissions unless you distinguish dates or sessions. Separate event forms are easier to administer for occasional events.

Can Google Forms prevent fake or duplicate attendance?

Not reliably by itself. Registration codes and spreadsheet checks help identify suspicious entries, but they do not authenticate the person submitting the form. Use staff verification when identity matters.

Can I pre-fill an event or session field in a Google Form QR code?

Yes. Generate a pre-filled responder link in Google Forms and make the QR code from that link. Pre-filled values are for convenience and do not verify the attendee’s identity.

Who should have access to the linked response spreadsheet?

Only authorized event staff who need the attendance data. Form responder access and spreadsheet sharing permissions are separate settings.

What should I do with the form after an event ends?

Stop accepting responses when appropriate, check possible duplicates, restrict access, and retain or delete records under the organization’s policy.

Final Thoughts

A QR code check-in system is a practical first digital project for teams replacing paper attendance sheets.

With Google Forms collecting submissions, Chrome generating the QR code, and Google Sheets providing the records, you can run a basic office or event check-in process without coding.

Start with one event, clear registration fields, a simple attendance summary, and a human review process for exceptions. Once the workflow is familiar, you can apply the same no-code principles to visitor intake, equipment booking, and internal administrative requests.

Explore more beginner-friendly projects in the Just Simple Work Practical AI & Digital DIY Hub.

Official References