Tracking who arrived, at what time, and whether they were actually present is one of the most tedious — yet most important — tasks in any organization. Manual spreadsheets, sign-in sheets, and expensive biometric terminals all create friction. A QR Code fixed to the wall solves this with the smartphone everyone already carries.
The idea is straightforward: a printed QR Code at the entrance opens a form (Google Forms, Typeform, or an internal system) when scanned. The record is timestamped automatically, with no queues and no pen. This guide shows you how to set it up from scratch.
How QR Code check-in works
The QR points to a link — usually an online form. When the employee, student, or participant scans it:
- The phone opens the form directly in the browser.
- The person fills in their name (or is identified automatically via a logged-in email).
- The submission captures the server timestamp — real time, tamper-proof.
If you use a dynamic QR, you can swap the destination link at any time without reprinting. Useful for reusing the same poster across multiple events or class sessions. Understand the difference between static and dynamic QR.
Use-case scenarios — table
| Scenario | Who scans | Suggested destination link |
|---|---|---|
| Employees (clock-in/out) | Staff member at reception | Internal time system or Google Forms |
| Students in class / training | Student at the classroom door | Google Forms with pre-filled email |
| Event participants | Guest at check-in desk | Event check-in form + event name |
| Volunteers | Volunteer on arrival | Google Sheet via AppScript |
| Gym / fitness studio | Member entering class | Management system or Forms |
| Coworking / shared space | Member at entrance | Booking or room-usage log |
Every scenario can use the same generator — only the destination link and the configured form differ.
Step-by-step: creating a check-in QR Code
1. Build the form
Use Google Forms (free) or any system that produces a unique link. Minimum fields:
- Full name (or login email)
- Record type: Clock-in / Clock-out (for time tracking)
- The timestamp is captured automatically by Forms.
Tip: enable "Collect email addresses" in Google Forms — this forces a Google login and eliminates fake entries.
2. Copy the form link
In Google Forms, click Send → link icon → Copy. The link ends in /viewform.
3. Generate the QR Code
Go to the Code2Scan QR Code generator and:
- Paste the form link.
- Choose dynamic QR if you want to track scans or swap the link later.
- Customize colors and add a logo if desired.
- Download as PNG (simple printing) or SVG (vector quality for banners).
4. Print and position
- Minimum size: 3 cm × 3 cm for comfortable reading. For a corridor banner, go to 10–15 cm.
- Position at eye level, in good lighting.
- Add a short instruction: "Scan to register your attendance".
- Laminate or use a card holder for durability.
5. Test before going live
Scan it yourself on both iPhone and Android. Confirm the form opens, fills, and submits correctly. Check that the response appears in the Forms spreadsheet.
How to prevent fraud (someone scanning from home)
This is the critical point. A QR Code alone does not prove physical presence. Combine it with:
- Geolocation in the form: Apps like Jotform or Google Forms with a script can capture GPS coordinates. If coordinates don't match the venue, the record is flagged.
- Company Wi-Fi: Configure the form to accept submissions only on the internal network. Anyone off-site simply can't submit.
- Selfie photo: Ask for a selfie upload in the form. More friction, but proves presence.
- Dynamic QR with rotation: Change the QR's link each shift via the Code2Scan dashboard. An old link won't work in the next session.
- Daily numeric code: The form requires a code you announce only in person (on a whiteboard, verbally). QR + in-person code eliminates 99% of fraud.
For critical environments (payroll, for instance), combine at least two of these layers.
Common mistakes
❌ Using a static QR when the form changes
If you create a new Forms for every event and the QR is static, you'll have to reprint every time. Use a dynamic QR — swap the destination without reprinting. See how to create a dynamic QR.
❌ QR Code too small
In a busy hallway with variable lighting, a QR below 3 cm fails frequently. Minimum size guide.
❌ Form with no authentication
Without mandatory login, anyone can fill in any name. Enable email collection in Forms or use corporate SSO login.
❌ Not monitoring the data
Generating the QR and never checking the spreadsheet wastes the tool. Set up an email notification for each response or review the sheet daily.
❌ Forgetting to test on Android
iPhones read QR natively from the camera app. Older Androids may need a separate app. Test both.
Related use cases
If you use QR Code for check-in at larger events, see how to combine it with RSVP: QR Code for event RSVP. For school attendance tracking with parent communication, check out QR Code for school. For coworking spaces, see specific details in QR Code for coworking. To collect data with an advanced form, see QR Code with Google Forms.
Summary
- Create an online form with email collection enabled.
- Generate a dynamic QR pointing to that link.
- Print at an adequate size (minimum 3 cm) and position it at the entrance.
- Add an anti-fraud layer (geolocation, Wi-Fi, daily code).
- Monitor responses regularly in the spreadsheet.
- For recurring events, just swap the destination link in the dashboard — no reprinting needed.
Create your attendance QR Code now — free, PNG and SVG export, dynamic QR available.