{
  "name": "Automated web form data collection and storage to Google Sheets",
  "nodes": [
    {
      "id": "cf2ed5e3-f96a-48d2-af22-360e3009bc3d",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1216,
        320
      ]
    },
    {
      "id": "30199601-bb17-4eff-a5ee-00555e0c21ae",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        512,
        320
      ]
    },
    {
      "id": "2fd4f703-b974-44b0-9fb5-31de9107ff00",
      "name": "Store Data in Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1552,
        240
      ]
    },
    {
      "id": "78904589-f8b2-45ec-bdf5-b9dc6771b5c3",
      "name": "Clean response data",
      "type": "n8n-nodes-base.code",
      "position": [
        848,
        320
      ]
    },
    {
      "id": "87e98656-6854-4d62-b2cf-6b64ef138506",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -768,
        -368
      ],
      "parameters": {
        "width": 992,
        "height": 1488,
        "content": "# Automated Web Form Data Collection and Storage to Google Sheets\n\n## Overflow\nThis n8n workflow allows you to collect data from a web form and automatically store it in a Google Sheet. It includes da"
      }
    },
    {
      "id": "3e600129-67b3-4b48-874b-91fb227dc62f",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        304,
        -368
      ],
      "parameters": {
        "width": 400,
        "height": 960,
        "content": "## **Webhook Trigger**\nThe **Webhook** node acts as the entry point for the workflow. It listens for `POST` requests sent to a unique path (`/93a81ced-e52c-4d31-96d2-c91a20bd7453`). When a form or fro"
      }
    },
    {
      "id": "219a09fc-7e16-4630-b5c5-1f8c43d4d999",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -368
      ],
      "parameters": {
        "width": 368,
        "height": 960,
        "content": "## **Clean and Structure Incoming Data**\n\nThis is a **Code** node that processes Cleans and restructures incoming data from the webhook and appends a submission date in `YYYY-MM-DD` format. It extract"
      }
    },
    {
      "id": "f37db36d-028a-4022-ab44-b4539f0cb22e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -368
      ],
      "parameters": {
        "width": 304,
        "height": 960,
        "content": "## **Looping for Batch Handling**\nPrepares the workflow to handle data in batches — useful if you're processing multiple submissions at once (like a list of items from the frontend).\n\nHow it works:\nEv"
      }
    },
    {
      "id": "2f47f2f7-433a-4557-b9e8-ffa86c2127da",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -368
      ],
      "parameters": {
        "width": 368,
        "height": 960,
        "content": "## **Append Data to Google Sheets**\nThe **Google Sheets** node named “Store Data in Sheet” is responsible for appending the incoming structured data into a specific Google Sheet. The sheet is defined "
      }
    },
    {
      "id": "1088b3f4-546c-40dc-9443-1ab617aeaa09",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1808,
        -368
      ],
      "parameters": {
        "width": 400,
        "height": 960,
        "content": "## **Wait**\nThe **Wait** node introduces a delay of 5 seconds in the workflow. This is especially useful when handling multiple items in a loop or batch, as it prevents hitting Google Sheets API rate "
      }
    },
    {
      "id": "eeb0a16e-d621-4a58-8231-d5812c69e9b1",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1952,
        320
      ]
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Clean response data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Store Data in Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clean response data": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Data in Sheet": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}