Check-In & QR Codes

Overview

Nigall supports QR-based check-in and check-out for attendees and day-of stakeholders from one ops desk (web + mobile). Payload kinds: attendees (ATT), speakers (SPK), talent/artists (TLN), vendors (VND), and exhibitors (EXH). RSVP events still use simpler name-list check-in on the guest list. Volunteer shift check-in and exhibitor lead capture remain separate flows.

Purpose

Fast arrival and departure tracking with scannable passes, search fallback, and a unified audit trail.

Who should use it

  • Registration desk staff
  • Artist / green-room gate staff
  • Vendor load-in and exhibitor booth gate staff
  • Session room monitors (attendee session scan)
  • Volunteer coordinators (volunteer shift scan)

Benefits

  • Unified day-of hub: Attendees | Artists (speakers + talent) | Vendors | Exhibitors
  • QR PNG per ticket or stakeholder pass (NIGALL:{KIND}|{event_tag}|{id}|{pass_code})
  • Check-in, check-out (left venue), and undo (clear mistake)
  • Manual search by name, email, ticket/pass code, stall, or booth
  • Mobile ops scan/search/stats for all kinds (online); offline pack remains attendee-only in v1

Flow Path
Unified day-of hub /events/<pk>/<tag>/day-of/
Day-of scan /events/<pk>/<tag>/day-of/scan/
Day-of search /events/<pk>/<tag>/day-of/search/
Day-of pass QR /events/<pk>/<tag>/day-of/pass/<kind>/<id>/qr.png
Event check-in dashboard (attendees) /attendees/events/<pk>/<tag>/checkin/
QR scan mode /attendees/events/<pk>/<tag>/checkin/scan/
Scan API /attendees/events/<pk>/<tag>/checkin/scan/api/
Manual check-in /attendees/events/<pk>/<tag>/checkin/manual/
Walk-in /attendees/events/<pk>/<tag>/checkin/walk-in/
Ticket QR image /attendees/registrations/<pk>/ticket/qr.png
Session scan /attendees/events/<pk>/<tag>/sessions/<session_pk>/scan/
RSVP guest check-in /events/<pk>/<tag>/guests/<rsvp_id>/check-in/
Volunteer check-in /events/<pk>/<tag>/volunteer-checkin/scan/
Vendor load-in scan /vendors/events/<pk>/<tag>/loadin/scan/

Prerequisites

  • Attendees module enabled for registration QR flows
  • Confirmed registration with issued ticket
  • Host or staff permissions for check-in views
  • HTTPS + camera permission for browser scanning

Step-by-step — Unified day-of desk

  1. Open /events/<pk>/<tag>/day-of/ as an event manager.
  2. Choose a tab: Attendees, Artists, Vendors, or Exhibitors.
  3. Use Scan (camera or paste) or Search (name / email / pass / stall / booth).
  4. Check in on arrival; Check out when they leave the venue; Undo only to clear a mistake.
  5. Download or show pass QR from the day-of pass URL for speakers, talent, vendors, and exhibitors.

On mobile ops, open Scan, use kind chips when searching, and scan any NIGALL:… pass online.

[SCREENSHOT: QR scan interface]


Step-by-step — Attendee event check-in (legacy paths)

  1. Open check-in dashboard as host.
  2. Click Scan → /checkin/scan/.
  3. Point camera at attendee QR code.
  4. System validates registration → marks checked in.
  5. Use Manual search (includes ticket code) if QR fails.
  6. Use Check out when the attendee leaves (sets departure time); undo still clears the whole check-in.

Step-by-step — Session check-in

  1. Navigate to session roster or scan URL.
  2. Scan attendee QR at room entrance.
  3. Attendance recorded separately from event-level check-in.

Field descriptions

Artifact Description
Ticket / pass QR NIGALL:{KIND}\|event_tag\|entity_id\|pass_code
Attendee check-in check_in_time / departure_time on AttendeeCheckIn
Speaker gate SpeakerDayOf.checked_in_at / checked_out_at (session “checkout” workflow is separate)
Talent pass AccreditationPass issued for program-mapped talent
Vendor / exhibitor Stall or booth load_in_scanned_at / load_out_scanned_at
Re-entry policy Event attendee_re_entry_allowed (default off → duplicate while present is rejected)
Audit Unified CheckInAuditLog with subject_kind + subject_id

Business rules

Rule Detail
RSVP events Name-list check-in; no default QR ticket
Registration events QR on confirmed registration
Duplicate attendee scan Rejected while present unless event re-entry is allowed; after check-out, re-check-in is allowed
Check-out Marks left venue; does not delete history until undo
Undo Clears gate state back to not-arrived
Speakers / talent Confirmed speakers; talent with a program mapping on the event
Vendors / exhibitors Approved + payment complete + stall/booth assigned
Volunteer check-in Separate assignment-based flow
Offline pack Attendees only in v1

Validation rules

  • Invalid QR → API error message
  • Cancelled registration → reject scan
  • Past event may block new check-ins

User permissions

Action Host Staff Attendee
Scan check-in ✅ ✅ ❌
View own QR ❌ ✅ ✅
RSVP list check-in ✅ ✅ ❌

Workflow

sequenceDiagram participant Staff participant Scanner participant API participant DB Staff->>Scanner: Open scan page Scanner->>API: POST scan/api with QR payload API->>DB: Validate registration DB-->>API: OK + name API-->>Scanner: Success UI

Examples

Conference registration desk: Event-level scan at entrance; session scans in breakout rooms.

Volunteer shift: Volunteer QR at /volunteer-checkin/scan/.

Best practices

  • Test scan lighting and screen brightness beforehand
  • Keep manual search open on second device
  • Print backup name list for connectivity outages
  • Use walk-in flow only with capacity headroom

Tips

  • Download QR: /attendees/registrations/<pk>/ticket/download/
  • Print layout: /ticket/print/
  • Exhibitor lead scan: /exhibitors/applications/<pk>/leads/scan/

Common mistakes

Mistake Result Fix
RSVP event + QR expectation No ticket Use guest list check-in
Wrong event scanner URL Invalid QR Match pk/tag to event
Pending payment QR Rejected Confirm registration first

FAQs

Can attendees show QR on phone?
Yes — standard use case. Speakers, talent, vendors, and exhibitors use the same day-of pass QR format.

Is offline scan supported?
Attendee offline packs work on mobile ops. Stakeholder (SPK/TLN/VND/EXH) scan requires connectivity in v1.

What is the difference between check-out and undo?
Check-out means they left the venue. Undo clears a mistaken check-in entirely.

Troubleshooting

Symptom Cause Fix
Camera blocked Browser permissions Allow camera
QR not found Wrong event / cancelled / wrong kind Match event pk/tag; confirm pass issued
Vendor/exhibitor rejected Unpaid or no stall/booth Complete payment and assign location
Already checked in Present and re-entry off Check out first, or enable event re-entry
API 403 Not event manager Login as host / org manager / staff

Screenshot placeholders

  • [SCREENSHOT: Check-in dashboard stats]
  • [SCREENSHOT: Successful scan confirmation]
  • [SCREENSHOT: Ticket QR on mobile]
  • [SCREENSHOT: Day-of hub Artists tab]

Administrator notes

  • Scan API rate limits depend on deployment; monitor logs on busy events
  • Ensure media URLs work for QR PNG generation
  • Event setting attendee_re_entry_allowed controls duplicate attendee scans while present

Developer/API notes

Endpoint Method Body / notes
.../day-of/scan/api/ POST Unified web scan router
/api/mobile/v1/ops/events/<pk>/<tag>/dayof/scan/ POST {payload, action: check_in\|check_out}
/api/mobile/v1/ops/events/<pk>/<tag>/dayof/search/?q=&kind= GET Unified search
/api/mobile/v1/ops/events/<pk>/<tag>/dayof/<kind>/<id>/manual/ POST {action: check_in\|check_out\|undo}
/api/mobile/v1/ops/events/<pk>/<tag>/dayof/stats/ GET Per-kind KPIs
.../checkin/scan/api/ POST Attendee-only (legacy)
.../sessions/.../scan/api/ POST Session attendance
ticket_qr_image / day-of pass QR GET PNG image

See also: Participant Guide