Flow: Match Management (Admin)¶
Actor¶
Administrator (HNS Staff)
Preconditions¶
- Admin is logged into the Admin Portal with "Match Manager" permissions
- For seat-mapped (home) venues: Stadium configurations are available in the system
- For external (away) venues: Venue master data exists (name, location, capacity)
Flow Steps¶
-
Initiate Match Creation
- Admin navigates to "Events & Matches"
- Clicks "Create New Match"
- System presents the Match Creation Wizard
-
Basic Information Setup
- Admin enters match details:
- Home Team (defaults to Croatia) vs Away Team
- Competition Type (e.g., "UEFA Nations League", "Friendly", "Qualifier")
- Date and Time (Kick-off)
- Venue/Stadium
- Admin enters match details:
-
Sales Phase Configuration
- Admin defines sales phases:
- Phase 1: Loyalty Early Access (Start/End Date, Eligibility Rules, Number of Tickets)
- Phase 2: General Public (Start/End Date)
- Admin defines sales phases:
-
Quota & Inventory Setup
- Admin defines initial quota allocations (e.g., "UEFA Quota", "Sponsors", "Family")
- (See Match Stadium Configuration for detailed seat mapping)
- System reserves the specified percentage/sectors for quotas
-
Content & Media
- Admin uploads match banners, logos, and promotional text
- Sets visibility status (Draft, Scheduled, Visible)
- Configures "Important Info" text for the mobile app match page
-
Review & Publish
- Admin reviews all settings on the Summary page
- Clicks "Publish Match" or "Save as Draft"
- System generates the match ID and event page on the backend
- (If Visible) Match appears in "Upcoming" list on mobile app
Alternative Flows¶
A1: Edit Active Match Details
- Trigger: Match time changes
- Admin opens existing match
- Updates "Kick-off Time"
- System detects change and prompts with options:
- "Notify Ticket Holders" - Send push notification and email to all ticket holders
- "Silent Update (No Notification)" - Update details without notifying ticket holders
- Silent Update Use Case: For minor corrections (e.g., time change from 19:30 to 20:30 due to typo) where notification would cause unnecessary confusion
- Admin selects notification preference and confirms
- System updates match details
- If notification enabled: triggers push notification/email to existing buyers
- If silent: updates made without notification, tickets remain valid
- All changes logged in audit trail regardless of notification setting
A2: Cancel Match
- Trigger: Force majeure or cancellation
- Admin clicks "Cancel Match"
- System requires "Super Admin" approval
- (See Match Cancellation Flow for full details)
A3: Export Access Control Data (Pre-Match)
- Trigger: Match day approaching, access control systems need to be loaded with valid ticket data
- Admin navigates to match detail page in Admin Portal
- Selects "Export Access Control Data" or "Export Tickets for Validation"
- System generates Excel export containing barcodes only (no personal identifiable information):
- Barcode/QR Code: The scannable code value for offline validation
- Ticket Status: Confirmed valid tickets only (excludes refunded, cancelled)
- Extra Codes for Post-Export Changes:
- System automatically includes extra valid codes to handle changes after export:
- Codes for all currently unsold seats (in case of last-minute sales)
- Additional ~1000 reserve codes for any changes, refunds, transfers, or resells that occur after export
- These codes become valid only if corresponding tickets are sold/changed
- Prevents need for multiple exports on match day
- System automatically includes extra valid codes to handle changes after export:
- Export includes all channels: online purchases, quota allocations, box office sales
- Admin downloads the Excel file
- File naming convention:
MatchID_TicketExport_YYYYMMDD_HHMM.xlsx - Admin provides export to access control operators who load it into offline validation devices
- Can be re-exported if needed, but extra codes minimize this need
- This export enables the offline validation process described in Stadium Entry Validation
- Post-match: Access control operators export usage data back to HNS system for attendance tracking
A4: Create Away Match (Non-Numbered Allocation)
- Trigger: Creating a match at an external (away) venue without seat map
- Admin follows steps 1-2 (Initiate Match Creation, Basic Information Setup)
- In step 2, Admin selects an external venue (e.g., "Victoria Stadium, Gibraltar")
- System detects venue type and adjusts the wizard
- In step 4 (Quota & Inventory Setup):
- Admin toggles "Non-numbered seats (away match)" checkbox
- Admin enters "Total Croatian allocation quantity" (e.g., 500 tickets)
- Stadium configuration step is skipped (no seat map available)
- System creates inventory pool of specified quantity with seat location = TBD
- Admin continues with steps 5-6 (Content & Media, Review & Publish)
- For detailed away match ticket lifecycle (sales, sector assignment, customer notification), see Away Match Tickets (Non-Numbered Seats)
A5: Close Match and Attendance Import
- Trigger: Match completed, admin needs to close the match
- Admin navigates to match detail page in Admin Portal
- Clicks "Close Match"
- System prompts: "Does this match have attendance data?"
- Option A - With Attendance Data:
- Admin selects "Yes, upload attendance data"
- System requires attendance file upload before closing
- Admin uploads Excel file from access control operators (barcodes that entered stadium)
- System validates and previews import (no changes made yet):
- Maps barcodes to tickets in database
- Shows preview summary: total scanned, matched, unmatched
- Displays list of matched tickets that will be marked as ATTENDED
- Admin reviews import preview
- Clicks "Confirm and Close Match"
- Atomic operation: System performs both actions together or neither:
- Updates matched ticket statuses to "ATTENDED" with entry timestamp
- Changes match status to "CLOSED"
- If operation fails, no changes are made and admin is notified
- Loyalty points calculation triggered automatically (see A6)
- Option B - Without Attendance Data:
- Admin selects "No attendance data available"
- System requires reason (dropdown + optional notes):
- Scanner malfunction
- Partial data loss
- External venue - no data
- Other (with explanation)
- Admin confirms selection
- System marks all sold tickets as "ATTENDED" (assumes everyone attended)
- Match status changes to "CLOSED"
- Loyalty points calculation triggered automatically (see A6)
- All actions logged in audit trail
A6: Loyalty Points Calculation
- Trigger: Automatically after match is closed (A5)
- System calculates loyalty points based on match closure type:
- Match closed WITH attendance: Only fans with ticket status "ATTENDED" are eligible
- Match closed WITHOUT attendance: All ticket holders are eligible (all marked as ATTENDED)
- Eligibility criteria for points:
- Ticket status = ATTENDED
- Valid OIB on ticket
- Paid ticket (not free/complimentary)
- System awards 1 loyalty point to each eligible fan
- Push notification sent: "You earned 1 loyalty point for attending [Match Name]"
- Email confirmation sent with updated points balance
- Admin dashboard updated with points awarded count
Last Updated: January 2026