{
  "slug": "site-induction",
  "name": "Site induction",
  "description": "Sign a visitor or a subcontractor onto a site, with their tickets and their acknowledgement.",
  "page": "https://lazerforms.com/use-cases/site-induction",
  "create_url": "https://lazerforms.com/signup?template=site-induction",
  "fields": [
    {
      "id": "si_name",
      "type": "text",
      "label": "Your name",
      "required": true,
      "description": ""
    },
    {
      "id": "si_company",
      "type": "text",
      "label": "Company you work for",
      "required": true,
      "description": ""
    },
    {
      "id": "si_phone",
      "type": "text",
      "label": "Mobile number",
      "required": true,
      "description": ""
    },
    {
      "id": "si_reason",
      "type": "select",
      "label": "Reason for the visit",
      "required": true,
      "description": "",
      "options": [
        {
          "label": "Trade work",
          "value": "trade_work"
        },
        {
          "label": "Delivery",
          "value": "delivery"
        },
        {
          "label": "Client visit",
          "value": "client_visit"
        },
        {
          "label": "Inspection or audit",
          "value": "inspection_or_audit"
        },
        {
          "label": "Maintenance call",
          "value": "maintenance_call"
        }
      ]
    },
    {
      "id": "si_supervisor",
      "type": "text",
      "label": "Who is supervising you on site",
      "required": true,
      "description": ""
    },
    {
      "id": "si_tickets",
      "type": "fileupload",
      "label": "Photographs of your tickets and licences",
      "required": true,
      "description": "Photograph the front of each card. Include any high risk work licence.",
      "max_files": 5
    },
    {
      "id": "si_ticket_expiry",
      "type": "datepicker",
      "label": "Earliest expiry among those tickets",
      "required": false,
      "description": ""
    },
    {
      "id": "si_understood",
      "type": "checkbox-simple",
      "label": "I understood the briefing and had the chance to ask questions",
      "required": true,
      "description": ""
    },
    {
      "id": "si_fit",
      "type": "checkbox-simple",
      "label": "I am fit for work and not affected by fatigue, alcohol, or medication",
      "required": true,
      "description": ""
    },
    {
      "id": "si_sign",
      "type": "signature-pad",
      "label": "Visitor signature",
      "required": true,
      "description": ""
    }
  ],
  "structure": [
    {
      "id": "si_h1",
      "type": "heading",
      "label": "",
      "config": {
        "required": false,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "text": "Who is entering the site",
        "level": 2,
        "alignment": "left",
        "color": "#000",
        "font_size": 0,
        "font_weight": "700",
        "margin_top": 24,
        "margin_bottom": 8
      }
    },
    {
      "id": "si_name",
      "type": "text",
      "label": "Your name",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "minlength": 0,
        "maxlength": 0
      }
    },
    {
      "id": "si_company",
      "type": "text",
      "label": "Company you work for",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "minlength": 0,
        "maxlength": 0
      }
    },
    {
      "id": "si_phone",
      "type": "text",
      "label": "Mobile number",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "minlength": 0,
        "maxlength": 0
      }
    },
    {
      "id": "si_reason",
      "type": "select",
      "label": "Reason for the visit",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "options": [
          {
            "label": "Trade work",
            "value": "trade_work"
          },
          {
            "label": "Delivery",
            "value": "delivery"
          },
          {
            "label": "Client visit",
            "value": "client_visit"
          },
          {
            "label": "Inspection or audit",
            "value": "inspection_or_audit"
          },
          {
            "label": "Maintenance call",
            "value": "maintenance_call"
          }
        ]
      }
    },
    {
      "id": "si_supervisor",
      "type": "text",
      "label": "Who is supervising you on site",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "minlength": 0,
        "maxlength": 0
      }
    },
    {
      "id": "si_h2",
      "type": "heading",
      "label": "",
      "config": {
        "required": false,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "text": "Tickets and competency",
        "level": 2,
        "alignment": "left",
        "color": "#000",
        "font_size": 0,
        "font_weight": "700",
        "margin_top": 24,
        "margin_bottom": 8
      }
    },
    {
      "id": "si_tickets",
      "type": "fileupload",
      "label": "Photographs of your tickets and licences",
      "config": {
        "required": true,
        "placeholder": "",
        "description": "Photograph the front of each card. Include any high risk work licence."
      },
      "meta": {
        "allowed_types": "jpg, png, pdf",
        "camera": true,
        "max_files": 5,
        "min_files": 1
      }
    },
    {
      "id": "si_ticket_expiry",
      "type": "datepicker",
      "label": "Earliest expiry among those tickets",
      "config": {
        "required": false,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "min": "",
        "max": ""
      }
    },
    {
      "id": "si_h3",
      "type": "heading",
      "label": "",
      "config": {
        "required": false,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "text": "Briefing",
        "level": 2,
        "alignment": "left",
        "color": "#000",
        "font_size": 0,
        "font_weight": "700",
        "margin_top": 24,
        "margin_bottom": 8
      }
    },
    {
      "id": "si_brief",
      "type": "paragraph",
      "label": "",
      "config": {
        "required": false,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "text": "You have been shown the site rules, the exclusion zones, the muster point, and the first aid post. You will wear the personal protective equipment required for your task and stop work if conditions change.",
        "alignment": "left",
        "color": "#555",
        "font_size": 0,
        "line_height": "1.55",
        "margin_top": 0,
        "margin_bottom": 14
      }
    },
    {
      "id": "si_understood",
      "type": "checkbox-simple",
      "label": "I understood the briefing and had the chance to ask questions",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "defaultValue": ""
      }
    },
    {
      "id": "si_fit",
      "type": "checkbox-simple",
      "label": "I am fit for work and not affected by fatigue, alcohol, or medication",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "defaultValue": ""
      }
    },
    {
      "id": "si_sign",
      "type": "signature-pad",
      "label": "Visitor signature",
      "config": {
        "required": true,
        "placeholder": "",
        "description": ""
      },
      "meta": {
        "height": 180,
        "pen_color": "#000",
        "background_color": "#ffffff"
      }
    }
  ],
  "example_submission": {
    "values": {
      "si_name": "Jordan Ellery",
      "si_company": "Northbank Logistics",
      "si_phone": "+44 20 7946 0958",
      "si_reason": "trade_work",
      "si_supervisor": "A short factual answer."
    },
    "idempotency_key": "site-induction-2026-09-09-001",
    "agent": {
      "name": "your-agent"
    }
  },
  "notes": [
    "Key every value by the field id, never by the label. A label may be renamed.",
    "A fileupload value is {\"base64\", \"filename\", \"content_type\"} or {\"url\"}, capped at 3 MB.",
    "A select value must match one of the option values exactly.",
    "A checkbox-simple value is one of yes, no, or na.",
    "A datepicker value is YYYY-MM-DD.",
    "Send an idempotency_key so a retry cannot store the same submission twice."
  ]
}