Events & Registration (RSVP & Ticketed)

Overview

Events are the central object in Nigall. Each event has a registration type (RSVP or Registration), visibility (public or private), optional module toggles, ticketing fields, and recurrence support. This is the definitive guide for creating, editing, and publishing events.

Purpose

Configure the correct registration path and modules so guests experience RSVP simplicity or full attendee registration with tickets, QR codes, and compliance tooling.

Who should use it

  • Event hosts and organizers
  • Operations leads configuring modules before go-live
  • Customer success during onboarding

Benefits

  • Single create/edit form with module toggles
  • Post-save module setup wizard for enabled modules
  • RSVP and Registration paths share survey questions model

Action Path
Create event /events/create/
My Events /events/my-events/
Event detail /events/<pk>/<event_tag>/
Edit event /events/<pk>/<event_tag>/edit/
Module setup (create) /events/create/<pk>/setup/<step>/
Module setup (edit) /events/<pk>/<event_tag>/edit/setup/<step>/
RSVP /events/<pk>/<event_tag>/rsvp/
Attendee registration /attendees/register/<pk>/<event_tag>/
Legacy ticket checkout /payments/checkout/<pk>/<event_tag>/

Prerequisites

  • Authenticated Nigall account (any plan can create events)
  • Subscription tier matching enabled modules (see Roles & Permissions)
  • For paid tickets: Stripe configured in environment
  • For public Discover: at least one event category

Registration types

Type Value Default visibility Guest experience
RSVP rsvp Private Sidebar RSVP form; guest list check-in
Registration registration Public Attendee module or legacy checkout
flowchart TD Create[Create Event] --> Type{registration_type} Type -->|rsvp| RSVP[RSVP form + guest list] Type -->|registration| Reg{attendees_enabled?} Reg -->|Yes| AM[Attendee registration flow] Reg -->|No| Legacy[Legacy payments checkout]

Warning: Enabling Attendee Management routes guests to /attendees/register/ — not the legacy RSVP sidebar.


Step-by-step — Create RSVP event

  1. My EventsCreate Event (/events/create/).
  2. Event Details:
    - Title, description, location
    - Registration type: RSVP
    - Start / end date-time
    - Capacity (default 100)
    - Visibility: Private (default for RSVP) or Public
  3. Ticketing: Mark Free event if no payment.
  4. Event modules: Leave Attendees off for pure RSVP.
  5. Survey questions: Add via inline panel or after save.
  6. Click Create Event.
  7. Share /events/<pk>/<tag>/.

[SCREENSHOT: Create Event — registration type RSVP selected]


Step-by-step — Create ticketed Registration event

  1. Create event with Registration type.
  2. Enable Attendee Management (attendees_enabled).
  3. (Optional) Enable GDPR fields (attendee_gdpr_enabled).
  4. Set Free event off; configure price or ticket tiers in Ticketing section.
  5. Save → redirected to setup wizard step attendees.
  6. Complete attendee_registration_info and retention settings.
  7. Configure ticket tiers (ticket_types text / tier UI on edit form).
  8. Test registration in incognito.

Step-by-step — Module setup wizard

After save (create or edit), if any module toggles are enabled, Nigall redirects through EVENT_SETUP_STEPS:

Step key Enable field Wizard fields
exhibitors exhibitors_enabled Prospectus, fees, floor plan, approval
vendors vendors_enabled Stall fees, load-in, deposits, documents
attendees attendees_enabled Registration info, data retention
sponsors sponsors_enabled Prospectus, ACH, platform fee %
speakers speakers_enabled CFP info, slot counts, deadline
program program_enabled (configure in Program app after)
volunteers volunteers_enabled Prospectus, benefits, skills

URLs:
- Create flow: /events/create/<pk>/setup/<step>/
- Edit flow: /events/<pk>/<tag>/edit/setup/<step>/


Field descriptions

Core event fields

Field Description
Title Public name (max 200)
Registration type rsvp or registration
Visibility public (Discover) or private (link-only)
Event category Required for public; preset tags or custom
Description Full event description
Location Address or virtual link
Venue Optional FK to Venue — auto-fills location
Latitude / longitude Geocode for Discover nearby
Start / end date Event window (timezone-aware)
Capacity Max headcount
Cover images Card, banner, mobile variants + crop data

Ticketing fields

Field Description
is_free No payment required
price Base price (legacy)
ticket_types Tier configuration text
allow_group_purchasing Group checkout
coupon_code Single event coupon
coupon_discount_percent Percent off

Communication toggles

Field Description
email_blasts_enabled Email communications module
sms_reminders_enabled SMS flag (provider-dependent; email primary)

Module toggles

See Event Field Reference for full list.


Business rules

Rule Behavior
RSVP capacity Sum of adult_count + kid_count for attending RSVPs
Waitlist New attending RSVPs when full → waitlist status
Public + category Public events require event_category
Past events Edit, RSVP, check-in disabled when end_date < now
Registration default visibility public for registration type
RSVP default visibility private
Module field locks Toggles grayed without subscription tier
Recurrence Optional series — see Recurring Events
Event tag Auto-generated 6-char uppercase on save

Validation rules

Condition Error
End before start Form validation error
Public without category Cannot save
Paid tier without Stripe Checkout fails at payment
Module toggle without plan Field locked / ignored on save

User permissions

Action Host Staff Guest
Create event
Edit event
Delete event
RSVP / register Preview only
Module setup wizard

Workflow — end to end

sequenceDiagram participant Host participant Nigall participant Guest Host->>Nigall: Create event + toggles Nigall->>Host: Module setup wizard Host->>Nigall: Publish / share Guest->>Nigall: RSVP or Register Nigall->>Guest: Confirmation + ticket Host->>Nigall: Guest list / registrations

Examples

Scenario Type Modules
Team dinner RSVP Communications
Annual gala Registration Attendees, Sponsors, Program
Trade show Registration Attendees, Exhibitors (Enterprise), Vendors

Best practices

  • Choose RSVP for invite-only headcount; Registration for QR and compliance
  • Complete wizard before sharing links
  • Set capacity before marketing push
  • Test guest flow in incognito as non-host

Tips

  • Link venue profile to auto-fill operations defaults
  • Use email_blasts_enabled with Communications hub
  • Program step is placeholder — build schedule in /program/

Common mistakes

Mistake Result Fix
Registration without Attendees Legacy checkout only Enable attendees module
Public event no category Save blocked Add category
Host tests RSVP No guest form Use test account
Skip wizard Incomplete module config Visit edit setup URLs

FAQs

Can I switch registration type after launch?
Possible but disruptive; test impacts on existing RSVPs/registrations.

What's the difference between price and ticket tiers?
price is legacy single price; tiers support multiple SKUs via ticketing section.

Troubleshooting

Symptom Cause Fix
Wizard doesn't appear No modules enabled Enable toggle; save
Guests see wrong form Type/module mismatch Check registration_type + attendees_enabled
Module toggle locked Plan too low Upgrade subscription

Screenshot placeholders

  • [SCREENSHOT: Create event module toggles section]
  • [SCREENSHOT: Module setup wizard — attendees step]
  • [SCREENSHOT: Ticketing tiers on edit form]
  • [SCREENSHOT: Registration type selector]

Administrator notes

  • Configure Stripe keys in environment for production payments
  • Staff bypass subscription field locks on event form
  • Enterprise required for exhibitors_enabled toggle

Developer/API notes

Item Detail
Model events.models.Event
Setup steps events.forms.EVENT_SETUP_STEPS
RSVP model events.models.RSVP
Mobile detail GET /api/mobile/v1/events/<pk>/<tag>/
Mobile RSVP POST /api/mobile/v1/events/<pk>/<tag>/rsvp/

See also: Event Field Reference · Quick Start — Organizers