{
  "nodes": [
    {
      "id": "3f6e9ca9-e576-4c65-aa5f-73ccdc775b84",
      "name": "Sticky Note16",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        16,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 3032,
        "height": 84,
        "content": "# \ud83d\ude80 Live Demo Request"
      },
      "typeVersion": 1
    },
    {
      "id": "7c4f06a8-2e33-4b3c-b4a9-bf7a2d8a1b07",
      "name": "Select Date&Time",
      "type": "n8n-nodes-base.form",
      "onError": "continueRegularOutput",
      "position": [
        1680,
        192
      ],
      "parameters": {
        "options": {
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Center container */\n.container {\n  max-width: 600px !important;\n  margin: 0 auto !important;\n}\n\n.card .form-group {\n  margin-top: 4px !important;\n  margin-bottom: 4px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 10px !important;\n    padding: 15px !important;\n  }\n  .card:before {\n    height: 50px !important;\n    margin: -15px -15px 20px -15px !important;\n  }\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.7em !important;\n    margin: 20px 0 15px 0 !important;\n  }\n}\n",
          "formTitle": "Select your preferred time",
          "buttonLabel": "Submit"
        },
        "defineForm": "json",
        "jsonOutput": "=[{{ $json.form }}]"
      },
      "typeVersion": 1
    },
    {
      "id": "4152a07b-0210-4b26-92cb-d9cd6c31a7a8",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        48,
        -96
      ],
      "parameters": {
        "options": {
          "path": "yourcompany-demo-request",
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 5px !important;\n    padding: 15px !important;\n    max-width: 100% !important;\n    box-shadow: none !important; /* optional: flatter design for mobile */\n  }\n\n  .card:before {\n    height: 40px !important;\n    margin: -15px -15px 20px -15px !important;\n    border-radius: 10px 10px 0 0 !important;\n  }\n\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.4em !important;\n    margin: 5px 0 5px 0 !important;\n  }\n\n  .card input[type=\"text\"],\n  .card input[type=\"email\"],\n  .card input[type=\"tel\"],\n  .card input[type=\"number\"],\n  .card textarea,\n  .card select {\n    font-size: 15px !important;\n    padding: 10px 12px !important;\n  }\n\n  .card button[type=\"submit\"],\n  .card input[type=\"submit\"] {\n    font-size: 16px !important;\n    padding: 12px 20px !important;\n  }\n\n  .container {\n    padding: 0 5px !important;\n    max-width: 100% !important;\n  }\n\n  .card .form-group {\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n  }\n}",
          "buttonLabel": "Let's Schedule",
          "appendAttribution": false
        },
        "formTitle": "Live Demo Request",
        "formDescription": "Request a live demo of our software"
      },
      "typeVersion": 2.2
    },
    {
      "id": "e2c3bdf4-e85d-4f22-aac4-3a4791dc583a",
      "name": "Outlook Calendar CheckAvailability",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        816,
        48
      ],
      "parameters": {
        "url": "https://graph.microsoft.com/v1.0/me/calendarView",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "startDateTime",
              "value": "={{ $json[\"Select the date you would you require a demo\"] }}T00:00:00"
            },
            {
              "name": "endDateTime",
              "value": "={{\n  (() => {\n    const d = new Date($json[\"Select the date you would you require a demo\"]);\n    d.setDate(d.getDate() + 30);\n    return d.toLocaleDateString('en-CA') + 'T23:59:59';\n  })()\n}}"
            },
            {
              "name": "$top",
              "value": "3"
            },
            {
              "name": "$orderby\t",
              "value": "start/dateTime asc"
            },
            {
              "name": "$filter",
              "value": "startsWith(subject,'Online Meeting Slot')"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Prefer",
              "value": "outlook.timezone=\"Asia/Dubai\""
            }
          ]
        },
        "nodeCredentialType": "microsoftOutlookOAuth2Api"
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "e112995a-c635-4a2a-b1e6-790cf828129c",
      "name": "Set Events",
      "type": "n8n-nodes-base.code",
      "onError": "continueRegularOutput",
      "position": [
        1328,
        64
      ],
      "parameters": {
        "jsCode": "// items passed in are the HTTP Request output\n// which returns { value: [ /* events */ ] }\nconst events = $input.first().json.value || [];\n\n// 2) map into slot objects\nconst newSlots = events.map(e => {\n  // Parse ISO string into Date object\n  const d = new Date(e.start.dateTime);\n\n  // Format: Wednesday 20 August 2025 11:00\n  const formatted = d.toLocaleString(\"en-GB\", {\n    weekday: \"long\",\n    day: \"2-digit\",\n    month: \"long\",\n    year: \"numeric\",\n    hour: \"2-digit\",\n    minute: \"2-digit\",\n    hour12: false\n  });\n\n  return {\n    time: formatted,\n    subject: e.subject,\n    start: e.start.dateTime,\n    end: e.end.dateTime,\n    id: e.id\n  };\n});\n\n// 3) return each slot as its own item\nreturn newSlots.map(slot => ({ json: slot }));\n\n\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9317b0c9-f67b-4b5b-8f2c-347f218b4686",
      "name": "Set Form Dates",
      "type": "n8n-nodes-base.code",
      "onError": "continueRegularOutput",
      "position": [
        1520,
        192
      ],
      "parameters": {
        "jsCode": "// 1. Pull in all event objects\nconst events = items.map(item => item.json);\n\n// 2. Build your dropdown object\nconst dropdown = {\n  fieldLabel: \"Select one of our available time\",\n  fieldType: \"dropdown\",\n  fieldOptions: {\n    values: events.map(e => {\n      // Parse the time string into a Date object\n      return { option: e.time };\n    })\n  },\n  requiredField: true\n};\n\n// 3. Combine into a single JS array: dropdown first, then each event\nconst combined = [{ form: dropdown }, ...events];\n\nreturn combined.map(json => ({ json }));\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "5ca66c67-4ad4-4204-96ec-e55614d5f317",
      "name": "Select New Date",
      "type": "n8n-nodes-base.form",
      "position": [
        1040,
        304
      ],
      "parameters": {
        "options": {
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Center container */\n.container {\n  max-width: 600px !important;\n  margin: 0 auto !important;\n}\n\n.card .form-group {\n  margin-top: 4px !important;\n  margin-bottom: 4px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 5px !important;\n    padding: 15px !important;\n    max-width: 100% !important;\n    box-shadow: none !important; /* optional: flatter design for mobile */\n  }\n\n  .card:before {\n    height: 40px !important;\n    margin: -15px -15px 20px -15px !important;\n    border-radius: 10px 10px 0 0 !important;\n  }\n\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.4em !important;\n    margin: 5px 0 5px 0 !important;\n  }\n\n  .card input[type=\"text\"],\n  .card input[type=\"email\"],\n  .card input[type=\"tel\"],\n  .card input[type=\"number\"],\n  .card textarea,\n  .card select {\n    font-size: 15px !important;\n    padding: 10px 12px !important;\n  }\n\n  .card button[type=\"submit\"],\n  .card input[type=\"submit\"] {\n    font-size: 16px !important;\n    padding: 12px 20px !important;\n  }\n\n  .container {\n    padding: 0 5px !important;\n    max-width: 100% !important;\n  }\n\n  .card .form-group {\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n  }\n}\n",
          "formTitle": "Previous selected date is unavailable",
          "buttonLabel": "Submit",
          "formDescription": "Please, select a new date"
        },
        "formFields": {
          "values": [
            {
              "fieldType": "date",
              "fieldLabel": "Select the date you would you require a demo",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4dcf3659-6ee2-45e8-8340-b3261c9ad1df",
      "name": "Outlook Update Event",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueErrorOutput",
      "position": [
        2656,
        48
      ],
      "parameters": {
        "url": "=https://graph.microsoft.com/v1.0/me/events/{{ $('Persist Selected Date&Time').item.json.id }}",
        "method": "PATCH",
        "options": {},
        "jsonBody": "={\n    \"categories\":[\"Booked\",\"Online meeting\"],\n    \"subject\": \"Live Demo Booked\",\n    \"showAs\": \"busy\",\n    \"body\": {\n      \"contentType\": \"HTML\",\n      \"content\": \"{{$json.content}}\"\n    },\n    \"attendees\": [\n      {\n        \"emailAddress\": {\n          \"address\": \"{{$json.your_email}}\",\n          \"name\": \"{{$json.your_name}}\"\n        },\n        \"type\": \"required\"\n      },\n      {\n        \"emailAddress\": {\n          \"address\": \"{{ $('Persist Selected Date&Time').item.json['Contact Email'] }}\",\n          \"name\": \"{{ $('Persist Selected Date&Time').item.json['Full Contact Name'] }}\"\n        },\n        \"type\": \"required\"\n      }\n    ]\n\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "microsoftOutlookOAuth2Api"
      },
      "credentials": {
        "microsoftOutlookOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "211a666f-c3cc-48fe-9769-0769e866dc61",
      "name": "Final Form",
      "type": "n8n-nodes-base.form",
      "onError": "continueRegularOutput",
      "position": [
        2848,
        64
      ],
      "parameters": {
        "options": {
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Center container */\n.container {\n  max-width: 600px !important;\n  margin: 0 auto !important;\n}\n\n.card .form-group {\n  margin-top: 4px !important;\n  margin-bottom: 4px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 5px !important;\n    padding: 15px !important;\n    max-width: 100% !important;\n    box-shadow: none !important; /* optional: flatter design for mobile */\n  }\n\n  .card:before {\n    height: 40px !important;\n    margin: -15px -15px 20px -15px !important;\n    border-radius: 10px 10px 0 0 !important;\n  }\n\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.4em !important;\n    margin: 5px 0 5px 0 !important;\n  }\n\n  .card input[type=\"text\"],\n  .card input[type=\"email\"],\n  .card input[type=\"tel\"],\n  .card input[type=\"number\"],\n  .card textarea,\n  .card select {\n    font-size: 15px !important;\n    padding: 10px 12px !important;\n  }\n\n  .card button[type=\"submit\"],\n  .card input[type=\"submit\"] {\n    font-size: 16px !important;\n    padding: 12px 20px !important;\n  }\n\n  .container {\n    padding: 0 5px !important;\n    max-width: 100% !important;\n  }\n\n  .card .form-group {\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n  }\n}\n"
        },
        "operation": "completion",
        "completionTitle": "Live Demo Scheduled",
        "completionMessage": "=\u2705 All set! Your Live Demo is booked on  \n{{ \n  new Date($('Persist Selected Date&Time').item.json.start)\n    .toLocaleDateString('en-GB', { weekday:'long', day:'numeric', month:'long' })\n    .replace(',', '') \n}}  \n\nFrom {{ \n  new Date($('Persist Selected Date&Time').item.json.start)\n    .toLocaleTimeString('en-GB', { hour:'2-digit', minute:'2-digit', hour12:false })\n}}  \nTo   {{ \n  new Date($('Persist Selected Date&Time').item.json.end)\n    .toLocaleTimeString('en-GB', { hour:'2-digit', minute:'2-digit', hour12:false })\n}}  \n\nA calendar invite is on its way.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4f82e490-51b7-40a0-9be0-f52fac0ab533",
      "name": "Get Date",
      "type": "n8n-nodes-base.merge",
      "onError": "continueRegularOutput",
      "position": [
        1872,
        80
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "advanced": true,
        "mergeByFields": {
          "values": [
            {
              "field1": "time",
              "field2": "Select one of our available time"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "682a04fe-6001-4ebf-b8a7-a6dbb7caa07f",
      "name": "Form Failed",
      "type": "n8n-nodes-base.form",
      "onError": "continueRegularOutput",
      "position": [
        64,
        672
      ],
      "parameters": {
        "options": {
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Center container */\n.container {\n  max-width: 600px !important;\n  margin: 0 auto !important;\n}\n\n.card .form-group {\n  margin-top: 4px !important;\n  margin-bottom: 4px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 5px !important;\n    padding: 15px !important;\n    max-width: 100% !important;\n    box-shadow: none !important; /* optional: flatter design for mobile */\n  }\n\n  .card:before {\n    height: 40px !important;\n    margin: -15px -15px 20px -15px !important;\n    border-radius: 10px 10px 0 0 !important;\n  }\n\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.4em !important;\n    margin: 5px 0 5px 0 !important;\n  }\n\n  .card input[type=\"text\"],\n  .card input[type=\"email\"],\n  .card input[type=\"tel\"],\n  .card input[type=\"number\"],\n  .card textarea,\n  .card select {\n    font-size: 15px !important;\n    padding: 10px 12px !important;\n  }\n\n  .card button[type=\"submit\"],\n  .card input[type=\"submit\"] {\n    font-size: 16px !important;\n    padding: 12px 20px !important;\n  }\n\n  .container {\n    padding: 0 5px !important;\n    max-width: 100% !important;\n  }\n\n  .card .form-group {\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n  }\n}\n"
        },
        "operation": "completion",
        "completionTitle": "\u26a0\ufe0f Submission Failed",
        "completionMessage": "=Something went wrong while submitting your live demo request.\nPlease try again in a moment.\nIf the issue persists, contact our support team at info@yourcompany.ae or call us at +971 55 5555 55 55 we\u2019ll be happy to assist you."
      },
      "typeVersion": 1
    },
    {
      "id": "926d46af-3943-48c6-b178-4d1dc539b509",
      "name": "New Slot Available?",
      "type": "n8n-nodes-base.if",
      "onError": "continueRegularOutput",
      "position": [
        1024,
        48
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5be8bde8-b6fb-48cd-a5c7-4f425a9e0923",
              "operator": {
                "type": "object",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json }}",
              "rightValue": ""
            },
            {
              "id": "4d152d98-636a-4521-a30e-489d1d2ca2b4",
              "operator": {
                "type": "array",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.value }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "befe75b8-157e-40b7-a595-2477f5d8543f",
      "name": "Create Zoom meeting",
      "type": "n8n-nodes-base.zoom",
      "onError": "continueErrorOutput",
      "position": [
        2320,
        48
      ],
      "parameters": {
        "topic": "=Live Demo - {{ $json[\"Company trade name\"] }}",
        "authentication": "oAuth2",
        "additionalFields": {
          "duration": 40,
          "timeZone": "Asia/Dubai",
          "startTime": "={{ $json.start }}"
        }
      },
      "credentials": {
        "zoomOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "389efd9d-165d-4648-a129-c2c741fcd16a",
      "name": "Persist Selected Date&Time",
      "type": "n8n-nodes-base.merge",
      "onError": "continueRegularOutput",
      "position": [
        2096,
        -80
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "e0552e28-e7dc-4a1d-b2d5-13b62af932d4",
      "name": "Client Details",
      "type": "n8n-nodes-base.form",
      "onError": "continueRegularOutput",
      "position": [
        256,
        -96
      ],
      "parameters": {
        "options": {
          "customCss": "/* N8N Landing Page CSS \u2013 Header-matching Blues */\n\n/* Style the main form card */\n.card {\n  position: relative;\n  max-width: 500px;\n  margin: 20px auto;\n  padding: 20px;\n  background: white !important;\n  border-radius: 12px;\n  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n}\n\n/* Header bar with your header gradient */\n.card:before {\n  content: '';\n  display: block;\n  height: 50px;\n  background: linear-gradient(135deg, #0A3E7B 0%, #1565C0 100%) !important;\n  position: relative;\n  margin: -20px -20px 30px -20px;\n  border-radius: 12px 12px 0 0;\n}\n\n/* Titles in deep blue */\n.form-header,\n.card h1,\n.card h2 {\n  text-align: center !important;\n  color: #0A3E7B !important;\n  font-weight: 500 !important;\n  font-size: 1.6em !important;\n  margin: 20px 0 15px 0 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Description copy in a cool neutral */\n.card p {\n  text-align: center !important;\n  color: #475569 !important;\n  position: relative;\n  z-index: 5;\n}\n\n/* Inputs wrapper keeps above the gradient */\n.inputs-wrapper {\n  position: relative;\n  z-index: 5;\n}\n\n/* Form fields with blue focus */\n.card input[type=\"text\"],\n.card input[type=\"email\"],\n.card input[type=\"tel\"],\n.card input[type=\"number\"],\n.card textarea,\n.card select {\n  width: 100% !important;\n  padding: 12px 16px !important;\n  border: 2px solid #E5E7EB !important;\n  border-radius: 8px !important;\n  font-size: 16px !important;\n  transition: border-color 0.3s ease !important;\n  box-sizing: border-box !important;\n}\n\n.card input:focus,\n.card textarea:focus,\n.card select:focus {\n  outline: none !important;\n  border-color: #0A3E7B !important;\n  box-shadow: 0 0 0 3px rgba(10, 62, 123, 0.1) !important;\n}\n\n/* Submit button in a mid-to-light blue gradient */\n.card button[type=\"submit\"],\n.card input[type=\"submit\"] {\n  background: linear-gradient(135deg, #1565C0 0%, #64B5F6 100%) !important;\n  color: white !important;\n  border: none !important;\n  padding: 15px 40px !important;\n  border-radius: 10px !important;\n  font-size: 18px !important;\n  font-weight: 600 !important;\n  cursor: pointer !important;\n  width: 100% !important;\n  margin-top: 10px !important;\n  transition: all 0.3s ease !important;\n  box-shadow: 0 4px 15px rgba(21, 101, 192, 0.3) !important;\n  position: relative;\n  z-index: 5;\n}\n\n.card button:hover,\n.card input[type=\"submit\"]:hover {\n  transform: translateY(-2px) !important;\n  box-shadow: 0 6px 20px rgba(21, 101, 192, 0.4) !important;\n}\n\n/* Page background to complement the pale side of your header */\nbody.vsc-initialized {\n  background: #EEF6FF !important;\n  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;\n  margin: 0 !important;\n  padding: 20px !important;\n}\n\n/* Center container */\n.container {\n  max-width: 600px !important;\n  margin: 0 auto !important;\n}\n\n.card .form-group {\n  margin-top: 4px !important;\n  margin-bottom: 4px !important;\n}\n\n/* Mobile tweaks */\n@media (max-width: 768px) {\n  .card {\n    margin: 5px !important;\n    padding: 15px !important;\n    max-width: 100% !important;\n    box-shadow: none !important; /* optional: flatter design for mobile */\n  }\n\n  .card:before {\n    height: 40px !important;\n    margin: -15px -15px 20px -15px !important;\n    border-radius: 10px 10px 0 0 !important;\n  }\n\n  .form-header,\n  .card h1,\n  .card h2 {\n    font-size: 1.4em !important;\n    margin: 5px 0 5px 0 !important;\n  }\n\n  .card input[type=\"text\"],\n  .card input[type=\"email\"],\n  .card input[type=\"tel\"],\n  .card input[type=\"number\"],\n  .card textarea,\n  .card select {\n    font-size: 15px !important;\n    padding: 10px 12px !important;\n  }\n\n  .card button[type=\"submit\"],\n  .card input[type=\"submit\"] {\n    font-size: 16px !important;\n    padding: 12px 20px !important;\n  }\n\n  .container {\n    padding: 0 5px !important;\n    max-width: 100% !important;\n  }\n\n  .card .form-group {\n    margin-top: 6px !important;\n    margin-bottom: 6px !important;\n  }\n}\n",
          "formTitle": "Demo Request",
          "buttonLabel": "Submit"
        },
        "formFields": {
          "values": [
            {
              "fieldLabel": "Company trade name",
              "requiredField": true
            },
            {
              "fieldLabel": "Full Contact Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Contact Role",
              "requiredField": true
            },
            {
              "fieldType": "email",
              "fieldLabel": "Contact Email",
              "requiredField": true
            },
            {
              "fieldLabel": "Contact Phone",
              "placeholder": "050 111 2442",
              "requiredField": true
            },
            {
              "fieldType": "date",
              "fieldLabel": "Select the date you would you require a demo",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "965c381d-5c13-4b06-9fde-468e59325752",
      "name": "Selected Date Has Slot Available?",
      "type": "n8n-nodes-base.if",
      "onError": "continueRegularOutput",
      "position": [
        496,
        64
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "680bb6fe-eede-40d6-9e8b-995f74a53645",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{\n  (new Date($json['Select the date you would you require a demo']).getTime()) >= new Date().getTime()\n}}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "e055f836-1d14-4c59-84ea-608826085bf2",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        416,
        32
      ],
      "parameters": {
        "color": 5,
        "width": 800,
        "height": 688,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Date Availability\n**When the user selects a date in the form, first we check if there is an available slot with subject name 'Online Meeting Slot' at this date\n**The Calendar must have pre-created event in the outlook calendar with subject name 'Online Meeting Slot'\n**If there are no slots available on the selected date, the Form loops back to ask for a new date until we fetch a date that contains available 'Online Meeting Slot'"
      },
      "typeVersion": 1
    },
    {
      "id": "e5c4d914-9e04-4b37-8b70-e520a2ffb2ee",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1248,
        32
      ],
      "parameters": {
        "color": 6,
        "width": 800,
        "height": 688,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Time Availability\n***Once a date is fetched, we propose the 3 nearest time slots available from the date of selection and present it in the Form for the user to choose from"
      },
      "typeVersion": 1
    },
    {
      "id": "036184e2-f87c-4237-adc3-768aea38903c",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        32
      ],
      "parameters": {
        "color": 4,
        "width": 992,
        "height": 688,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## Create Zoom Link - Update Event - Send Invitation\n***Once the user has selected both Date & Time, we create the zoom link \n***Update Event with \n- Zoom link URL \n- Client Details\n- Change the Event Subject to 'Booked Live Demo' so that this slot becomes unavailable for the next clients attempts to schedule the slot"
      },
      "typeVersion": 1
    },
    {
      "id": "1a50e67c-d2eb-4929-9433-a3b9649b64d2",
      "name": "Set Event Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        2496,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "17e17f08-3b06-480e-b363-d4fd704eea12",
              "name": "content",
              "type": "string",
              "value": "=<h2>\n<strong>{{ $('Persist Selected Date&Time').item.json['Company trade name'] }}</strong>\n</h2>\n\n<p>\n<strong>Requested by: </strong>{{ $('Persist Selected Date&Time').item.json['Full Contact Name'] }}</p>\n\n<p><strong>Role: </strong>{{ $('Persist Selected Date&Time').item.json['Contact Role'] }}</p>\n\n<p><strong>Phone: </strong>{{ $('Persist Selected Date&Time').item.json['Contact Phone'] }}</p>\n\n<p><strong>Email: </strong>{{ $('Persist Selected Date&Time').item.json['Contact Email'] }}</p>\n\n<p>Subject: Your Company Live Demo</p>\n\n<p>Kindly join via Zoom: <a href=\\\"{{ $json.join_url }}\\\">{{ $json.join_url }}</a></p>\n\n<p>For more information visit our website <a href=\\\"https://yourwebsite.ae\\\">www.yourwebsite.ae</a></p>"
            },
            {
              "id": "899d0b17-6726-4e7b-9880-6a54d307b2f2",
              "name": "your_email",
              "type": "string",
              "value": "John"
            },
            {
              "id": "3633f129-47b2-4754-9a2e-977090356cdc",
              "name": "your_name",
              "type": "string",
              "value": "Smith"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8eb535b6-1947-4c30-a65a-817bdf680189",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -208
      ],
      "parameters": {
        "width": 704,
        "height": 944,
        "content": "#### Live Demo Booking with Outlook + Zoom\n\nThis workflow automates **live demo scheduling**:  \n\n1. **Client Form** \u2192 Collects company & contact details with preferred demo date.  \n2. **Outlook Calendar Check** \u2192 Looks for available events titled *\u201cOnline Meeting Slot\u201d*.  \n   - If no slot exists \u2192 prompts client to pick a new date.  \n   - If slot exists \u2192 shows up to 3 nearest available times.  \n3. **Client Selects Time** \u2192 Their choice is merged with the event details.  \n4. **Zoom Meeting Created** \u2192 A Zoom link is generated automatically.  \n5. **Update Outlook Event** \u2192 The slot is updated with:  \n   - Client details  \n   - Zoom meeting link  \n   - Subject changed to *\u201cBooked Live Demo\u201d* (to block double-booking).  \n6. **Confirmation** \u2192 Client receives styled confirmation + calendar invite.  \n\n\u26a1 **Requirements:**  \n- Microsoft Outlook account with pre-created *\u201cOnline Meeting Slot\u201d* events.  \n- Zoom account with OAuth2 credentials.  \n- n8n self-hosted or cloud setup.  \n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Get Date": {
      "main": [
        [
          {
            "node": "Persist Selected Date&Time",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Set Events": {
      "main": [
        [
          {
            "node": "Set Form Dates",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Client Details": {
      "main": [
        [
          {
            "node": "Selected Date Has Slot Available?",
            "type": "main",
            "index": 0
          },
          {
            "node": "Persist Selected Date&Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Form Dates": {
      "main": [
        [
          {
            "node": "Select Date&Time",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select New Date": {
      "main": [
        [
          {
            "node": "Selected Date Has Slot Available?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select Date&Time": {
      "main": [
        [
          {
            "node": "Get Date",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Set Event Fields": {
      "main": [
        [
          {
            "node": "Outlook Update Event",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Client Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Zoom meeting": {
      "main": [
        [
          {
            "node": "Set Event Fields",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Form Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "New Slot Available?": {
      "main": [
        [
          {
            "node": "Set Events",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Select New Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Outlook Update Event": {
      "main": [
        [
          {
            "node": "Final Form",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Form Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Persist Selected Date&Time": {
      "main": [
        [
          {
            "node": "Create Zoom meeting",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Selected Date Has Slot Available?": {
      "main": [
        [
          {
            "node": "Outlook Calendar CheckAvailability",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Select New Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Outlook Calendar CheckAvailability": {
      "main": [
        [
          {
            "node": "New Slot Available?",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Form Failed",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}