Member PortalJourneys
UJ-M-011: Check-in to Event
Member checks in to an event using their QR code ticket
Journey Overview
| Attribute | Value |
|---|---|
| Journey ID | UJ-M-011 |
| Actor | Event attendee |
| Goal | Confirm attendance at event via check-in |
| Trigger | Attendee arrives at event venue or joins online |
| Outcome | Attendance recorded, CPD points awarded (if applicable) |
Preconditions
- Attendee has valid ticket for the event
- Event is on the scheduled date
- Check-in window is open
- Ticket has not already been used
Journey Flow
flowchart TD
A[Attendee arrives at event] --> B[Present QR code]
B --> C[Staff scans QR code]
C --> D{Valid ticket?}
D -->|Yes| E[Check-in recorded]
D -->|No| F[Show error]
E --> G[Welcome message displayed]
G --> H{CPD enabled?}
H -->|Yes| I[CPD points queued]
H -->|No| J[Check-in complete]
I --> J
F --> K[Manual resolution]
K --> L{Resolved?}
L -->|Yes| E
L -->|No| M[Denied entry]
Check-in Methods
QR Code Scan (Primary)
- Present QR Code
Attendee shows QR code to event staff:
- From mobile phone (email or portal)
- From mobile wallet (Apple/Google)
- Printed PDF ticket
- Staff Scans Code
Staff uses scanning device:
- Dedicated scanner hardware
- Tablet/phone with camera app
- Client portal check-in interface
- Validation
System validates ticket:
Check Pass Fail Ticket exists ✅ "Ticket not found" Correct event ✅ "Wrong event" Not used ✅ "Already checked in" Not voided ✅ "Ticket cancelled" Check-in window ✅ "Check-in not open" - Confirmation
On successful scan:
Staff Device Shows:
- Green checkmark
- Attendee name
- Ticket type
- Photo (if on file)
- "Welcome!" message
Attendee Receives:
- Confirmation on their phone (if app)
- SMS confirmation (optional)
- Email confirmation (optional)
Manual Check-in (Backup)
If QR code unavailable:
- Staff searches by name or email
- Verifies attendee identity
- Manually marks as checked in
- Notes reason for manual entry
Self Check-in Kiosk (Optional)
For large events:
- Attendee approaches kiosk
- Scans QR code on screen
- Confirms identity
- Prints name badge (if configured)
- Proceeds to event
Check-in for Online Events
Zoom Integration
- Join Online Event
Attendee clicks meeting link from ticket
- Zoom Tracking
System tracks attendance via Zoom API:
- Join time recorded
- Duration tracked
- Email matched to registration
- Post-Event Import
After event, staff imports Zoom attendance:
- Participant list retrieved
- Matched to registrations
- Attendance marked automatically
- Unmatched attendees flagged
Manual Online Check-in
For non-Zoom events:
- Attendee clicks "I'm attending" in portal
- Staff takes manual roll call
- Post-event survey with attendance confirmation
Check-in Statuses
| Status | Description | CPD Eligible |
|---|---|---|
| Registered | Has ticket, not attended | No |
| Checked In | Attended, verified | Yes |
| Partial | Left early / joined late | Configurable |
| No Show | Did not attend | No |
| Cancelled | Registration cancelled | No |
CPD Auto-Award on Check-in
If event has CPD points and auto-award enabled:
- Check-in recorded
- System queues CPD award job
- After event ends (or grace period):
- CPD record created
- Points added to member's total
- Certificate generated (if configured)
- Notification sent to member
Partial Attendance:
- Minimum duration may be required
- Prorated points (e.g., 50% attendance = 50% points)
- Configurable by organization
Multi-Session Events
For events with multiple sessions:
- Check-in per session available
- Overall event check-in option
- Session-specific CPD tracking
- Agenda shows check-in status per session
Attendee Experience
Mobile View
┌─────────────────────────────────────────┐
│ ✅ CHECKED IN │
│ │
│ Annual Conference 2025 │
│ March 15, 2025 • 9:15 AM │
│ │
│ Welcome, John! │
│ │
│ You've been checked in to: │
│ • Main Conference │
│ │
│ CPD Points: 6 points pending │
│ (Awarded after event completion) │
│ │
│ [View Agenda] [Event Info] │
└─────────────────────────────────────────┘
Related Entities
Related Journeys
Acceptance Criteria
Frontend
- QR scanner interface (camera-based)
- Manual search by name/email
- Check-in confirmation display
- Attendee photo display (if available)
- Bulk check-in for walk-ins
- Check-in counter/statistics
- Check-in status in My Tickets
- Post check-in confirmation message
- CPD pending notification
Backend
-
POST /api/events/{id}/checkin- Process check-in -
POST /api/events/{id}/checkin/scan- QR scan endpoint -
GET /api/events/{id}/attendees- Attendee list with status -
POST /api/events/{id}/import-zoom- Zoom attendance import - CPD auto-award job
Permissions
- Event staff can check in attendees
- Attendees can view their own status
Business Rules
- Single check-in per ticket (no duplicates)
- Check-in window configurable (start/end)
- CPD awarded only after minimum attendance
- No-show marking after event ends
Error Handling
- Invalid QR code error message
- Already checked in notification
- Offline mode for scanner (sync later)
- Manual override for edge cases