{
  "_template": {
    "slug": "event-waitlist-form",
    "name": "Event Waitlist Form",
    "version": 1,
    "specVersion": 1,
    "source": "https://www.regform.com/form-templates/event-waitlist-form"
  },
  "form": {
    "title": "Event Waitlist Form",
    "nav": {
      "mode": "free",
      "backLabel": "Back",
      "nextLabel": "Next",
      "submitLabel": "Join the Waitlist",
      "showProgress": true,
      "validatePerStep": true
    },
    "steps": [
      {
        "id": "step-contact",
        "title": "Your Details",
        "fields": [
          {
            "id": "f-intro",
            "key": "intro",
            "type": "text_block",
            "label": "",
            "required": false,
            "hidden": false,
            "options": [],
            "content": "<p><strong>Registration for this event has closed.</strong> Joining the waitlist does not guarantee a place, but if one becomes available we will contact you.</p>"
          },
          {
            "id": "f-first-name",
            "key": "first_name",
            "type": "text",
            "label": "First Name",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-last-name",
            "key": "last_name",
            "type": "text",
            "label": "Last Name",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-email",
            "key": "email",
            "type": "email",
            "label": "Email Address",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Where we will contact you if a place opens up.",
            "placeholder": "you@example.com",
            "editableAfterSubmit": true
          },
          {
            "id": "f-phone",
            "key": "phone",
            "type": "phone",
            "label": "Mobile Phone",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "Released places are time limited, so a number we can reach you on helps.",
            "placeholder": "+1 555 0100",
            "editableAfterSubmit": true
          },
          {
            "id": "f-organization",
            "key": "organization",
            "type": "text",
            "label": "Organization",
            "required": false,
            "hidden": false,
            "options": []
          }
        ]
      },
      {
        "id": "step-what",
        "title": "What You Wanted",
        "fields": [
          {
            "id": "f-ticket-wanted",
            "key": "ticket_wanted",
            "type": "item_select",
            "label": "Which Pass Did You Want",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Tells us where the demand was, which shapes what we put on sale next time.",
            "pricingMode": "single",
            "selectionMode": "single",
            "visibleItemIds": [
              "wl-full",
              "wl-single-day",
              "wl-workshop",
              "wl-student"
            ]
          },
          {
            "id": "f-places-wanted",
            "key": "places_wanted",
            "type": "number",
            "label": "How Many Places Do You Need",
            "required": false,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-flexibility",
            "key": "flexibility",
            "type": "checkbox",
            "label": "Would You Consider Any of These",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "A different day to the one I wanted",
                "value": "Different day"
              },
              {
                "label": "A virtual place instead of in person",
                "value": "Virtual"
              },
              {
                "label": "The next occurrence of this event",
                "value": "Next occurrence"
              },
              {
                "label": "A place on the standby list for the day itself",
                "value": "Standby"
              },
              {
                "label": "None of these, only what I asked for",
                "value": "None"
              }
            ],
            "description": "Ticking any of these makes it much more likely we can offer you something."
          }
        ]
      },
      {
        "id": "step-priority",
        "title": "Helping Us Prioritise",
        "fields": [
          {
            "id": "f-priority-intro",
            "key": "priority_intro",
            "type": "text_block",
            "label": "",
            "required": false,
            "hidden": false,
            "options": [],
            "content": "<p>These questions help us offer released places to the people most able to take them.</p>"
          },
          {
            "id": "f-is-member",
            "key": "is_member",
            "type": "radio",
            "label": "Are You a Member",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Yes",
                "value": "Yes"
              },
              {
                "label": "No",
                "value": "No"
              }
            ]
          },
          {
            "id": "f-member-id",
            "key": "member_id",
            "type": "text",
            "label": "Member ID",
            "required": false,
            "hidden": true,
            "options": []
          },
          {
            "id": "f-travel-booked",
            "key": "travel_booked",
            "type": "radio",
            "label": "Have You Already Booked Travel or Accommodation",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Yes",
                "value": "Yes"
              },
              {
                "label": "No",
                "value": "No"
              }
            ]
          },
          {
            "id": "f-travel-details",
            "key": "travel_details",
            "type": "textarea",
            "label": "What Is Already Booked",
            "required": false,
            "hidden": true,
            "options": [],
            "description": "So we know how quickly we need to reach you.",
            "placeholder": "Flights, hotel, both"
          },
          {
            "id": "f-decision-deadline",
            "key": "decision_deadline",
            "type": "date",
            "label": "Latest Date a Place Would Still Work",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "After this date a place would no longer be any use to you."
          },
          {
            "id": "f-previously-attended",
            "key": "previously_attended",
            "type": "radio",
            "label": "Have You Attended Before",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Yes",
                "value": "Yes"
              },
              {
                "label": "No, this would be my first time",
                "value": "No"
              }
            ]
          }
        ]
      },
      {
        "id": "step-confirm",
        "title": "Staying in Touch",
        "fields": [
          {
            "id": "f-notify-by",
            "key": "notify_by",
            "type": "checkbox",
            "label": "How Should We Reach You",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Email",
                "value": "Email"
              },
              {
                "label": "Text message",
                "value": "Text"
              },
              {
                "label": "Phone call",
                "value": "Phone"
              }
            ]
          },
          {
            "id": "f-notes",
            "key": "notes",
            "type": "textarea",
            "label": "Anything Else We Should Know",
            "required": false,
            "hidden": false,
            "options": [],
            "placeholder": "Optional"
          },
          {
            "id": "f-terms",
            "key": "terms",
            "type": "legal",
            "label": "Waitlist Terms",
            "required": true,
            "hidden": false,
            "options": [],
            "legalMode": "text",
            "legalText": "<p>Replace this with your terms. State that joining the waitlist does not guarantee a place, how places are allocated when they become available, how long an offered place is held before it passes to the next person, and how long you keep waitlist details after the event.</p>",
            "agreementLabel": "I understand a place is not guaranteed"
          },
          {
            "id": "f-future-events",
            "key": "future_events",
            "type": "checkbox",
            "label": "Tell me when registration opens for future events",
            "required": false,
            "hidden": false,
            "options": []
          }
        ]
      }
    ],
    "cart": {
      "enabled": true,
      "currencyCode": "USD",
      "items": [
        {
          "id": "wl-full",
          "name": "Full Conference Pass",
          "price": 0,
          "active": true,
          "capQuantity": 0,
          "description": "Full access, both days. Sold out.",
          "waitlistWhenSoldOut": true
        },
        {
          "id": "wl-single-day",
          "name": "Single Day Pass",
          "price": 0,
          "active": true,
          "capQuantity": 0,
          "description": "Single day access. Sold out.",
          "waitlistWhenSoldOut": true
        },
        {
          "id": "wl-workshop",
          "name": "Workshop Only",
          "price": 0,
          "active": true,
          "capQuantity": 0,
          "description": "Preconference workshop only. Sold out.",
          "waitlistWhenSoldOut": true
        },
        {
          "id": "wl-student",
          "name": "Student Pass",
          "price": 0,
          "active": true,
          "capQuantity": 0,
          "description": "Student rate. Sold out.",
          "waitlistWhenSoldOut": true
        }
      ],
      "fees": [],
      "requireEmail": true,
      "paymentProviders": [
        "stripe"
      ],
      "promoStackingMode": "none",
      "buyerEmailFieldKey": "email"
    },
    "theme": "light",
    "editLinkTtl": {
      "unit": "days",
      "value": 60,
      "enabled": true
    },
    "cookieNotice": {
      "enabled": true,
      "privacyPolicyUrl": ""
    },
    "integrations": [
      {
        "key": "waitlist",
        "enabled": true,
        "settings": {
          "mode": "manual",
          "offerWindow": {
            "unit": "hours",
            "value": 36
          },
          "formCapacity": 400,
          "reviewFieldKeys": [
            "last_name",
            "ticket_wanted",
            "travel_booked",
            "is_member"
          ],
          "itemCapacityEnabled": true
        }
      },
      {
        "key": "confirmation_email",
        "enabled": true,
        "settings": {
          "bodyHtml": "<p>You are on the waitlist. This does not guarantee a place. If one becomes available we will email you with a short window to claim it, so watch your inbox. Replace this text with how long that window is and who to contact with questions.</p>",
          "includeCalendarLinks": false,
          "includeSessionIcsFile": false,
          "includeEventCalendarLink": false
        }
      }
    ],
    "notifications": {
      "emailOwnerOnSubmission": true
    },
    "thankYouMessage": "You are on the waitlist. A place is not guaranteed, but if one opens up we will be in touch quickly, so keep an eye on your inbox.",
    "showLanguageSelector": false
  },
  "rules": [
    {
      "id": "rule-member-id",
      "actions": [
        {
          "action": "show_field",
          "target": "member_id"
        }
      ],
      "conditions": [
        {
          "fact": "is_member",
          "value": "Yes",
          "operator": "equal"
        }
      ],
      "logicType": "all",
      "description": "Members may be prioritised, so capture the ID",
      "evaluationMode": "immediate"
    },
    {
      "id": "rule-travel-details",
      "actions": [
        {
          "action": "show_field",
          "target": "travel_details"
        }
      ],
      "conditions": [
        {
          "fact": "travel_booked",
          "value": "Yes",
          "operator": "equal"
        }
      ],
      "logicType": "all",
      "description": "Committed travel is the strongest signal somebody will accept a released place",
      "evaluationMode": "immediate"
    }
  ]
}