AutomationFlowsEmail & Gmail › Sneaker Price Drop Alerts with Bright Data & N8n

Sneaker Price Drop Alerts with Bright Data & N8n

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically monitors sneaker prices across multiple retailers and sends you alerts when prices drop on your favorite models. It helps sneaker enthusiasts and collectors find the best deals without constantly checking multiple websites.

Cron / scheduled trigger★★★★☆ complexity13 nodesGmailHTTP Request
Email & Gmail Trigger: Cron / scheduled Nodes: 13 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5223 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "5PoTonEYcOFEcNIS",
  "meta": {
    "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    Yaron@nofluff.online\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": "# \ud83d\udc5f **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## \ud83d\udfe2 **SECTION 1: Scheduled Price Scraping via Bright Data**\n\n### \ud83e\udded **Nodes Involved**:\n\n1. \ud83d\udd52 **Schedule Trigger \u2014 \u201cRun Price Monitor Everyday\u201d**\n2. \ud83c\udf10 **HTTP Request \u2014 \u201cBright Data Scraper\u201d**\n\n### \ud83e\udde0 **What This Section Does**:\n\nThis section **automatically kicks off your sneaker tracking** every day without needing to press any buttons.\n\n* **\ud83d\udd52 Schedule Trigger**: Think of this like an alarm clock for your workflow. It runs once a day (or more often if you want).\n* **\ud83c\udf10 HTTP Request (Bright Data)**: Uses Bright Data\u2019s **Web Unlocker** to scrape StockX or GOAT without getting blocked. This handles bot protection and gives you the full HTML content.\n\n### \ud83d\udee0\ufe0f **Beginner Tip**:\n\nYou don\u2019t have to be a coder or open the browser. Just schedule it and forget it\u2014n8n + Bright Data handles it.\n\n---\n\n## \ud83d\udfe1 **SECTION 2: Extract Sneaker Info from HTML**\n\n### \ud83e\uddf1 **Nodes Involved**:\n\n3. \ud83e\uddfe **HTML Extractor \u2014 \u201cextractHtmlContent\u201d**\n4. \ud83d\udce6 **Function \u2014 \u201cExtract Title & Price\u201d**\n\n### \ud83e\udde0 **What This Section Does**:\n\nThis section **pulls out useful info from the webpage** \u2014 like the sneaker's name and its price.\n\n* **\ud83e\uddfe HTML Extractor**: Converts raw HTML into a structured format so we can easily extract text.\n* **\ud83d\udce6 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### \ud83d\udee0\ufe0f **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## \ud83d\udd34 **SECTION 3: Check for Deals & Send Alerts**\n\n### \ud83d\udce4 **Nodes Involved**:\n\n5. \u2696\ufe0f **IF Node \u2014 \u201cCheck Price < Threshold\u201d**\n6. \ud83d\udce7 **Gmail Node \u2014 \u201cSend Price Drop Email Alert\u201d**\n7. \u26d4 **No Operation \u2014 \u201cDo Nothing\u201d**\n\n### \ud83e\udde0 **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* **\u2696\ufe0f IF Node**: Checks if the sneaker's price is below your target (e.g. \\$250). You can change this number anytime.\n* **\ud83d\udce7 Gmail Node**: If a good deal is found, sends you an alert with the sneaker\u2019s name and current price.\n* **\u26d4 No Operation**: If the price is too high, it simply does nothing and ends the workflow.\n\n### \ud83d\udee0\ufe0f **Beginner Tip**:\n\nYou're not flooded with emails\u2014only alerted when a good deal hits your threshold. Smart automation = peace of mind.\n\n---\n\n## \u2705 **Why This Workflow is Powerful for Beginners**\n\n| Feature             | Benefit                                          |\n| ------------------- | ------------------------------------------------ |\n| \u23f0 Scheduled         | Set it once, runs forever on autopilot.          |\n| \ud83d\udca1 No Coding Needed | All logic is visual and editable.                |\n| \ud83d\udc8c Smart Alerts     | Only get emails when prices are *actually* good. |\n| \ud83d\udd10 Web Unlocker     | Gets past tough sites like StockX with ease.     |\n\n---\n\n## \ud83d\udce6 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
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "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": {
          "name": "<your credential>"
        }
      },
      "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 YOUR_TOKEN_HERE 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": "## \ud83d\udfe2 **SECTION 1: Scheduled Price Scraping via Bright Data**\n\n### \ud83e\udded **Nodes Involved**:\n\n1. \ud83d\udd52 **Schedule Trigger \u2014 \u201cRun Price Monitor Everyday\u201d**\n2. \ud83c\udf10 **HTTP Request \u2014 \u201cBright Data Scraper\u201d**\n\n### \ud83e\udde0 **What This Section Does**:\n\nThis section **automatically kicks off your sneaker tracking** every day without needing to press any buttons.\n\n* **\ud83d\udd52 Schedule Trigger**: Think of this like an alarm clock for your workflow. It runs once a day (or more often if you want).\n* **\ud83c\udf10 HTTP Request (Bright Data)**: Uses Bright Data\u2019s **Web Unlocker** to scrape StockX or GOAT without getting blocked. This handles bot protection and gives you the full HTML content.\n\n### \ud83d\udee0\ufe0f **Beginner Tip**:\n\nYou don\u2019t have to be a coder or open the browser. Just schedule it and forget it\u2014n8n + 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": "## \ud83d\udfe1 **SECTION 2: Extract Sneaker Info from HTML**\n\n### \ud83e\uddf1 **Nodes Involved**:\n\n3. \ud83e\uddfe **HTML Extractor \u2014 \u201cextractHtmlContent\u201d**\n4. \ud83d\udce6 **Function \u2014 \u201cExtract Title & Price\u201d**\n\n### \ud83e\udde0 **What This Section Does**:\n\nThis section **pulls out useful info from the webpage** \u2014 like the sneaker's name and its price.\n\n* **\ud83e\uddfe HTML Extractor**: Converts raw HTML into a structured format so we can easily extract text.\n* **\ud83d\udce6 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### \ud83d\udee0\ufe0f **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": "## \ud83d\udd34 **SECTION 3: Check for Deals & Send Alerts**\n\n### \ud83d\udce4 **Nodes Involved**:\n\n5. \u2696\ufe0f **IF Node \u2014 \u201cCheck Price < Threshold\u201d**\n6. \ud83d\udce7 **Gmail Node \u2014 \u201cSend Price Drop Email Alert\u201d**\n7. \u26d4 **No Operation \u2014 \u201cDo Nothing\u201d**\n\n### \ud83e\udde0 **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* **\u2696\ufe0f IF Node**: Checks if the sneaker's price is below your target (e.g. \\$250). You can change this number anytime.\n* **\ud83d\udce7 Gmail Node**: If a good deal is found, sends you an alert with the sneaker\u2019s name and current price.\n* **\u26d4 No Operation**: If the price is too high, it simply does nothing and ends the workflow.\n\n### \ud83d\udee0\ufe0f **Beginner Tip**:\n\nYou're not flooded with emails\u2014only 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\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "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
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automatically monitors sneaker prices across multiple retailers and sends you alerts when prices drop on your favorite models. It helps sneaker enthusiasts and collectors find the best deals without constantly checking multiple websites.

Source: https://n8n.io/workflows/5223/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.

Gmail, Google Drive, Google Sheets +1
Email & Gmail

Instead of providing a routine check, it focuses on significant movements by: Sending a Slack alert only if a query crosses a defined movement threshold. Emailing a structured report with the Top 25 i

HTTP Request, Slack, Gmail
Email & Gmail

Looking for a way to track GitHub bounty issues automatically and get notified in real time? This GitHub Bounty Tracker workflow monitors repositories for issues labeled 💎 Bounty, logs them in Google

Google Sheets, HTTP Request, WhatsApp +1
Email & Gmail

This workflow automatically sends a beautifully designed HTML newsletter every Sunday at 8 AM, featuring products currently on sale from your Algolia-powered e-commerce store.

Google Sheets, HTTP Request, Gmail
Email & Gmail

This workflow automatically identifies your weekly bestselling product from your Algolia-powered e-commerce store and generates a cinematic product video using Google VEO 3.0 AI, helping marketing tea

HTTP Request, Gmail