> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gohaven.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Set up event registration, capacity limits, and waitlists

> Enable registration on any event, cap attendance, open a waitlist, charge for tickets, and view or export your full attendee list from the admin dashboard.

Haven's registration system lets members sign up for events through their portal and lets you track exactly who is coming. You control whether registration is open, how many spots are available, and whether a waitlist kicks in when you hit capacity.

## Setting up a registerable event

<Steps>
  <Step title="Open the event form">
    Go to **Events** in your admin sidebar and click **Create Event**, or open an existing event and click **Edit event**.
  </Step>

  <Step title="Enable registration">
    Expand the **Registration** section of the form. Toggle **Enable registration** on. Registration is enabled by default on new events.
  </Step>

  <Step title="Set a capacity limit (optional)">
    Enter a number in the **Max Attendees** field to cap how many people can register. Leave it blank for unlimited spots. When you set a limit, Haven displays the remaining spots on the event page so members know how full it is.
  </Step>

  <Step title="Add a registration deadline (optional)">
    Set a **Registration Deadline** date and time if you need to close sign-ups before the event. After the deadline passes, the registration button is no longer shown.
  </Step>

  <Step title="Enable the waitlist (optional)">
    Turn on **Enable waitlist when full** if you want Haven to accept additional sign-ups after the capacity limit is reached. Waitlisted registrants are notified if a spot opens up.
  </Step>

  <Step title="Configure pricing">
    Expand the **Pricing** section. By default, events are free. To charge for attendance, turn off **Free event** and enter a **Price**. You can also set a discounted **Member Price** that applies to logged-in members.

    If you want to give attendees the option to add a donation at checkout, enable **Allow optional donation during checkout**.

    For events with multiple ticket types — e.g. Member / Non-Member / Sponsor — open the event after creating it and use the **Registration types** tab to define each tier with its own price, capacity, and audience. See [Multi-tier registration](#multi-tier-registration) below.
  </Step>

  <Step title="Add custom questions (optional)">
    Open the event after creating it and switch to the **Custom questions** tab to ask registrants for things like dietary restrictions, t-shirt size, or accessibility needs. See [Custom registration questions](#custom-registration-questions) below.
  </Step>

  <Step title="Save the event">
    Click **Create Event** (or **Save Changes** if editing). The event is immediately visible to members and the public based on your visibility settings.
  </Step>
</Steps>

<Note>
  Paid event registration processes through your organization's connected Stripe account. Make sure you've completed Stripe Connect onboarding under **Settings → Payments** before collecting paid registrations.
</Note>

## How members register

Members register through the member portal at `{slug}.gohaven.co/member/events`. When a member opens an event detail page, they see a registration card showing:

* The event price (or "Free")
* Spots remaining
* A **Register** button (or a waitlist button if the event is full)

Clicking **Register** for a free event confirms the registration immediately. For paid events, members are taken through Stripe Checkout to complete payment. After registering, the event appears in the member's **My Registrations** list on the portal events page.

<Tabs>
  <Tab title="Free events">
    The member clicks **Register** and their spot is confirmed instantly. A confirmation email is sent automatically.
  </Tab>

  <Tab title="Paid events">
    The member clicks **Register**, completes payment through Stripe Checkout, and receives a confirmation email. If you've set a member price, logged-in members automatically see the discounted rate.
  </Tab>

  <Tab title="Waitlisted events">
    If the event is at capacity and you've enabled the waitlist, members see a **Join Waitlist** button instead. Waitlisted members receive a confirmation email noting their waitlist status.
  </Tab>
</Tabs>

### Lapsed members

If a member's membership has lapsed, Haven prompts them to renew alongside their event registration. They can add a renewal and an event ticket to a single Stripe Checkout, paying for both at once — and the member price applies automatically once they renew.

## Public registration

Events that are not marked **Members only** are visible on your public website at `{slug}.gohaven.co/events`. Non-members can view event details from the public site, but to register they are directed to the member portal login. There is no guest checkout for non-members by default.

<Warning>
  If your event is open to the public (including non-members), communicate registration instructions clearly in your event description. Non-members will need to create an account or contact you to register.
</Warning>

## Viewing the attendee list

To see who has registered for an event:

1. Go to **Events** in your admin sidebar.
2. Click the event card to open the event detail page.
3. Click the **Registrants** tab.

The registrants table shows each person's name, email address, registration status, amount paid, and the date they registered. You can export the full list as a CSV using the **Export CSV** button.

### Registration statuses

| Status         | Meaning                            |
| -------------- | ---------------------------------- |
| **Registered** | Confirmed, active registration     |
| **Waitlisted** | On the waitlist; not yet confirmed |
| **Cancelled**  | Registration was cancelled         |
| **Attended**   | Marked as attended (set manually)  |

## Cancelling a registration

Currently, registration cancellations are handled by contacting your admin. Members can reach out to you directly, and you can update their registration status from the Registrants tab.

<Tip>
  Include your contact email in the event description so members know who to reach if they need to cancel.
</Tip>

## Multi-tier registration

If your event has more than one ticket type — e.g. Member $50, Non-Member $80, Student $25, Sponsor $500 — open the event from your admin sidebar and switch to the **Registration types** tab. From there:

<Steps>
  <Step title="Add a tier">
    Click **Add registration tier**. Each tier gets its own row with name, price, capacity, audience, and time window.
  </Step>

  <Step title="Configure pricing per tier">
    Toggle **Free tier** on for free seats, or enter the price in dollars. Each tier creates its own Stripe Checkout line item, so registrants pay exactly the tier price they pick.
  </Step>

  <Step title="Set per-tier capacity (optional)">
    Enter a number in the **Capacity** field to cap how many people can register at this tier. Leave it blank for unlimited. The member-facing event page shows "X spots left" once capacity is within 5 seats of full.
  </Step>

  <Step title="Restrict who can register">
    Use **Available to** to gate the tier:

    * **All contacts** — anyone can register at this tier
    * **Members only** — non-members see the tier disabled with a sign-in CTA
    * **Specific membership level** — only members at that level see the tier at all
    * **Specific member tag** — only members with that tag see the tier
  </Step>

  <Step title="Add a time window (optional)">
    Set **Available from** for early-bird tiers that open at a specific time, or **Available until** for tiers that close before the event (e.g. an early-bird tier that closes 30 days out, with the regular tier still available).
  </Step>

  <Step title="Allow guests (optional)">
    Toggle **Allow guests** on a tier to let one registrant bring others. Set **Max guests per registrant** to control the cap.
  </Step>

  <Step title="Save changes">
    Click **Save changes**. The new tiers appear on the public event page immediately. Members register by selecting a tier card before submitting.
  </Step>
</Steps>

<Note>
  You can't delete a tier that has active registrations. The save action will block with a message — move those registrants to another tier (or cancel their registrations) first, then retry the delete.
</Note>

### Per-tier capacity is enforced at registration time

When a registrant tries to book a tier whose remaining capacity is 0, Haven blocks the submission with "This registration tier is sold out". The event-wide cap (`Max Attendees` in the Details tab) still applies on top, so you can mix per-tier limits with a global ceiling — whichever fills first stops further registration at that level.

### Backwards compatibility for single-tier events

Existing events created before multi-tier support automatically get a single auto-generated tier ("General" for paid, "Registration" for free) so the legacy single-price experience continues working unchanged. The **Registration types** tab shows that tier and lets you add more whenever you're ready.

## Custom registration questions

Need to know dietary restrictions? T-shirt sizes? Accessibility needs? Open the event and switch to the **Custom questions** tab. Each question is one of:

* **Short text** — single-line answer
* **Long text** — multi-line answer
* **Dropdown** — single choice from a list of options you define
* **Multi-select** — pick all that apply from a list
* **Yes / no** — single checkbox
* **Number** — numeric input

For each question:

* **Required** — registrants can't submit without an answer
* **Helper text (optional)** — shown under the label to clarify what you're asking

Questions appear inline in the registration form on both the public event page and the member portal. Required questions show a red asterisk; missing answers block submission with a per-question error message.

### Where the answers go

Answers are saved on each registration row and surface in two places:

* **Registrants tab** on the event detail page — one column per question
* **Export CSV** button in the registrants tab — one column per question, multi-select answers comma-joined, yes/no rendered as Yes/No

<Warning>
  Custom answers ride through Stripe Checkout metadata for paid events, capped at 500 characters when stringified. If a registrant's answers would exceed the cap, they'll get a friendly error at submit time. Keep questions concise — short-text answers are fine, but a 600-character essay question won't fit.
</Warning>

## Automated event emails

Haven sends three emails automatically for events with registration enabled:

### Registration confirmed

Sent immediately after someone registers. It includes the event name, date, time, location, and — for virtual events — the meeting URL. You can customize the body text under **Settings → Email Templates → Event registration confirmed**.

### Event reminder

Sent 24 hours before the event starts to everyone with an active registration. For virtual events, the meeting URL is included in the reminder so attendees don't have to hunt for it.

### Post-event follow-up

Sent 24–48 hours after the event ends. You can use this email to thank attendees, share photos, link to a recording, or promote your next event. Enable this email per event by turning on **Send post-event follow-up** in the event form (coming soon — currently a setting in **Settings → Email Templates → Post-event follow-up**).

<Note>
  All automated event emails are sent from your organization's branded email address and include your logo, colors, and organization name. You can edit the subject line and body text for each template, but the layout is managed by Haven to keep emails consistent and professional.
</Note>
