Loading...
Help Center / Getting Started / Event Check-In (QR & Geo) App Overview

Event Check-In (QR & Geo) App Overview

Event Check-In (QR & Geo) App Overview

Know exactly who showed up to a briefing, training, or town hall — in one tap, with no clipboard and no manual roll-call.


What is Event Check-In?

Event Check-In is the attendance layer of the MangoApps Workforce Calendar app. When an event happens — a shift huddle, a safety briefing, a training session, a town hall — attendees mark themselves present using one of two methods, and the host sees a live roster instead of tallying a paper sheet. It works for both indoor events (a QR on a screen) and outdoor/field events (a location check-in on the phone).

Core Value Proposition:

  • 🎯 One-tap attendance — Attendees check in by scanning a QR or confirming their location; a record lands in under a couple of seconds.
  • 🗺️ Works anywhere — QR for rooms with a screen; geo-fence for jobsites and outdoor events with no scanner.
  • 🛡️ Trustworthy data — HMAC-signed QR codes, single-use badges, and server-side geo anti-spoofing keep attendance honest.
  • 🔗 One list, everywhere — Both methods write the same attendance record, so the roster, compliance reports, and the post-event feedback survey all agree.

Key Concepts (How It Works)

If you only read one section, read this — it explains the model behind the screens, and the distinctions people get wrong.

QR vs Geo — which method, and when

There are two check-in methods, and an event uses at most one of them:

  • QR code — the host shows a code (projected full-screen, or printed as per-attendee badges) and attendees scan it in the Workforce mobile app. Best when there’s a screen or a doorway: rooms, town halls, trainings.
  • Geo-location — the event carries a fence (a center point + a radius in meters) and attendees tap “Check in with my location”; the app confirms their device is inside the fence. Best when there’s no screen: jobsites, outdoor safety briefings, distributed field events.

Both methods produce the same attendance record (method = qr or geo), so downstream — the roster, analytics, the feedback survey’s recipient list — there’s a single, consistent set of attendees regardless of how they checked in.

What makes an event use check-in?

Check-in is not a per-event on/off switch you flip while creating an event. It’s derived from two things:

  1. The event type’s attendance method. An admin sets each event type (Event Types → Attendance) to None, QR, Geo, or Any. An event inherits its type’s method. Any offers both.
  2. The business setting is on. attendance.qr_enabled / attendance.geo_enabled (Calendar → Settings → Attendance, both default on) are the master switches. If QR is turned off business-wide, no event shows QR check-in even if its type says QR.

Geo has a third requirement: the specific event must have a fence set (center + radius). A geo-type event with no fence shows no check-in button to attendees — the app never offers a control the server would reject.

Single QR vs per-attendee badges — they’re different

Both are QR, but they behave differently:

  • The single display QR is one code for the whole occurrence. Everyone scans the same code. It can’t be “used up” — each person’s check-in is kept unique by the attendance record itself (one record per person per occurrence).
  • Per-attendee badges are one printed code per invitee (a PDF, one page each, with a 6-character manual fallback code). A badge is single-use: once scanned, that badge is spent, so a screenshot or a shared photo can’t be reused.

Attendee, host, admin — who does what

  • Attendee (any invited employee): checks themselves in (scan a QR, or tap the geo button). Sees only their own status.
  • Host (the person who created the event, a co-host, or a Calendar Admin — this is event ownership, not a platform role): sees the live count and roster, the inline/full-screen QR, the “Generate badges” action, and — for geo events — a one-click Confirm to mark someone present manually. These host controls return 403 to non-hosts.
  • Admin (Calendar Admin / business admin): configures the Attendance settings and event-type methods/radii. Doesn’t need to be present to manage the feature.

What’s automatic vs what’s manual

  • Automatic: the attendance record on a valid scan/check-in; the live-count push to the host; nonce rotation that invalidates old QRs when the event’s time or location is edited; badge revocation when an invitee is removed; quarterly rotation of the per-business QR signing secret.
  • Manual: the host generating badges, opening Display-QR, or confirming a low-accuracy attendee; the admin setting fences, methods, and toggles.

The validity window

A check-in only counts inside a window around the event: from start − N to end + N minutes, where N is attendance.checkin_validity_window_minutes (default 15, shared by QR and geo). A scan captured offline and synced late is accepted only if the captured time was inside that window — otherwise it’s rejected “Check-in window closed.”

Invited vs walk-in

If a scanner isn’t on the invitee list, what happens depends on attendance.allow_walk_ins (default off): off → rejected “You’re not invited to this event”; on → recorded as a walk-in and flagged in the roster for review.


At a Glance

Perfect For:

  • 🏭 Frontline & field teams — safety briefings and jobsite trainings where no one wants a clipboard (geo check-in needs no infrastructure).
  • 🎤 Town halls & large trainings — project one QR at the door; attendance without a head-count.
  • 🧑‍🏫 L&D and compliance — a trustworthy attendance list that feeds compliance reporting and post-event surveys automatically.

How It Works

QR check-in flow

┌──────────────────────────────────────────────────────────────────────────┐
│                              QR CHECK-IN                                   │
├──────────────────────────────────────────────────────────────────────────┤
│  ┌───────────────┐      ┌───────────────┐      ┌───────────────┐          │
│  │  HOST shows   │──▶   │  ATTENDEE     │──▶   │  SERVER        │          │
│  │  QR (screen   │      │  scans in the │      │  validates     │          │
│  │  or badge)    │      │  mobile app   │      │  HMAC + window │          │
│  └───────────────┘      └───────────────┘      └───────┬───────┘          │
│                                                         ▼                  │
│                                                 ┌───────────────┐          │
│                                                 │ Attendance     │          │
│                                                 │ recorded →     │          │
│                                                 │ host count ++  │          │
│                                                 └───────────────┘          │
└──────────────────────────────────────────────────────────────────────────┘

Geo check-in flow

┌──────────────────────────────────────────────────────────────────────────┐
│                             GEO CHECK-IN                                   │
├──────────────────────────────────────────────────────────────────────────┤
│  ┌───────────────┐   ┌───────────────┐   ┌───────────────┐   ┌──────────┐ │
│  │ ATTENDEE taps │─▶ │ Device GPS →  │─▶ │ Fence check   │─▶ │ Recorded │ │
│  │ "Check in     │   │ lat/lng/acc   │   │ + anti-spoof  │   │          │ │
│  │ with location"│   │               │   │ (server)      │   └──────────┘ │
│  └───────────────┘   └───────────────┘   └──────┬────────┘                │
│                                                 │ low accuracy / timeout   │
│                                                 ▼                          │
│                                          ┌────────────────┐                │
│                                          │ HOST CONFIRMS  │                │
│                                          │ manually       │                │
│                                          └────────────────┘                │
└──────────────────────────────────────────────────────────────────────────┘

Key Features

📱 QR Code Check-In

Feature Description
Signed, time-bound QR Each occurrence gets a unique code carrying an HMAC signature so it can’t be forged.
Display-QR mode A full-screen QR the host projects/screen-shares; auto-refreshes to stay current.
Per-attendee badges A print-ready PDF, one single-use QR per invitee, each with a 6-character manual fallback code.
Replay-proof A repeat scan reads “Already checked in” — never a duplicate; badges are single-use.

Use Case: A safety officer projects the Display-QR on the bay TV; the crew scans on the way in; the officer watches the count climb to 14/14.

💡 Pro Tip: Editing an event’s time or location automatically rotates its QR — old screenshots stop working, so reschedules can’t be gamed.

🗺️ Geo-Location Check-In

Feature Description
Per-event fence Center point + radius (default 100 m; per-event-type override). Set it by typing coordinates or “Use my current location.”
One-tap check-in Attendees tap once; the app confirms they’re inside the fence.
Never silent-fail Low GPS accuracy or a fix timeout routes to host-confirm; permission-denied shows actionable guidance.
Server-side anti-spoofing Mocked-location detection, impossible-travel velocity, a capped accuracy tolerance, and (where a source is configured) an IP-country match.

Use Case: A field crew at a remote site with no screen taps “Check in with my location”; the app confirms they’re within the 150 m jobsite fence.

💡 Pro Tip: Set a sensible default radius on the event type (Event Types → Attendance → “Geo-fence radius (m)”) so hosts only have to drop a pin, not guess a radius.

🧑‍💼 Host Tools

Feature Description
Live roster & count The Event Details “Attendance” card shows who’s in, in real time, with walk-in and host-confirmed badges.
Host-confirm One click marks an invited attendee present (for the low-accuracy / no-phone case).
Threshold alerts Optional push as attendance crosses 50% / 75% / full (off by default).

🔔 Notifications

Type When
Live count update Pushed to the host on each check-in.
Threshold alert To the host at 50% / 75% / 100% (when enabled).
Badge email Each invitee emailed their personal badge PDF (when “Email QR badges” is on).

User Roles & Permissions

Role Capabilities
Employee (attendee) Check in (QR scan / geo tap); see their own check-in status; get guidance on failures.
Employee (Event Host) Everything an attendee can do, plus: inline & full-screen QR, generate badges, live roster, host-confirm, threshold alerts — for events they host.
Calendar Admin Configure the Attendance settings (QR/Geo on/off, validity window, walk-ins, geo tuning) and per-event-type attendance method + default radius.

How We Compare

See how MangoApps Workforce Event Check-In compares to event and calendar tools:

Feature MangoApps Workforce vFairs Google Calendar Microsoft Outlook
QR code check-in
Geo-fenced check-in
Per-attendee single-use badges
Server-side geo anti-spoofing
NFC / RFID tap
Facial-recognition check-in
Unified with calendar, HR & comms
Legend: ✅ Included ❌ Not Available ⚡ Limited

Why MangoApps Workforce?

  • 🔗 Unified Platform — Check-in is part of the Calendar app; attendance flows straight into reporting and the post-event feedback survey, no export/import.
  • 🛡️ Honest by default — Signed QRs, single-use badges, and server-authoritative geo checks — not just a “tap to confirm” button.
  • 🏭 Built for frontline — Geo check-in needs zero hardware; the mobile app is the scanner.

Note: MangoApps focuses on QR + geo (no NFC or facial recognition — those are intentionally out of scope). vFairs is a dedicated events platform; MangoApps embeds check-in inside a workforce suite.


Getting Started

For Employees (Attendees)

  1. Open the event in the Workforce app (or the mobile web event page).
  2. QR event: tap Check-In and scan the code your host is showing.
  3. Geo event: tap “Check in with my location” and allow location access.
  4. Look for “You’re checked in.” — you’re done.

For Hosts

  1. Open your event’s details page and find the “Attendance” card.
  2. QR: click “Display QR” to project it, or “Generate badges” to print/email per-attendee codes.
  3. Watch the live roster; for geo events, click “Confirm” next to anyone who couldn’t self-check-in.

For Administrators

  1. Go to Calendar → Settings → Attendance; confirm QR and/or Geo are enabled and set the check-in validity window.
  2. In Event Types, set each type’s Attendance method (None / QR / Geo / Any) and, for geo, a default fence radius.
  3. Decide whether to allow walk-ins and whether to email badges / send threshold alerts.

Best Practices

  • ✅ Set the event type’s attendance method once, so every event of that type is ready — hosts don’t configure check-in per event.
  • ✅ For geo events, pin the fence with “Use my current location” while standing at the venue.
  • ✅ Keep the validity window generous enough for arrival traffic (default 15 min before/after).
  • ✅ Leave threshold alerts off unless a host actually needs the nudge — they default off to avoid notification noise.
  • ✅ Print badges for events where attendees may not have the app handy; the manual code covers phones that can’t scan.

Frequently Asked Questions

Q: Do attendees need the mobile app to check in?
A: For QR, yes — the code is scanned in the Workforce mobile app (a projected or printed QR is scanned by the phone). For geo, they tap “Check in with my location” from the event page and allow location access; no scanning needed.

Q: What if my GPS is weak or I denied location access?
A: You’re never locked out. Low accuracy or a GPS timeout routes you to host-confirm (ask your host to mark you present); a denied permission shows guidance to re-enable location or ask the host. The check-in never silently fails.

Q: Can someone reuse a screenshot of the QR to check in twice, or check a friend in?
A: No. The single display QR records one attendance per person (a repeat scan says “Already checked in”), and printed badges are single-use. Geo check-ins are validated server-side against the fence with anti-spoofing (mocked location, impossible travel, capped accuracy).

Q: Why don’t I see check-in on my event?
A: Check-in is driven by the event type’s attendance method plus the business setting. If the type is “None,” or QR/Geo is turned off in Settings → Attendance, no check-in appears. Geo also needs a fence set on the event.

Q: Is my location tracked?
A: No. Location is captured only at the moment you check in — never continuously — and only your name, time, and (for geo) the check-in coordinates are stored.



Attendance, captured in a tap — indoors or in the field.