{
  "id": "zgVjyTFdUx4JfRnv",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Track site attendance when construction worker checks in by GPS",
  "tags": [],
  "nodes": [
    {
      "id": "e15aaea0-7665-41dd-b05a-eda638e0550e",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -320,
        40
      ],
      "parameters": {
        "path": "geofence-thaltej-attendance",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 1
    },
    {
      "id": "9958bc29-4e65-4996-86cb-a3cb9fc2cf3b",
      "name": "Validate Geofence & Format Log",
      "type": "n8n-nodes-base.function",
      "position": [
        -100,
        40
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b0803efa-f662-4071-8752-c47dec49eb98",
      "name": "Send email",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        340,
        40
      ],
      "parameters": {
        "text": "=Hello,\n\nThe attendance sheet has been successfully updated for today.\n\nPlease review the latest punch-in and punch-out entries to ensure everything is in order.\n\n\ud83d\uddd3\ufe0f Date: {{new Date().toLocaleDateString()}} \n\ud83d\udccd Location: Construction Site (Geofenced)\n\nYou can access the updated sheet here: [Insert Sheet Link]\n\nRegards,  \nn8n Automation System  \n",
        "options": {},
        "subject": "\ud83d\udccb Daily Attendance Updated \u2013 Please Review",
        "toEmail": "user@example.com",
        "fromEmail": "user@example.com",
        "emailFormat": "text"
      },
      "credentials": {
        "smtp": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "ab599b4d-b6da-458b-967f-8c7a7ad1214e",
      "name": "Append data to a sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        120,
        40
      ],
      "parameters": {
        "range": "Attendance!A:D",
        "options": {},
        "sheetId": "your_google_sheet_id",
        "operation": "append"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "4930e9c8-9e6a-4b31-bcef-717b09c2ef51",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -160
      ],
      "parameters": {
        "color": 6,
        "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."
      },
      "typeVersion": 1
    },
    {
      "id": "9a36eeaf-b4c8-4e0f-a96b-b4fee8e3be52",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -140,
        -160
      ],
      "parameters": {
        "color": 4,
        "width": 180,
        "height": 340,
        "content": "Validates if the worker\u2019s location is within the geofenced construction site area using Google Maps API.\nAlso formats the log with punch type, time, and date."
      },
      "typeVersion": 1
    },
    {
      "id": "5ed902d5-ce69-4b2b-a532-3cd5c2a8e271",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -160
      ],
      "parameters": {
        "color": 3,
        "width": 180,
        "height": 340,
        "content": "Appends the validated punch-in/out record to a Google Sheet for attendance tracking and reporting.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ab0ecb3a-53cf-4d58-9196-de9e4134a0e7",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        300,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 180,
        "height": 340,
        "content": "Sends a notification email with attendance details or alerts if the location is invalid.\n\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8d45bac2-3103-430c-a9ab-9f12168e48f2",
  "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
          }
        ]
      ]
    }
  }
}