Skip to main content

Guests

Screenshots & Videos

Place real assets under /images and /videos using root paths.

📌 Why Guests?

Your single source of truth for people data. Guests drive emails, badges, tickets, and check-ins—with safe merges, tagging, and an audit trail for every change.

The Guests module is the core directory of people associated with an event: registrants, imported contacts, manually added entries, ticket buyers, promoted invitees (RSVP), and generated attendees from successful orders. It centralizes profile data, registration form answers, tags, ticket links, workshop enrollments, check‑in status, and communication history.

Interface Preview

Guests List Guest Cards Create Guest Import Guests

Quick Start

  • Go to Events > Guests
  • Create or import guests
  • Use tags and filters to segment

Stats Cards

Top-of-page cards summarize key metrics for the current event:

  • Total Guests: all guest records for the event (excluding trashed)
  • Total Prints: badge print actions (may include multiples)
  • Approved / Pending / Declined / RSVP Yes / RSVP No / Active / Trashed

Notes:

  • Counts reflect the selected event
  • Filters do not alter cards; refresh page after major changes
  • Visible only to users with guest view permissions
  • Cards are informational; not interactive

Guests Cards


Core Concepts

ConceptDescription
Guest RecordIndividual tied to an event (scoped per event)
Statuspending / approved / rejected / waitlisted / archived
Form DataJSON from registration form(s)
TagsSegmentation labels (VIP, Staff, Sponsor, Speaker)
TicketsOne or more ticket lines granting access
WorkshopsOptional seat reservations
Check-InAttendance flag with timestamp(s)

Status Lifecycle:

  • Pending: awaiting review
  • Approved: active, allowed badge/email/ticket issuance
  • Rejected: excluded from normal communications
  • Waitlisted: holding until capacity frees
  • Archived: historical retention; excluded from active filters

Interface Layout

RegionPurpose
ToolbarFilters, bulk actions, export/import, column config
TablePaginated guest rows with key fields
Side Drawer / ModalDetailed profile + form answers
Bulk PanelSelection count & permitted operations

Default Columns:

  • Name (First + Last)
  • Email
  • Status
  • Ticket Type(s)
  • Tags
  • Check-In
  • Created At
  • Actions (View / Edit / Approve / Reject / Delete / Impersonate if allowed)

Filters

FilterNotes
StatusMulti-select (e.g., approved + pending)
TicketNarrow by ticket type(s)
TagOne or many tag IDs
Registration DateRange picker
CountryDerived from form/profile
WorkshopGuests enrolled in a specific session
Check-In StateChecked / Not Checked

Workflow

1. View & Search Guests

  • Navigate to Guests
  • Use global search (name/email) or advanced filters
  • Adjust columns as needed

2. Add a Guest Manually

  1. Click Add Guest
  2. Fill minimal fields: first_name, last_name, email
  3. Optionally assign ticket & tags
  4. Complete required dynamic form fields if applicable
  5. Save → Status set (Pending or Approved)

Create Guest

3. Review Pending Guests

  • Filter by Status: Pending
  • Open profile → review form answers
  • Approve or Reject

4. Bulk Tag Assignment

  1. Select guests via checkboxes
  2. Click Assign Tags
  3. Choose tags → Confirm

5. Edit Guest Profile

  • Click row or action menu → Edit
  • Update personal fields, form answers, ticket associations
  • Save triggers audit log

6. Import Guests

  1. Click Import
  2. Download template
  3. Required columns: first_name, last_name, email
  4. Upload → field mapping → Preview
  5. Confirm import → Background job handles large sets

Import Mapping

Import Validation:

RuleBehavior
Duplicate EmailSkip or update per import mode
Missing Required FieldRow flagged/excluded
Invalid Ticket CodeImported without ticket
Unknown Tag NameOptionally auto-create

7. Export Guests

  • Click Export → Choose format (CSV/XLSX)
  • Respects current filters
  • Large exports queued; download link provided

8. Check-In Visibility

  • Column shows primary check-in timestamp
  • Multiple scans viewable in detail
  • "Undo Check-In" available to authorized roles

9. Workshop Enrollment

  • Guest drawer → Workshops tab
  • Add/remove enrollments → Save
  • Waitlist indicator if session full

10. Merge Duplicates

  1. Select duplicates → Merge
  2. Choose master → Consolidate data
  3. Secondary record archived/deleted

11. Delete / Archive

  • Archive preferred to maintain history
  • Hard delete restricted

User Processes

A. Manual Add – add guest → assign ticket/tags → save → check status
B. CSV/XLSX Import – upload → map fields → validate → import
C. Moderation – filter pending → approve/reject/waitlist → optional note
D. Tagging – multi-select → assign tags → confirm
E. Ticket Linking / Editing – guest → Tickets tab → add/change → save
F. Workshops Enrollment – guest → Workshops tab → add → save
G. Day-of Check-In – scan or mark manually; undo if authorized
H. Export Guests – filters/search → Export → download link
I. Merge Duplicates – select → Merge → review → confirm
J. Archive/Delete – archive preferred; delete restricted
K. Communications – resend confirmation, bulk emails, automated triggers


CSV Import Reference

  • File types: CSV, XLSX; UTF-8; headers required
  • Required columns: first_name, last_name, email
  • Optional: ticket_code, tags, country, company, title, custom_*
  • Example row:

Data Model (Conceptual)

TableKey Fields
guestsid, event_id, first_name, last_name, email, status, formio_data, created_at
guest_tagguest_id, tag_id
guest_ticketguest_id, ticket_id, quantity
workshop_registrationsguest_id, workshop_id, status
checkinsid, guest_id, scanned_at, gate_id, user_id

Permissions

ActionPermission
View Guestsguest.view
Create Guestguest.create
Edit Guestguest.edit
Approve / Rejectguest.moderate
Import Guestsguest.import
Export Guestsguest.export
Assign Tagsguest.tag.assign
Undo Check-Inguest.checkin.undo
Mergeguest.merge
Archiveguest.archive

Edge Cases

ScenarioStrategy
Duplicate email (case-insensitive)Normalize to lowercase
Bulk import partial failureCommit valid rows; report errors
Ticket capacity reached mid-importRemaining rows flagged
Workshop capacity raceUse row-level locking or retry
Merge conflicts in form fieldsKeep non-empty; log differences

Performance Considerations

  • Index guests on (event_id, email), (event_id, status), (event_id, created_at)
  • Lazy decode heavy form JSON
  • Server-side pagination & filtering
  • Cache tag counts for sidebar filters

Best Practices

  • Approve daily to maintain confirmations
  • Tag early for segmentation
  • Use import mode “update existing” for refresh
  • Avoid hard deletes
  • Keep form fields consistent across events

Troubleshooting

IssueResolution
Guest not appearingCheck event context & filters
Cannot approveCheck permissions / event status
Import stuckQueue worker offline; check logs
Tag not assignableTag archived or scoped elsewhere
Duplicate guest createdEnable duplicate prevention / email normalization
Export emptyFilters too restrictive
Check-In not recordingOffline or permission missing; retry

Security & Privacy

  • PII protected under access controls
  • Export actions logged (who + when)
  • Deleted/expired guests may be redacted

Future Enhancements

  • Smart duplicate detection
  • Real-time import validation
  • Bulk workflow rules (auto-approve by domain)
  • Guest activity timeline
  • GDPR anonymization scheduler

Last updated: 2025-11-03