AutomationFlowsAI & RAG › Automated Amazon Stock Level Tracker with Bright Data Mcp and Openai

Automated Amazon Stock Level Tracker with Bright Data Mcp and Openai

ByYaron Been @yaron-nofluff on n8n.io

This workflow automatically tracks inventory stock levels across multiple products and suppliers to prevent stockouts and optimize inventory management. It saves you time by eliminating the need to manually check stock levels and provides automated alerts when inventory reaches…

Cron / scheduled trigger★★★★☆ complexityAI-powered17 nodesAgentOpenAI ChatN8N Nodes McpGmailOutput Parser AutofixingOutput Parser Structured
AI & RAG Trigger: Cron / scheduled Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Gmail 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": "UtVgRkTTYi8Xt5vH",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "17 Track Stock Levels",
  "tags": [],
  "nodes": [
    {
      "id": "baadc7a6-3cf9-4e2f-9e40-6b6afb75396b",
      "name": "Check Stock Every X Hours",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "93771587-54b5-4b37-87c0-7497b4ed69fa",
      "name": "Define Product URL",
      "type": "n8n-nodes-base.set",
      "position": [
        200,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "a6354275-2ea3-4641-915f-194e4da11022",
              "name": "Product url",
              "type": "string",
              "value": "https://www.amazon.com/UGREEN-Delivery-Multiport-Adapter-Thinkpad/dp/B0BR3M8XHK/ref=sxin_14_recs_zoco_stores_brand_identity_bs?content-id=amzn1.sym.7d2e00dd-9358-4f89-aca0-04685eb73811%3Aamzn1.sym.7d2e00dd-9358-4f89-aca0-04685eb73811&crid=2CB2GLCEIKPKS&cv_ct_cx=ugreen&keywords=ugreen&pd_rd_i=B0BR3M8XHK&pd_rd_r=15617e04-710c-4101-b1d1-d8a58739f635&pd_rd_w=IUheb&pd_rd_wg=1rYBe&pf_rd_p=7d2e00dd-9358-4f89-aca0-04685eb73811&pf_rd_r=GKRJJFTMCPGTHRJZ980Z&qid=1751608771&sbo=RZvfv%2F%2FHxDF%2BO5021pAnSA%3D%3D&sprefix=ugre%2Caps%2C1277&sr=1-2-5f457e4f-4cf5-45bd-948b-58563dcb013a"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b6c4f0b1-f7c7-4994-aa0d-e52e75d271e4",
      "name": "Scrape Product Data (via Agent)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        480,
        0
      ],
      "parameters": {
        "text": "=below is the amazon product and you will scrape the page and tell whether it is still in stock or out of stock:\n{{ $json['Product url'] }}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2
    },
    {
      "id": "95466f92-911a-499f-b9e9-a69c22186c42",
      "name": "OpenAI (Chat)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        440,
        260
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "09ae962a-3047-48cf-b035-5255670177ee",
      "name": "Bright Data MCP (Scraper)",
      "type": "n8n-nodes-mcp.mcpClientTool",
      "position": [
        640,
        260
      ],
      "parameters": {
        "toolName": "web_data_amazon_product",
        "operation": "executeTool",
        "toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
      },
      "credentials": {
        "mcpClientApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1025b2ae-deb9-43d9-be05-fdf627cf8f8e",
      "name": "Product In Stock?",
      "type": "n8n-nodes-base.if",
      "position": [
        960,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "2584d28b-adf3-4b1b-8056-2a582874eca3",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.output.availability }}",
              "rightValue": "In Stock"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "bb5378f1-9c8a-4040-8428-dfdeb151bf43",
      "name": "Email Supplier (Out of Stock Alert)",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1180,
        100
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "The product is out of stock so I need 50 more products",
        "options": {},
        "subject": "=Product \"{{ $json.output.product.title }}\" is out of stock"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "534cc35a-eab6-4ce8-acf9-5ae0df7fb3f9",
      "name": "Do Nothing (Stock Available)",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1180,
        -100
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "4cf70d5b-a40f-495c-ad9b-7f075660f346",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -820
      ],
      "parameters": {
        "color": 2,
        "width": 380,
        "height": 1000,
        "content": "### \ud83d\udfe9 **SECTION 1: Input Setup & Trigger**\n\n> **\ud83d\udce6 What product to check, and how often to check it?**\n\n#### \ud83e\udde9 Nodes:\n\n1. \u23f0 **Check Stock Every X Hours** (Schedule Trigger)\n2. \u270f\ufe0f **Define Product URL & Threshold** (Edit Fields)\n\n#### \ud83e\udde0 What This Section Does:\n\n* \u23f0 The workflow is automatically triggered based on your chosen time interval (e.g., every 6 hours, every day, etc.).\n* \u270d\ufe0f You manually or dynamically input the **Amazon product URL** and optional values like desired stock threshold.\n\n#### \ud83e\uddd1\u200d\ud83c\udfeb Why It\u2019s Important:\n\nThis section **starts the whole process**. Instead of checking manually every day, this runs in the background automatically. If you want to monitor **multiple products**, you can later loop this over a Google Sheet.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "24f1d984-6116-4e02-bdc4-de19f9b312eb",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        440,
        -1220
      ],
      "parameters": {
        "color": 3,
        "width": 320,
        "height": 1400,
        "content": "### \ud83e\udd16 **SECTION 2: Scraping Product Data from Amazon**\n\n> **\ud83d\udca1 Check the current stock status of the product on Amazon.**\n\n#### \ud83e\udde9 Nodes:\n\n1. \ud83e\udd16 **Scrape Product Data (via Agent)** (AI Agent)\n2. \ud83d\udd0c **OpenAI (Chat)** (OpenAI Chat Model)\n3. \ud83d\udcf1 **Bright Data MCP (Scraper)** (MCP Client)\n4. \ud83e\udde0 **Parse Scraped Output** (Structured Output Parser)\n\n#### \ud83e\udde0 What This Section Does:\n\n* Uses **AI Agent** to coordinate the scraping process.\n* The **MCP Client** uses Bright Data's Mobile Carrier Proxy to load Amazon like a real user from a mobile device (this avoids blocks and sees mobile-specific info like \u201cIn Stock\u201d messages).\n* The product page is scraped (title, price, availability, etc.).\n* Finally, **Structured Output Parser** cleans the result into a usable format, like this:\n\n  ```json\n  {\n    \"availability\": \"In Stock\",\n    \"title\": \"UGREEN USB Hub\",\n    \"price\": 9.98\n  }\n  ```\n\n#### \ud83e\uddd1\u200d\ud83c\udfeb Why It\u2019s Important:\n\nYou\u2019re using **cutting-edge scraping** that mimics human behavior (via MCP), plus **AI** to understand and clean up the data. It saves you from dealing with messy HTML or blocked pages.\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "1f7e99a4-6490-4fbb-98ba-f1cb1f53aab0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -680
      ],
      "parameters": {
        "color": 5,
        "width": 380,
        "height": 960,
        "content": "### \ud83d\udcec **SECTION 3: Decision & Notification**\n\n> **\u2753 Is the product out of stock? If yes, alert supplier. If no, do nothing.**\n\n#### \ud83e\udde9 Nodes:\n\n1. \ud83e\udded **Product In Stock?** (If)\n2. \u26d4 **Do Nothing (Stock Available)** (No Operation)\n3. \ud83d\udce7 **Email Supplier (Out of Stock Alert)** (Gmail)\n\n#### \ud83e\udde0 What This Section Does:\n\n* \ud83e\udded It checks the parsed data for `\"availability\": \"In Stock\"`.\n* \u2705 If it **is in stock**, the workflow ends silently. No need to disturb anyone.\n* \u274c If it **is out of stock**, it triggers a **Gmail alert** to the supplier so they can take action quickly.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "85dd0b3a-cd34-49b3-a1b4-86e5f3e66fb4",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -680
      ],
      "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
    },
    {
      "id": "d3e559d3-c8d7-4b57-bc57-bdfdd3f1f652",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -820
      ],
      "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": "735f2bcf-2d2d-4eb9-8f39-6f2a9f8ef758",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1720,
        -480
      ],
      "parameters": {
        "color": 4,
        "width": 1289,
        "height": 2618,
        "content": "## \ud83d\udd04 Track Amazon Product Stock & Alert Supplier Workflow\n\n**Purpose**: Automatically monitor an Amazon product and alert the supplier via Gmail if it's **out of stock**.\n\n---\n\n### \ud83d\udfe9 **SECTION 1: Input Setup & Trigger**\n\n> **\ud83d\udce6 What product to check, and how often to check it?**\n\n#### \ud83e\udde9 Nodes:\n\n1. \u23f0 **Check Stock Every X Hours** (Schedule Trigger)\n2. \u270f\ufe0f **Define Product URL & Threshold** (Edit Fields)\n\n#### \ud83e\udde0 What This Section Does:\n\n* \u23f0 The workflow is automatically triggered based on your chosen time interval (e.g., every 6 hours, every day, etc.).\n* \u270d\ufe0f You manually or dynamically input the **Amazon product URL** and optional values like desired stock threshold.\n\n#### \ud83e\uddd1\u200d\ud83c\udfeb Why It\u2019s Important:\n\nThis section **starts the whole process**. Instead of checking manually every day, this runs in the background automatically. If you want to monitor **multiple products**, you can later loop this over a Google Sheet.\n\n---\n\n### \ud83e\udd16 **SECTION 2: Scraping Product Data from Amazon**\n\n> **\ud83d\udca1 Check the current stock status of the product on Amazon.**\n\n#### \ud83e\udde9 Nodes:\n\n1. \ud83e\udd16 **Scrape Product Data (via Agent)** (AI Agent)\n2. \ud83d\udd0c **OpenAI (Chat)** (OpenAI Chat Model)\n3. \ud83d\udcf1 **Bright Data MCP (Scraper)** (MCP Client)\n4. \ud83e\udde0 **Parse Scraped Output** (Structured Output Parser)\n\n#### \ud83e\udde0 What This Section Does:\n\n* Uses **AI Agent** to coordinate the scraping process.\n* The **MCP Client** uses Bright Data's Mobile Carrier Proxy to load Amazon like a real user from a mobile device (this avoids blocks and sees mobile-specific info like \u201cIn Stock\u201d messages).\n* The product page is scraped (title, price, availability, etc.).\n* Finally, **Structured Output Parser** cleans the result into a usable format, like this:\n\n  ```json\n  {\n    \"availability\": \"In Stock\",\n    \"title\": \"UGREEN USB Hub\",\n    \"price\": 9.98\n  }\n  ```\n\n#### \ud83e\uddd1\u200d\ud83c\udfeb Why It\u2019s Important:\n\nYou\u2019re using **cutting-edge scraping** that mimics human behavior (via MCP), plus **AI** to understand and clean up the data. It saves you from dealing with messy HTML or blocked pages.\n\n---\n\n### \ud83d\udcec **SECTION 3: Decision & Notification**\n\n> **\u2753 Is the product out of stock? If yes, alert supplier. If no, do nothing.**\n\n#### \ud83e\udde9 Nodes:\n\n1. \ud83e\udded **Product In Stock?** (If)\n2. \u26d4 **Do Nothing (Stock Available)** (No Operation)\n3. \ud83d\udce7 **Email Supplier (Out of Stock Alert)** (Gmail)\n\n#### \ud83e\udde0 What This Section Does:\n\n* \ud83e\udded It checks the parsed data for `\"availability\": \"In Stock\"`.\n* \u2705 If it **is in stock**, the workflow ends silently. No need to disturb anyone.\n* \u274c If it **is out of stock**, it triggers a **Gmail alert** to the supplier so they can take action quickly.\n\n#### \ud83e\uddd1\u200d\ud83c\udfeb Why It\u2019s Important:\n\nThis is your **automation trigger**. It helps suppliers restock faster and ensures your business doesn't run into product shortages.\n\n---\n\n## \ud83e\udde9 Summary View (with Icons)\n\n```\n\u23f0 Schedule \u2192 \u270d\ufe0f Input Fields\n        \u2193\n\ud83e\udd16 AI Agent \u2192 \ud83d\udcf1 MCP Scraper \u2192 \ud83e\udde0 Output Parser\n        \u2193\n\ud83e\udded IF \u2192 \u274c Do Nothing (In Stock)\n         \u2192 \ud83d\udce7 Email Supplier (Out of Stock)\n```\n\n---\n\n### \ud83d\udca1 Beginner Tip:\n\nIf you ever want to monitor **many products**, replace the \u201cEdit Fields\u201d with a **Google Sheets node** that loops over each row \u2014 totally no-code-friendly!\n\n---\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "34c9ebf4-f2d0-4a6e-a785-1c21c5ac0126",
      "name": "Auto-fixing Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
      "position": [
        780,
        340
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "0cf6db36-d495-4939-9bc7-a69e01d15cbe",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        760,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "dbcaa1e9-9e62-4619-b42d-4e52948ece2c",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        920,
        560
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"availability\": \"In Stock\",\n  \"product\": {\n    \"title\": \"UGREEN Revodok 105 USB C Hub 5 in 1 Multiport Adapter\",\n    \"price\": {\n      \"current\": 9.98,\n      \"original\": 15.99,\n      \"currency\": \"USD\"\n    },\n    \"seller\": \"UGREEN GROUP LIMITED\",\n    \"rating\": {\n      \"score\": 4.6,\n      \"total_reviews\": 18381\n    },\n    \"url\": \"https://www.amazon.com/UGREEN-Delivery-Multiport-Adapter-Thinkpad/dp/B0BR3M8XHK?th=1&psc=1&language=en_US&currency=USD\"\n  }\n}\n"
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "83db36de-9559-46a9-9f05-82d017c81632",
  "connections": {
    "OpenAI (Chat)": {
      "ai_languageModel": [
        [
          {
            "node": "Scrape Product Data (via Agent)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Product In Stock?": {
      "main": [
        [
          {
            "node": "Do Nothing (Stock Available)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Email Supplier (Out of Stock Alert)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Define Product URL": {
      "main": [
        [
          {
            "node": "Scrape Product Data (via Agent)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Auto-fixing Output Parser",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Auto-fixing Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Scrape Product Data (via Agent)",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Bright Data MCP (Scraper)": {
      "ai_tool": [
        [
          {
            "node": "Scrape Product Data (via Agent)",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Check Stock Every X Hours": {
      "main": [
        [
          {
            "node": "Define Product URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Product Data (via Agent)": {
      "main": [
        [
          {
            "node": "Product In Stock?",
            "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 tracks inventory stock levels across multiple products and suppliers to prevent stockouts and optimize inventory management. It saves you time by eliminating the need to manually check stock levels and provides automated alerts when inventory reaches…

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Note: This template is for self-hosted n8n instances only

Output Parser Structured, Google Sheets, Agent +6
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

Agent, N8N Nodes Mcp, OpenAI Chat +3
AI & RAG

This workflow contains community nodes that are only compatible with the self-hosted version of n8n.

OpenAI Chat, Agent, N8N Nodes Mcp +4
AI & RAG

This workflow automatically monitors social media advertising performance across platforms to track campaign effectiveness and ROI. It saves you time by eliminating the need to manually check multiple

OpenAI Chat, N8N Nodes Mcp, Agent +3
AI & RAG

This workflow automatically monitors competitor pricing across multiple products and services to track market positioning and pricing strategies. It saves you time by eliminating the need to manually

OpenAI Chat, N8N Nodes Mcp, Agent +4