{
  "name": "Prioritize Amazon competitor gaps using Bright Data and Google Sheets",
  "nodes": [
    {
      "id": "02df4534-3459-49b8-93b6-91c7e3350406",
      "name": "Run Competitive Analysis",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2944,
        816
      ]
    },
    {
      "id": "d56b0641-1f9f-43b3-801f-a51d26e3abf0",
      "name": "Set Target URL",
      "type": "n8n-nodes-base.set",
      "position": [
        -2768,
        816
      ]
    },
    {
      "id": "14d88ac3-be22-4103-af6e-422932578d5c",
      "name": "Scrape Product Data (Bright Data)",
      "type": "@brightdata/n8n-nodes-brightdata.brightData",
      "position": [
        -2224,
        816
      ]
    },
    {
      "id": "380a8b13-7ffe-4091-9f4b-c6093f1601fe",
      "name": "Normalize & Structure Product Data",
      "type": "n8n-nodes-base.code",
      "position": [
        -1904,
        800
      ]
    },
    {
      "id": "7e387638-4927-43d0-b7ff-8eec78786cd5",
      "name": "AI Competitive Gap Analyzer",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1232,
        800
      ]
    },
    {
      "id": "5d4e60f3-9dab-460d-a140-b2838ad96fa8",
      "name": "Validate AI Structured Output",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -1072,
        1056
      ]
    },
    {
      "id": "c3e520ff-f0f0-491c-a429-f36e433038fb",
      "name": "Score Pricing & Assortment Gap",
      "type": "n8n-nodes-base.code",
      "position": [
        -896,
        800
      ]
    },
    {
      "id": "e6fcffb8-09da-4154-b7fc-93e50061af9f",
      "name": "Is High-Priority Opportunity?",
      "type": "n8n-nodes-base.if",
      "position": [
        -256,
        800
      ]
    },
    {
      "id": "a1aa432b-1c3a-4234-b37f-4b632359e2f2",
      "name": "Format High-Priority Record",
      "type": "n8n-nodes-base.set",
      "position": [
        672,
        784
      ]
    },
    {
      "id": "2d70c0a7-5e1b-4036-a6bb-b852832f1d7a",
      "name": "Log Missing Variants",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        576
      ]
    },
    {
      "id": "76401285-16bb-4094-a736-37241d42666d",
      "name": "Log Bundle Opportunities",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        784
      ]
    },
    {
      "id": "e06ac9b6-1f1f-4757-8247-fd8dc368bc75",
      "name": "Log Pricing & Positioning Gaps",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        960,
        1024
      ]
    },
    {
      "id": "e5c3b462-1e3a-451b-8016-0b9dcec4d98a",
      "name": "Format Standard Opportunity Record",
      "type": "n8n-nodes-base.set",
      "position": [
        -192,
        1024
      ]
    },
    {
      "id": "7f4ca61e-b0d5-4d96-ba51-0b3514b12e78",
      "name": "Log All Standard Opportunities",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        1024
      ]
    },
    {
      "id": "51496810-582a-4948-873b-bb89aa265f3f",
      "name": "Format Scraping Error Log",
      "type": "n8n-nodes-base.set",
      "position": [
        -2176,
        1056
      ]
    },
    {
      "id": "3e0ddd44-520a-4b1c-9aec-c083c1c7cfdc",
      "name": "Log Scraping Failure",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1968,
        1056
      ]
    },
    {
      "id": "338edebb-75ac-49e0-8ead-7a23425b83c9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3856,
        -16
      ],
      "parameters": {
        "width": 512,
        "height": 496,
        "content": "## Competitive Assortment & Pricing Gap Engine\n  \n\nEach product is scored and prioritized automatically.\n\nHigh-impact opportunities are separated from standard ones and logged into structured Google S"
      }
    },
    {
      "id": "28080ff1-154d-45f4-ae3d-800f8f94cc31",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2304,
        448
      ],
      "parameters": {
        "width": 576,
        "height": 784,
        "content": "## Product Data Collection & Normalization\n\nScrapes and prepares competitor product data from Amazon for AI-driven analysis.\n\n- Extracts brand, price, availability, and product variants using Bright D"
      }
    },
    {
      "id": "0eed9878-be19-4b15-b586-68e56e0a04e1",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        384
      ],
      "parameters": {
        "width": 640,
        "height": 848,
        "content": "## AI Competitive Analysis & Gap Scoring\n\nAnalyzes competitor products using AI to detect assortment and positioning gaps, then scores each opportunity based on potential market impact.\n\n- Clusters pr"
      }
    },
    {
      "id": "0b46efc6-c4bc-4904-a937-40b0885dc4a5",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        608,
        304
      ],
      "parameters": {
        "width": 576,
        "height": 928,
        "content": "## High-Priority Opportunity Logging\n\nFormats and logs high-priority competitive opportunities into structured reporting sheets.\n\n- Prepares high-priority opportunity records  \n- Logs missing variant "
      }
    },
    {
      "id": "2308743c-0399-45ec-9658-4f594b7ebe3a",
      "name": "Competitive Gap Analyzer",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        -1232,
        1056
      ]
    },
    {
      "id": "ea3174af-771a-4a68-98f8-3dcc79962d98",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3856,
        512
      ],
      "parameters": {
        "width": 512,
        "height": 480,
        "content": "## Setup Instructions\n\nBefore running this workflow, configure the following credentials in n8n:\n\n**1. Bright Data API** — Required for web scraping\n- Sign up at brightdata.com\n- Create an API token\n-"
      }
    },
    {
      "id": "3c7d027a-b844-489f-91bf-88d027b2b665",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3856,
        1024
      ],
      "parameters": {
        "width": 508,
        "height": 504,
        "content": "## Google Sheets Setup\n\nCreate a Google Spreadsheet with 5 tabs and add these column headers in row 1:\n\n**Tab: Missing Variants**\nCategory | Competitor | Product | Missing Variants | Priority\n\n**Tab: "
      }
    },
    {
      "id": "a68e6713-fea6-47dc-aa14-da28a2568243",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3040,
        480
      ],
      "parameters": {
        "width": 496,
        "height": 512,
        "content": "## Input & Configuration\n\nInitial configuration block where the target product URL is defined for competitive analysis.\n\n- Sets the Amazon product page URL  \n- Initiates workflow execution manually  \n"
      }
    },
    {
      "id": "ba01f2f3-d304-4112-adce-d8994668da6d",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        512
      ],
      "parameters": {
        "width": 512,
        "height": 720,
        "content": "## Opportunity Filtering & Reporting\n\nFilters prioritized opportunities and routes them to structured reporting dashboards.\n\n- Flags high-priority opportunities based on scoring threshold  \n- Separate"
      }
    }
  ],
  "connections": {
    "Set Target URL": {
      "main": [
        [
          {
            "node": "Scrape Product Data (Bright Data)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Competitive Gap Analyzer": {
      "ai_languageModel": [
        [
          {
            "node": "AI Competitive Gap Analyzer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Run Competitive Analysis": {
      "main": [
        [
          {
            "node": "Set Target URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Scraping Error Log": {
      "main": [
        [
          {
            "node": "Log Scraping Failure",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Competitive Gap Analyzer": {
      "main": [
        [
          {
            "node": "Score Pricing & Assortment Gap",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format High-Priority Record": {
      "main": [
        [
          {
            "node": "Log Missing Variants",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Bundle Opportunities",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Pricing & Positioning Gaps",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is High-Priority Opportunity?": {
      "main": [
        [
          {
            "node": "Format High-Priority Record",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Format Standard Opportunity Record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate AI Structured Output": {
      "ai_outputParser": [
        [
          {
            "node": "AI Competitive Gap Analyzer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Score Pricing & Assortment Gap": {
      "main": [
        [
          {
            "node": "Is High-Priority Opportunity?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Product Data (Bright Data)": {
      "main": [
        [
          {
            "node": "Normalize & Structure Product Data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Format Scraping Error Log",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Standard Opportunity Record": {
      "main": [
        [
          {
            "node": "Log All Standard Opportunities",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize & Structure Product Data": {
      "main": [
        [
          {
            "node": "AI Competitive Gap Analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}