{
  "_template": {
    "slug": "group-registration-form",
    "name": "Group Registration Form",
    "version": 2,
    "specVersion": 1,
    "source": "https://www.regform.com/form-templates/group-registration-form"
  },
  "form": {
    "title": "Group Registration Form",
    "nav": {
      "mode": "free",
      "backLabel": "Back",
      "nextLabel": "Next",
      "submitLabel": "Register Group",
      "showProgress": true,
      "validatePerStep": true
    },
    "steps": [
      {
        "id": "step-organizer",
        "title": "Group Organizer",
        "fields": [
          {
            "id": "f-primary-first-name",
            "key": "primary_first_name",
            "type": "text",
            "label": "Your First Name",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-primary-last-name",
            "key": "primary_last_name",
            "type": "text",
            "label": "Your Last Name",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-primary-email",
            "key": "primary_email",
            "type": "email",
            "label": "Your Email Address",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Receives the group summary, the receipt and the roster edit link.",
            "placeholder": "you@example.com"
          },
          {
            "id": "f-primary-phone",
            "key": "primary_phone",
            "type": "phone",
            "label": "Your Phone",
            "required": false,
            "hidden": false,
            "options": [],
            "placeholder": "+1 555 0100"
          },
          {
            "id": "f-organization",
            "key": "organization",
            "type": "text",
            "label": "Organization",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-organizer-attending",
            "key": "organizer_attending",
            "type": "radio",
            "label": "Are You Also Attending",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Yes",
                "value": "Yes"
              },
              {
                "label": "No",
                "value": "No"
              }
            ]
          }
        ]
      },
      {
        "id": "step-roster",
        "title": "Roster and Seats",
        "fields": [
          {
            "id": "f-group-name",
            "key": "group_name",
            "type": "text",
            "label": "Group or Team Name",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "Useful for seating, badge colour and reporting."
          },
          {
            "id": "f-seats",
            "key": "seats",
            "type": "item_select",
            "label": "Attendee Seats",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Set the number of seats. The attendee questions repeat once per seat, and the group rate applies automatically as the count rises.",
            "pricingMode": "quantity",
            "hiddenItemIds": [],
            "selectionMode": "single"
          },
          {
            "id": "f-volume-note",
            "key": "volume_note",
            "type": "text_block",
            "label": "",
            "required": false,
            "hidden": true,
            "options": [],
            "content": "<p><strong>Group rate applied.</strong> The discounted per seat price is reflected in your total below.</p>"
          },
          {
            "id": "f-promo-code",
            "key": "promo_code",
            "type": "text",
            "label": "Group or Promo Code",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "Codes are created on the form after import. Leave blank if you are not running one."
          }
        ]
      },
      {
        "id": "step-consent",
        "title": "Consent",
        "fields": [
          {
            "id": "f-terms",
            "key": "terms",
            "type": "legal",
            "label": "Terms, Refund and Substitution Policy",
            "required": true,
            "hidden": false,
            "options": [],
            "legalMode": "text",
            "legalText": "<p>Replace this with your terms. Group registrations generate the most substitution requests, so state the deadline clearly.</p>",
            "agreementLabel": "I agree"
          },
          {
            "id": "f-authorized",
            "key": "authorized",
            "type": "checkbox",
            "label": "I am authorized to register these attendees and to share their dietary and accessibility details",
            "required": false,
            "hidden": false,
            "options": []
          }
        ]
      }
    ],
    "cart": {
      "enabled": true,
      "currencyCode": "USD",
      "items": [
        {
          "id": "seat-standard",
          "name": "Attendee Seat",
          "price": 295,
          "active": true,
          "subForm": {
            "mode": "per_unit",
            "fields": [
              {
                "id": "f-attendee-first-name",
                "key": "attendee_first_name",
                "type": "text",
                "label": "First Name",
                "hidden": false,
                "options": [],
                "required": true
              },
              {
                "id": "f-attendee-last-name",
                "key": "attendee_last_name",
                "type": "text",
                "label": "Last Name",
                "hidden": false,
                "options": [],
                "required": true
              },
              {
                "id": "f-attendee-email",
                "key": "attendee_email",
                "type": "email",
                "label": "Email Address",
                "hidden": false,
                "options": [],
                "required": true,
                "description": "Each attendee gets their own confirmation at this address."
              },
              {
                "id": "f-attendee-job-title",
                "key": "attendee_job_title",
                "type": "text",
                "label": "Job Title",
                "hidden": false,
                "options": [],
                "required": false
              },
              {
                "id": "f-attendee-dietary",
                "key": "attendee_dietary",
                "type": "checkbox",
                "label": "Dietary Restrictions",
                "hidden": false,
                "options": [
                  {
                    "label": "Vegetarian",
                    "value": "Vegetarian"
                  },
                  {
                    "label": "Vegan",
                    "value": "Vegan"
                  },
                  {
                    "label": "Gluten free",
                    "value": "Gluten free"
                  },
                  {
                    "label": "Dairy free",
                    "value": "Dairy free"
                  },
                  {
                    "label": "Nut allergy",
                    "value": "Nut allergy"
                  },
                  {
                    "label": "None",
                    "value": "None"
                  }
                ],
                "required": false
              },
              {
                "id": "f-attendee-accessibility",
                "key": "attendee_accessibility",
                "type": "textarea",
                "label": "Accessibility Requests",
                "hidden": false,
                "options": [],
                "required": false,
                "placeholder": "Optional"
              }
            ],
            "required": true
          },
          "description": "One seat. Set the quantity to the size of your group."
        }
      ],
      "fees": [],
      "requireEmail": true,
      "paymentProviders": [
        "stripe"
      ],
      "promoStackingMode": "none",
      "buyerEmailFieldKey": "primary_email"
    },
    "theme": "light",
    "cookieNotice": {
      "enabled": true,
      "privacyPolicyUrl": ""
    },
    "integrations": [
      {
        "key": "stripe",
        "enabled": true,
        "settings": {
          "testCheckout": false,
          "paymentMethodTypes": [
            "card"
          ],
          "paymentMethodExtraFees": {
            "card": [],
            "us_bank_account": []
          }
        }
      },
      {
        "key": "invoice",
        "enabled": true,
        "settings": {
          "autoSendEmail": true,
          "includePaymentLinkInEmail": true
        }
      },
      {
        "key": "confirmation_email",
        "enabled": true,
        "settings": {
          "bodyHtml": "<p>Your group is registered. Each attendee has been sent their own confirmation. Use the edit link in this email to change names before the deadline.</p>",
          "includeCalendarLinks": true,
          "includeSessionIcsFile": false,
          "includeEventCalendarLink": true
        }
      }
    ],
    "notifications": {
      "emailOwnerOnSubmission": true
    },
    "thankYouMessage": "Your group is registered. Each attendee will get their own confirmation, and a receipt is on its way to the billing contact.",
    "showLanguageSelector": false
  },
  "rules": [
    {
      "id": "rule-group-rate-5-9",
      "actions": [
        {
          "action": "set_item_price",
          "target": "seats::seat-standard",
          "value": 265
        },
        {
          "action": "show_field",
          "target": "volume_note"
        }
      ],
      "conditions": [
        {
          "fact": "__cart_item_count__:seats:item:seat-standard",
          "value": 5,
          "operator": "greaterThanInclusive"
        },
        {
          "fact": "__cart_item_count__:seats:item:seat-standard",
          "value": 9,
          "operator": "lessThanInclusive"
        }
      ],
      "logicType": "all",
      "description": "Five to nine seats pay the small group rate",
      "evaluationMode": "immediate"
    },
    {
      "id": "rule-group-rate-10-plus",
      "actions": [
        {
          "action": "set_item_price",
          "target": "seats::seat-standard",
          "value": 236
        },
        {
          "action": "show_field",
          "target": "volume_note"
        }
      ],
      "conditions": [
        {
          "fact": "__cart_item_count__:seats:item:seat-standard",
          "value": 10,
          "operator": "greaterThanInclusive"
        }
      ],
      "logicType": "all",
      "description": "Ten or more seats pay the volume rate",
      "evaluationMode": "immediate"
    }
  ]
}