N
n8n Store
Workflow Market
Sneaker_Price_Drop_Monitor_via_Bright_data

Sneaker_Price_Drop_Monitor_via_Bright_data

by yaron-nofluff0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.ifn8n-nodes-base.coden8n-nodes-base.htmln8n-nodes-base.noOpn8n-nodes-base.gmailn8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceGratuit
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "5PoTonEYcOFEcNIS",
  "meta": {
    "instanceId": "60046904b104f0f72b2629a9d88fe9f676be4035769f1f08dad1dd38a76b9480",
    "templateCredsSetupCompleted": true
  },
  "name": "Sneaker_Price_Drop_Monitor_via_Bright_data",
  "tags": [],
  "nodes": [
    {
      "id": "c51b6162-0268-43b5-85f7-2d5f72ba761a",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3360,
        -680
      ],
      "parameters": {
        "color": 4,
        "width": 1300,
        "height": 320,
        "content": "=======================================\n            WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n    [email protected]\n\nExplore more tips and tutorials here:\n   - YouTube: https://www.youtube.com/@YaronBeen/videos\n   - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4f90e090-01ed-4b7a-83fe-059a4aafdebb",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3360,
        -340
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2178,
        "content": "# 👟 **Sneaker Price Drop Alert Automation**\n\n> *Track sneaker prices on resale sites and get alerted via email when prices drop below your set budget.*\n\n---\n\n## 🟢 **SECTION 1: Scheduled Price Scraping via Bright Data**\n\n### 🧭 **Nodes Involved**:\n\n1. 🕒 **Schedule Trigger — “Run Price Monitor Everyday”**\n2. 🌐 **HTTP Request — “Bright Data Scraper”**\n\n### 🧠 **What This Section Does**:\n\nThis section **automatically kicks off your sneaker tracking** every day without needing to press any buttons.\n\n* **🕒 Schedule Trigger**: Think of this like an alarm clock for your workflow. It runs once a day (or more often if you want).\n* **🌐 HTTP Request (Bright Data)**: Uses Bright Data’s **Web Unlocker** to scrape StockX or GOAT without getting blocked. This handles bot protection and gives you the full HTML content.\n\n### 🛠️ **Beginner Tip**:\n\nYou don’t have to be a coder or open the browser. Just schedule it and forget it—n8n + Bright Data handles it.\n\n---\n\n## 🟡 **SECTION 2: Extract Sneaker Info from HTML**\n\n### 🧱 **Nodes Involved**:\n\n3. 🧾 **HTML Extractor — “extractHtmlContent”**\n4. 📦 **Function — “Extract Title & Price”**\n\n### 🧠 **What This Section Does**:\n\nThis section **pulls out useful info from the webpage** — like the sneaker's name and its price.\n\n* **🧾 HTML Extractor**: Converts raw HTML into a structured format so we can easily extract text.\n* **📦 Extract Title & Price**: Goes through the HTML and collects the sneaker name and price. It also converts prices from strings like `\"$223\"` to usable numbers like `223`.\n\n### 🛠️ **Beginner Tip**:\n\nWebpages are full of clutter. This part filters that clutter and gets only what you care about: name + price.\n\n---\n\n## 🔴 **SECTION 3: Check for Deals & Send Alerts**\n\n### 📤 **Nodes Involved**:\n\n5. ⚖️ **IF Node — “Check Price < Threshold”**\n6. 📧 **Gmail Node — “Send Price Drop Email Alert”**\n7. ⛔ **No Operation — “Do Nothing”**\n\n### 🧠 **What This Section Does**:\n\nThis is the brain of the automation. It **decides whether a sneaker's price is good enough to alert you**, and then takes action.\n\n* **⚖️ IF Node**: Checks if the sneaker's price is below your target (e.g. \\$250). You can change this number anytime.\n* **📧 Gmail Node**: If a good deal is found, sends you an alert with the sneaker’s name and current price.\n* **⛔ No Operation**: If the price is too high, it simply does nothing and ends the workflow.\n\n### 🛠️ **Beginner Tip**:\n\nYou're not flooded with emails—only alerted when a good deal hits your threshold. Smart automation = peace of mind.\n\n---\n\n## ✅ **Why This Workflow is Powerful for Beginners**\n\n| Feature             | Benefit                                          |\n| ------------------- | ------------------------------------------------ |\n| ⏰ Scheduled         | Set it once, runs forever on autopilot.          |\n| 💡 No Coding Needed | All logic is visual and editable.                |\n| 💌 Smart Alerts     | Only get emails when prices are *actually* good. |\n| 🔐 Web Unlocker     | Gets past tough sites like StockX with ease.     |\n\n---\n\n## 📦 Bonus Suggestion:\n\nWant to track multiple sneaker models? Just **clone the HTTP node and update the query** (e.g. `Jordan+4`, `Yeezy+Foam`, etc.)\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "332880a6-ee8f-4553-b5a1-4b80c4c8cc2c",
      "name": "Check Price < Threshold1",
      "type": "n8n-nodes-base.if",
      "position": [
        -540,
        100
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "777acb15-4e75-43e5-a2fc-2799ef7e1b3f",
              "operator": {
                "type": "number",
                "operation": "lt"
              },
              "leftValue": "={{ $json.price }}",
              "rightValue": 200
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "96151916-77cc-44b8-9bf9-ef8db770aefd",
      "name": "Send Price Drop Email Alert1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -220,
        -60
      ],
      "webhookId": "481c69ca-1a74-4725-8473-cfebbb208ee4",
      "parameters": {
        "sendTo": "[email protected]",
        "message": "=Sneaker name: {{ $json.title }}\nCurrent Price: ${{ $json.price }}\nLink: https://stockx.com/category/sneakers",
        "options": {},
        "subject": "=The sneaker {{ $json.title }} has dropped below your threshold price.",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "AQDSl75AdzK3vmqJ",
          "name": "Gmail account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f2411d03-fbea-4e7c-8833-a5f7699abb02",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        -220,
        260
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "5448a03e-dc95-41e3-8333-c31e2262ea1a",
      "name": "Extract Title & Price",
      "type": "n8n-nodes-base.code",
      "position": [
        -800,
        100
      ],
      "parameters": {
        "jsCode": "const titles = items[0].json.Title;\nconst prices = items[0].json.Price;\n\nconst output = [];\n\nfor (let i = 0; i < titles.length; i++) {\n  const title = titles[i];\n  const priceStr = prices[i];\n  const price = parseFloat(priceStr.replace(/[^0-9.]/g, ''));\n\n  output.push({\n    json: {\n      title,\n      price\n    }\n  });\n}\n\nreturn output;\n"
      },
      "typeVersion": 2
    },
    {
      "id": "7122595e-8bef-4b02-b19f-8a31786bc1d3",
      "name": "HTML Extractor",
      "type": "n8n-nodes-base.html",
      "position": [
        -1020,
        100
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "Title",
              "cssSelector": "#product-results > div > div > a > div > div.css-cp13gg > div.css-0 > p",
              "returnArray": true
            },
            {
              "key": "Price",
              "cssSelector": "#product-results > div > div > a > div > div.css-cp13gg > div.css-1b6n4o1 > div > p",
              "returnArray": true
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d95db7c4-786c-44f5-893b-9329dfe9ff43",
      "name": "HTTP RequestTrigger Bright Data Scraper",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1240,
        100
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "n8n_unblocker"
            },
            {
              "name": "url",
              "value": "https://stockx.com/category/sneakers"
            },
            {
              "name": "country",
              "value": "us"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer API KEY"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a0d899f0-9a4f-4e81-bbf5-8ff05e8151e4",
      "name": "Schedule TriggerRun Price Monitor Everyday",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1460,
        100
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b5d711d4-a0fe-49ec-bc38-f3ca5872a53f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1520,
        -680
      ],
      "parameters": {
        "color": 6,
        "width": 440,
        "height": 1040,
        "content": "## 🟢 **SECTION 1: Scheduled Price Scraping via Bright Data**\n\n### 🧭 **Nodes Involved**:\n\n1. 🕒 **Schedule Trigger — “Run Price Monitor Everyday”**\n2. 🌐 **HTTP Request — “Bright Data Scraper”**\n\n### 🧠 **What This Section Does**:\n\nThis section **automatically kicks off your sneaker tracking** every day without needing to press any buttons.\n\n* **🕒 Schedule Trigger**: Think of this like an alarm clock for your workflow. It runs once a day (or more often if you want).\n* **🌐 HTTP Request (Bright Data)**: Uses Bright Data’s **Web Unlocker** to scrape StockX or GOAT without getting blocked. This handles bot protection and gives you the full HTML content.\n\n### 🛠️ **Beginner Tip**:\n\nYou don’t have to be a coder or open the browser. Just schedule it and forget it—n8n + Bright Data handles it.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7517433d-d579-44df-a165-966647985bbd",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -660
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 1020,
        "content": "## 🟡 **SECTION 2: Extract Sneaker Info from HTML**\n\n### 🧱 **Nodes Involved**:\n\n3. 🧾 **HTML Extractor — “extractHtmlContent”**\n4. 📦 **Function — “Extract Title & Price”**\n\n### 🧠 **What This Section Does**:\n\nThis section **pulls out useful info from the webpage** — like the sneaker's name and its price.\n\n* **🧾 HTML Extractor**: Converts raw HTML into a structured format so we can easily extract text.\n* **📦 Extract Title & Price**: Goes through the HTML and collects the sneaker name and price. It also converts prices from strings like `\"$223\"` to usable numbers like `223`.\n\n### 🛠️ **Beginner Tip**:\n\nWebpages are full of clutter. This part filters that clutter and gets only what you care about: name + price.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "226d36ab-ef43-4bc0-a932-4187b3399311",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        -740
      ],
      "parameters": {
        "color": 3,
        "width": 540,
        "height": 1140,
        "content": "## 🔴 **SECTION 3: Check for Deals & Send Alerts**\n\n### 📤 **Nodes Involved**:\n\n5. ⚖️ **IF Node — “Check Price < Threshold”**\n6. 📧 **Gmail Node — “Send Price Drop Email Alert”**\n7. ⛔ **No Operation — “Do Nothing”**\n\n### 🧠 **What This Section Does**:\n\nThis is the brain of the automation. It **decides whether a sneaker's price is good enough to alert you**, and then takes action.\n\n* **⚖️ IF Node**: Checks if the sneaker's price is below your target (e.g. \\$250). You can change this number anytime.\n* **📧 Gmail Node**: If a good deal is found, sends you an alert with the sneaker’s name and current price.\n* **⛔ No Operation**: If the price is too high, it simply does nothing and ends the workflow.\n\n### 🛠️ **Beginner Tip**:\n\nYou're not flooded with emails—only alerted when a good deal hits your threshold. Smart automation = peace of mind.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "612031dd-780a-4091-914f-38e903f1902b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -740
      ],
      "parameters": {
        "color": 7,
        "width": 380,
        "height": 240,
        "content": "## I’ll receive a tiny commission if you join Bright Data through this link—thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "136b1b1c-6d37-40e3-9c94-0012af157f83",
  "connections": {
    "HTML Extractor": {
      "main": [
        [
          {
            "node": "Extract Title & Price",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Title & Price": {
      "main": [
        [
          {
            "node": "Check Price < Threshold1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check Price < Threshold1": {
      "main": [
        [
          {
            "node": "Send Price Drop Email Alert1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP RequestTrigger Bright Data Scraper": {
      "main": [
        [
          {
            "node": "HTML Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule TriggerRun Price Monitor Everyday": {
      "main": [
        [
          {
            "node": "HTTP RequestTrigger Bright Data Scraper",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流