{
  "_template": {
    "slug": "interview-slot-booking-form",
    "name": "Interview Slot Booking Form",
    "version": 1,
    "specVersion": 1,
    "source": "https://www.regform.com/form-templates/interview-slot-booking-form"
  },
  "form": {
    "title": "Interview Slot Booking Form",
    "nav": {
      "mode": "free",
      "backLabel": "Back",
      "nextLabel": "Next",
      "submitLabel": "Book Interview",
      "showProgress": true,
      "validatePerStep": true
    },
    "steps": [
      {
        "id": "step-employer",
        "title": "Employer",
        "fields": [
          {
            "id": "f-employer",
            "key": "employer",
            "type": "text",
            "label": "Employer",
            "required": true,
            "hidden": false,
            "options": [],
            "prefill": {
              "key": "employer",
              "type": "queryParam"
            },
            "description": "Prefilled from your interview link. Check this is the right employer before booking."
          },
          {
            "id": "f-posted-role",
            "key": "posted_role",
            "type": "text",
            "label": "Posted Role",
            "required": false,
            "hidden": false,
            "options": [],
            "prefill": {
              "key": "role",
              "type": "queryParam"
            },
            "description": "Prefilled where the employer is interviewing for a specific role."
          }
        ]
      },
      {
        "id": "step-candidate",
        "title": "About You",
        "fields": [
          {
            "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": "Your interview confirmation is sent here.",
            "placeholder": "you@example.com",
            "editableAfterSubmit": true
          },
          {
            "id": "f-phone",
            "key": "phone",
            "type": "phone",
            "label": "Mobile Phone",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "In case the employer needs to reach you on the day.",
            "placeholder": "+1 555 0100",
            "editableAfterSubmit": true
          },
          {
            "id": "f-candidate-type",
            "key": "candidate_type",
            "type": "radio",
            "label": "Which Best Describes You",
            "required": false,
            "hidden": false,
            "options": [
              {
                "label": "Current student",
                "value": "Student"
              },
              {
                "label": "Recent graduate",
                "value": "Recent graduate"
              },
              {
                "label": "Experienced professional",
                "value": "Experienced"
              },
              {
                "label": "Changing career",
                "value": "Career changer"
              }
            ]
          }
        ]
      },
      {
        "id": "step-role",
        "title": "The Role",
        "fields": [
          {
            "id": "f-role-of-interest",
            "key": "role_of_interest",
            "type": "text",
            "label": "Role You Want to Discuss",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Which position are you interviewing for. Employers hiring across several roles need to know."
          },
          {
            "id": "f-resume-link",
            "key": "resume_link",
            "type": "text",
            "label": "Resume Link",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "Shared with the employer so your interview starts in the right place.",
            "placeholder": "https://"
          },
          {
            "id": "f-questions",
            "key": "questions",
            "type": "textarea",
            "label": "Anything You Particularly Want to Cover",
            "required": false,
            "hidden": false,
            "options": [],
            "placeholder": "Optional"
          }
        ]
      },
      {
        "id": "step-slot",
        "title": "Your Interview",
        "fields": [
          {
            "id": "f-slot-intro",
            "key": "slot_intro",
            "type": "text_block",
            "label": "",
            "required": false,
            "hidden": false,
            "options": [],
            "content": "<p>Each slot holds one interview. Times already booked are not shown, and if the schedule is full you will be offered a place on the waitlist.</p>"
          },
          {
            "id": "f-slot",
            "key": "slot",
            "type": "item_select",
            "label": "Choose an Interview Time",
            "required": true,
            "hidden": false,
            "options": [],
            "description": "Replace these with the employer's real schedule.",
            "pricingMode": "single",
            "selectionMode": "single",
            "visibleItemIds": [
              "iv-0900",
              "iv-0930",
              "iv-1000",
              "iv-1030",
              "iv-1100",
              "iv-1300",
              "iv-1330",
              "iv-1400",
              "iv-1430",
              "iv-1500"
            ]
          },
          {
            "id": "f-format",
            "key": "format",
            "type": "radio",
            "label": "Interview Format",
            "required": true,
            "hidden": false,
            "options": [
              {
                "label": "In person at the event",
                "value": "In person"
              },
              {
                "label": "Virtual",
                "value": "Virtual"
              }
            ]
          },
          {
            "id": "f-location-note",
            "key": "location_note",
            "type": "text_block",
            "label": "",
            "required": false,
            "hidden": true,
            "options": [],
            "content": "<p><strong>Your interview is in person.</strong> Replace this with the room or table number, the nearest entrance and who to ask for when you arrive.</p>"
          },
          {
            "id": "f-time-zone",
            "key": "time_zone",
            "type": "dropdown",
            "label": "Your Time Zone",
            "required": false,
            "hidden": true,
            "options": [
              {
                "label": "Eastern (ET)",
                "value": "Eastern"
              },
              {
                "label": "Central (CT)",
                "value": "Central"
              },
              {
                "label": "Mountain (MT)",
                "value": "Mountain"
              },
              {
                "label": "Pacific (PT)",
                "value": "Pacific"
              },
              {
                "label": "Outside North America",
                "value": "Other"
              }
            ],
            "multiple": false
          },
          {
            "id": "f-accessibility",
            "key": "accessibility",
            "type": "textarea",
            "label": "Accessibility or Support Needs",
            "required": false,
            "hidden": false,
            "options": [],
            "description": "Anything that would help us make the interview work for you.",
            "placeholder": "Optional"
          }
        ]
      },
      {
        "id": "step-confirm",
        "title": "Confirm",
        "fields": [
          {
            "id": "f-attendance-commitment",
            "key": "attendance_commitment",
            "type": "checkbox",
            "label": "I will attend this interview, and will cancel in advance if I cannot so the slot can go to another candidate",
            "required": true,
            "hidden": false,
            "options": []
          },
          {
            "id": "f-share-with-employer",
            "key": "share_with_employer",
            "type": "checkbox",
            "label": "My details and resume link may be shared with this employer ahead of the interview",
            "required": true,
            "hidden": false,
            "options": []
          }
        ]
      }
    ],
    "cart": {
      "enabled": true,
      "currencyCode": "USD",
      "items": [
        {
          "id": "iv-0900",
          "name": "9:00 AM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-0930",
          "name": "9:30 AM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1000",
          "name": "10:00 AM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1030",
          "name": "10:30 AM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1100",
          "name": "11:00 AM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1300",
          "name": "1:00 PM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1330",
          "name": "1:30 PM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1400",
          "name": "2:00 PM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1430",
          "name": "2:30 PM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        },
        {
          "id": "iv-1500",
          "name": "3:00 PM",
          "price": 0,
          "active": true,
          "capQuantity": 1,
          "description": "25 minute interview with a 5 minute changeover."
        }
      ],
      "fees": [],
      "holdMinutes": 10,
      "requireEmail": true,
      "paymentProviders": [
        "stripe"
      ],
      "promoStackingMode": "none",
      "buyerEmailFieldKey": "email"
    },
    "theme": "light",
    "editLinkTtl": {
      "unit": "days",
      "value": 30,
      "enabled": true
    },
    "cookieNotice": {
      "enabled": true,
      "privacyPolicyUrl": ""
    },
    "integrations": [
      {
        "key": "waitlist",
        "enabled": true,
        "settings": {
          "mode": "fifo",
          "offerWindow": {
            "unit": "hours",
            "value": 12
          },
          "reviewFieldKeys": [
            "first_name",
            "last_name",
            "email",
            "role_of_interest"
          ],
          "itemCapacityEnabled": true
        }
      },
      {
        "key": "confirmation_email",
        "enabled": true,
        "settings": {
          "bodyHtml": "<p>Your interview is booked and the time is below. Replace this text with where to go, who to ask for, how long the interview will run and what to bring. Include a number to call if you are running late.</p>",
          "includeCalendarLinks": false,
          "includeSessionIcsFile": false,
          "includeEventCalendarLink": false
        }
      }
    ],
    "notifications": {
      "emailOwnerOnSubmission": true
    },
    "thankYouMessage": "Your interview is booked. The time, location and what to bring are on their way to your inbox.",
    "showLanguageSelector": false
  },
  "rules": [
    {
      "id": "rule-in-person",
      "actions": [
        {
          "action": "show_field",
          "target": "location_note"
        }
      ],
      "conditions": [
        {
          "fact": "format",
          "value": "In person",
          "operator": "equal"
        }
      ],
      "logicType": "all",
      "description": "Show where to go for in person interviews",
      "evaluationMode": "immediate"
    },
    {
      "id": "rule-virtual",
      "actions": [
        {
          "action": "show_field",
          "target": "time_zone"
        },
        {
          "action": "require_field",
          "target": "time_zone"
        }
      ],
      "conditions": [
        {
          "fact": "format",
          "value": "Virtual",
          "operator": "equal"
        }
      ],
      "logicType": "all",
      "description": "Virtual interviews need a time zone so the confirmation is right",
      "evaluationMode": "immediate"
    }
  ]
}