{
  "name": "Compare hotel prices across booking platforms with Scrape.do and Google Sheets",
  "nodes": [
    {
      "id": "b1427045-c6c1-4b46-b5f7-97ab10bbcedb",
      "name": "Parse & Validate Request",
      "type": "n8n-nodes-base.code",
      "position": [
        -280,
        300
      ]
    },
    {
      "id": "39c0a486-a0a3-46ae-a32c-a32b8d365f8c",
      "name": "Scrape Booking.com",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        140,
        20
      ]
    },
    {
      "id": "168855ef-41c3-432e-b58b-9c00d46824ad",
      "name": "Parse Booking.com Data",
      "type": "n8n-nodes-base.code",
      "position": [
        360,
        20
      ]
    },
    {
      "id": "f88bb0ab-8bd2-4fe7-8c32-03665a83faa3",
      "name": "Scrape Agoda",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        140,
        220
      ]
    },
    {
      "id": "e3037b9d-ff62-40b5-9e00-26c02d888ab6",
      "name": "Parse Agoda Data",
      "type": "n8n-nodes-base.code",
      "position": [
        360,
        220
      ]
    },
    {
      "id": "5d8ed81d-bab4-4608-958b-9698070bb83f",
      "name": "Scrape Expedia",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        140,
        420
      ]
    },
    {
      "id": "f7193704-f1b7-459b-9bfd-6af1ea72670b",
      "name": "Parse Expedia Data",
      "type": "n8n-nodes-base.code",
      "position": [
        360,
        420
      ]
    },
    {
      "id": "f1790196-666e-427c-b696-134ad9039c5d",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -500,
        300
      ]
    },
    {
      "id": "c6e84b0f-b09b-4361-b256-441ea8ed3ec1",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        760,
        220
      ]
    },
    {
      "id": "2bc71f42-8b78-4d22-ab2d-ac3454c27b28",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        940,
        220
      ]
    },
    {
      "id": "ac6e38a7-d769-4f6b-a33c-ac45719b8096",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1140,
        220
      ]
    },
    {
      "id": "main_overview",
      "name": "Sticky Note Main",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        -220
      ],
      "parameters": {
        "width": 450,
        "height": 350,
        "content": "# Hotel Price Scraper & Notifier\n\n### How it works\nThis workflow compares hotel prices across Booking.com, Agoda, and Expedia to find the best deal.\n1. A user submits a form with the Hotel Name, City,"
      }
    },
    {
      "id": "section_input",
      "name": "Sticky Note Section 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -540,
        200
      ],
      "parameters": {
        "width": 380,
        "height": 240,
        "content": "## 1. Input & Validation\nCaptures user request via Form and validates the date formats."
      }
    },
    {
      "id": "section_scrape",
      "name": "Sticky Note Section 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        -40
      ],
      "parameters": {
        "width": 460,
        "height": 600,
        "content": "## 2. Data Scraping & Normalization\nFetches raw HTML from platforms and extracts price/availability data."
      }
    },
    {
      "id": "section_output",
      "name": "Sticky Note Section 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        160
      ],
      "parameters": {
        "width": 580,
        "height": 240,
        "content": "## 3. Analysis & Notification\nMerges all results, finds the lowest price, and sends the email report."
      }
    },
    {
      "id": "warning_token",
      "name": "Sticky Note Warning",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        80,
        580
      ],
      "parameters": {
        "width": 250,
        "height": 100,
        "content": "⚠️ **Requirement**\nRequires `SCRAPEDO_TOKEN` variable."
      }
    }
  ],
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Agoda": {
      "main": [
        [
          {
            "node": "Parse Agoda Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Expedia": {
      "main": [
        [
          {
            "node": "Parse Expedia Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Agoda Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Parse & Validate Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Expedia Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Scrape Booking.com": {
      "main": [
        [
          {
            "node": "Parse Booking.com Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Booking.com Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse & Validate Request": {
      "main": [
        [
          {
            "node": "Scrape Booking.com",
            "type": "main",
            "index": 0
          },
          {
            "node": "Scrape Agoda",
            "type": "main",
            "index": 0
          },
          {
            "node": "Scrape Expedia",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 3
          }
        ]
      ]
    }
  }
}