{
  "name": "Automate construction site attendance tracking with geofencing, Google Sheets & email alerts",
  "nodes": [
    {
      "id": "e15aaea0-7665-41dd-b05a-eda638e0550e",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -320,
        40
      ]
    },
    {
      "id": "9958bc29-4e65-4996-86cb-a3cb9fc2cf3b",
      "name": "Validate Geofence & Format Log",
      "type": "n8n-nodes-base.function",
      "position": [
        -100,
        40
      ]
    },
    {
      "id": "b0803efa-f662-4071-8752-c47dec49eb98",
      "name": "Send email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        340,
        40
      ]
    },
    {
      "id": "ab599b4d-b6da-458b-967f-8c7a7ad1214e",
      "name": "Append data to a sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        120,
        40
      ]
    },
    {
      "id": "4930e9c8-9e6a-4b31-bcef-717b09c2ef51",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -160
      ],
      "parameters": {
        "width": 180,
        "height": 340,
        "content": "Receives check-in/check-out requests from mobile input (e.g., Google Form or WhatsApp). Carries GPS coordinates and worker info."
      }
    },
    {
      "id": "9a36eeaf-b4c8-4e0f-a96b-b4fee8e3be52",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -160
      ],
      "parameters": {
        "width": 180,
        "height": 340,
        "content": "Validates if the worker’s location is within the geofenced construction site area using Google Maps API.\nAlso formats the log with punch type, time, and date."
      }
    },
    {
      "id": "5ed902d5-ce69-4b2b-a532-3cd5c2a8e271",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -160
      ],
      "parameters": {
        "width": 180,
        "height": 340,
        "content": "Appends the validated punch-in/out record to a Google Sheet for attendance tracking and reporting.\n\n"
      }
    },
    {
      "id": "ab0ecb3a-53cf-4d58-9196-de9e4134a0e7",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        -160
      ],
      "parameters": {
        "width": 180,
        "height": 340,
        "content": "Sends a notification email with attendance details or alerts if the location is invalid.\n\n"
      }
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Validate Geofence & Format Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append data to a sheet": {
      "main": [
        [
          {
            "node": "Send email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate Geofence & Format Log": {
      "main": [
        [
          {
            "node": "Append data to a sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}