Skip to main content

RSVP Management

Plain-language guide for managing invitation-based attendance workflows.

Overview

The RSVP Management module handles invitation‑based attendance workflows for private or controlled-access events. It orchestrates:

  • Invite list creation
  • Email invitations with unique token links
  • Guest response capture (Yes / Maybe / No)
  • Optional follow‑up form data collection
  • Reminders to non‑responders
  • Capacity enforcement
  • Conversion of accepted invitees into Guest / Ticket records

Why RSVP Management?

  • Control access and enforce capacity for private or high‑demand events
  • One‑click Yes/Maybe/No via secure token links for a frictionless UX
  • Collect structured data with tag‑bound RSVP forms
  • Automate reminders to boost response rates
  • Maintain brand control with customizable Yes/Maybe/No pages
  • Seamlessly convert accepted invitees to Guests/Tickets
  • Measure outcomes with filters, exports, and dashboards
Screenshots & Videos

Replace placeholders with real assets stored under /static/images and /static/videos.


Quick Start

  1. Go to Event > RSVP.
  2. Create a campaign and audience.
  3. Send invitations and track responses.

Quick Start (for Event Managers)

  • Prepare tags for invite segments (VIP, Speaker, Media)
  • Configure RSVP Messages (Yes/Maybe/No) for branding
  • Optionally build RSVP Forms and bind to tags
  • Add/import invitees and assign tags
  • Send invitations with Yes/Maybe/No links
  • Monitor responses and send reminders
  • Export RSVP data or convert accepted invitees to Guests/Tickets

Screenshots

RSVP Dashboard Create RSVP RSVP Data RSVP Messages


  • Forms: Event > RSVP > Forms (manage form schemas, tag bindings)
  • Messages: Event > RSVP > Messages (edit Yes/Maybe/No pages)
  • Data: Event > RSVP > Data (view/filter/export collected answers)
  • Invitations/Email: Event > RSVP > Invitations (send initial + reminders)

Tip: Missing actions usually indicate a missing permission. See Permissions Mapping below.


Common Tasks

Create and Attach a New RSVP Form

  1. Go to Event > RSVP > Forms and click “Create RSVP Form”
  2. Enter a form name
  3. Choose target tags (tags without an existing form appear)
  4. Build the schema with drag‑and‑drop:
    • Pre-Defined Fields: First Name, Last Name, Email, etc.
    • Basic/Advanced fields: text, number, select, datetime
    • Configure validation per field
  5. Click Save RSVP Form; tags are now bound

Edit an Existing Form

  1. Click Edit on a form
  2. Adjust name, tag bindings, or fields
  3. Save; prior submissions remain intact

Soft-Delete, Restore, Permanently Delete

  • Delete: soft-delete (row turns grey, “Deleted” badge)
  • Restore: restore soft-deleted forms
  • Permanently Delete: remove entirely (cannot undo)

Customize Yes/Maybe/No Messages

  1. Go to Event > RSVP > Messages
  2. Edit HTML for each status (Yes/Maybe/No)
  3. Save; changes apply immediately

Send Invitations and Reminders

  1. Prepare invite list (manual add or CSV import) and assign tags
  2. Compose email template with merge variables:
    • `{{ first_name }}`, `{{ yes_link }}`, `{{ maybe_link }}`, `{{ no_link }}`, `{{ event_title }}`
  3. Send initial invitations (pending)
  4. Later, send reminders to pending or maybe invitees

Review and Export RSVP Data

  1. Go to Event > RSVP > Data
  2. Filter by tag and RSVP Status
  3. Click Export (Excel/CSV)

Convert Accepted Invitees

  • Use Convert action to create Guest/Ticket records

Guest Experience

  • Clicking Yes/Maybe/No updates RSVP status and shows the corresponding message page
  • If the tag has a bound RSVP Form, follow-up form appears for Yes/Maybe
  • Form validates inputs and submits securely

FAQs

  • Export button missing: need rsvp-data.export permission
  • Cannot attach tag: tag can be bound to only one form at a time
  • Editing a form breaks past data? No, old responses preserved
  • Extra form on Yes/Maybe: tag linked to a form
  • Permanently delete a form: use Delete permanently in Forms table
  • Link not found errors: ensure full token link is sent

RSVP Dashboard

  • Status counters: Pending / Yes / Maybe / No / Expired
  • Capacity/progress bars (global & per tag)
  • Recent activity
  • Quick filters (tag, status, batch)

RSVP Dashboard


Workflow

Prepare List → (Optional Import) → Generate/Assign Tags → Create RSVP Messages → Send Invitations →
Responses Arrive (Yes/Maybe/No) → Optional Additional Form → Reminders → Capacity Gate →
Convert Accepted → Export / Analyze → Archive / Close


Core Concepts

ConceptDescription
InvitationPending invitation tied to email + tag + event
RSVP Statuspending, yes, maybe, no, expired
Token LinkUnique URL enabling one-click response without login
Tag BindingA tag may link to an RSVP Form
RSVP FormForm.io schema collecting structured data
MessagesCustom HTML for Yes/Maybe/No responses
ConversionCreate Guest/Ticket from accepted invite
ReminderFollow-up email for pending/maybe
CapacityOptional max accepted responses

Permissions Mapping

ActionPermissionNotes
View Dashboardrsvp.viewAccess list & stats
Invite (Create)rsvp.inviteManual add or CSV import
Send Emailsrsvp.emailBulk initial + reminders
Convert Acceptedrsvp.convertPromote to Guests/Tickets
View Datarsvp-data.viewAnyRSVP form submissions
Export Datarsvp-data.exportXLSX / CSV
Manage Messagesrsvp-message.editEdit HTML messages
Manage Formsrsvp-form.create/edit/deleteBuild/modify form schemas

Workflow Detail

  1. Preparation: define strategy, configure messages, build forms
  2. Invitation List Creation: manual add or CSV import
  3. Token Generation: unique URLs for Yes/Maybe/No
  4. Sending Invitations: filter pending, compose email, dispatch
  5. Recipient Response: status updated, form displayed if bound
  6. Additional Data Collection: form submission stored
  7. Reminders: pending/maybe invitees only
  8. Capacity Enforcement: global or per tag limits
  9. Conversion to Guest/Tickets: select yes invitations, run Convert
  10. Data Review & Export: filter, export CSV/XLSX
  11. Closing/Archiving: auto-expire pending, archive invitation set

Status Flow

PENDING --> (Yes Link) --> YES
PENDING --> (Maybe Link) --> MAYBE
PENDING --> (No Link) --> NO
PENDING --(Deadline)--> EXPIRED
MAYBE --(Yes Link later)--> YES
YES / NO / EXPIRED (terminal states)

StateNotes
pendingAwaiting response
yesCounts toward capacity
maybeSoft interest
noDecline
expiredDeadline passed
waitlistedAccepted but awaiting slot

Data Model

TableKey Fields
rsvp_invitationsid, event_id, tag_id, first_name, last_name, email, token, rsvp_status, responded_at, expires_at, rsvp_formio_data
rsvp_formsid, event_id, name, components (JSON schema)
rsvp_messagesid, event_id, yes_message, maybe_message, no_message

Merge / Template Variables

VariableDescription
`{{ first_name }}`Invitee first name
`{{ last_name }}`Invitee last name
`{{ event_title }}`Event name
`{{ yes_link }}`Direct Yes response URL
`{{ maybe_link }}`Direct Maybe response URL
`{{ no_link }}`Direct No response URL
`{{ capacity_remaining }}`Remaining slots (if computed)

Validation & Edge Cases

Edge CaseHandling
Duplicate emailSkip or update existing
Token reuseIdempotent
Token after expiryShow expired message
Capacity reached mid-clickShow full / waitlist
Changing tag after inviteDoes not retroactively change form mapping
Form updated post responsesOld responses preserved

Security / Integrity

  • Tokens are single-use
  • CSRF enforced on form POST
  • Rate limiting recommended
  • HTML messages sanitized
  • Exports audited
  • Collect only required PII

Performance Considerations

AreaOptimization
Bulk ImportQueue background jobs for >5k rows
Reminder SendsBatch queue jobs
Export FlatteningCache field keys per session
Capacity ChecksUse atomic increment / row locking

Troubleshooting

SymptomCauseFix
Links 404Route/token trimmedRe-copy URL from email
All links act sameTemplate replaced variables wrongInspect placeholders
Capacity exceededMissing atomic checkEnable row lock
No reminders sentQueue stoppedRestart workers
Exports missing columnsForm fields added after early responsesRe-export

Best Practices

  • Segment invitations by tag
  • Send reminders 3–5 days after initial wave; final 24h before deadline
  • Minimize form fields
  • Convert accepted invitees just before registration opens
  • Archive instead of delete

Future Enhancements

  • Waitlist auto-promotion
  • Multi-language messages
  • ICS calendar attachment on Yes
  • Real-time capacity webhooks
  • Drip reminders
  • RSVP analytics dashboard
  • Anti-bot token challenge

Add your screenshots and videos

Place assets under /images and /videos.

Recommended images:

  • /images/rsvp/dashboard.png
  • /images/rsvp/create-form.png
  • /images/rsvp/data.png
  • /images/rsvp/messages.png

Recommended videos:

  • /videos/rsvp-overview.mp4
  • /videos/rsvp-form-building.mp4
  • /videos/rsvp-invitation-send.mp4

Example embed:

<video controls width="720" poster="/images/placeholder-rsvp-dashboard.png">
<source src="/videos/rsvp-overview.mp4" type="video/mp4" />
</video>

Last updated: 2025-10-09