{
  "name": "Analyze Reddit competitor sentiment with Bright Data and GPT-5.4",
  "nodes": [
    {
      "id": "c8fef4bd-317f-4c63-9edb-26cc4a8bbbd3",
      "name": "Weekly Competitor Sentiment Scan",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -2032,
        64
      ]
    },
    {
      "id": "9ec4c1a6-b046-445a-a726-30bd31d8b5fe",
      "name": "Read Competitor Brands Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1776,
        64
      ]
    },
    {
      "id": "fc47064a-8496-4a85-a1ef-7f13b2d80439",
      "name": "Scrape Reddit Posts",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1504,
        64
      ]
    },
    {
      "id": "e7093216-09c8-4b89-800d-48219b9b43b6",
      "name": "Validate BD Response",
      "type": "n8n-nodes-base.code",
      "position": [
        -1248,
        64
      ]
    },
    {
      "id": "85c369ef-458e-47fa-9520-169e1a99ee5a",
      "name": "Analyze Competitor Sentiment",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -992,
        64
      ]
    },
    {
      "id": "71bc964d-b052-4003-b89a-ffbd3f942fd3",
      "name": "GPT-5.4 Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -992,
        304
      ]
    },
    {
      "id": "8d8d546f-562e-452e-aa77-453a50b781de",
      "name": "Parse AI Output",
      "type": "n8n-nodes-base.code",
      "position": [
        -736,
        64
      ]
    },
    {
      "id": "736f9865-07cd-4625-b34e-8c34b4488648",
      "name": "IF Confidence >= 0.7",
      "type": "n8n-nodes-base.if",
      "position": [
        -208,
        64
      ]
    },
    {
      "id": "cf47b62d-3152-4a3b-90a7-ee2d1f41c3ff",
      "name": "Email Opportunity Alert",
      "type": "n8n-nodes-base.gmail",
      "position": [
        320,
        -224
      ]
    },
    {
      "id": "95a47ce3-a09f-40ba-ad43-670f448cd715",
      "name": "Append High Opportunity Brands",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        320,
        -80
      ]
    },
    {
      "id": "d3b56303-4883-4a98-9006-e0ae1fbaedf0",
      "name": "Append Competitor Sentiment",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        320,
        144
      ]
    },
    {
      "id": "45a310d2-aba8-450a-8afb-0ba2efb77945",
      "name": "Append Low Confidence",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        64,
        144
      ]
    },
    {
      "id": "a94b00a1-88a2-4533-84e6-d6169cfa0aff",
      "name": "Calculate Vulnerability Index",
      "type": "n8n-nodes-base.code",
      "position": [
        -464,
        64
      ]
    },
    {
      "id": "878713b2-0cbc-4313-99e4-4d2b07c5556e",
      "name": "Route by Score Level",
      "type": "n8n-nodes-base.switch",
      "position": [
        64,
        -80
      ]
    },
    {
      "id": "ab9d356c-9fe8-41de-b99b-06489937f184",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2656,
        -400
      ],
      "parameters": {
        "width": 560,
        "height": 720,
        "content": "### How it works\n\nThis workflow tracks Reddit sentiment about competitor brands on a weekly schedule. It reads brand URLs from a Google Sheet, scrapes Reddit posts through the Bright Data Reddit Posts"
      }
    },
    {
      "id": "6a27fa9d-2631-4b77-9529-46f58fdf40a0",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2064,
        -96
      ],
      "parameters": {
        "width": 484,
        "height": 392,
        "content": "## 1. Data Input\n\nTriggers weekly on Monday at 8 AM. Reads competitor brand URLs from the 'competitor_brands' sheet."
      }
    },
    {
      "id": "d2691e91-5d20-4924-8869-7e16d015f640",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1552,
        -64
      ],
      "parameters": {
        "width": 1004,
        "height": 516,
        "content": "## 2. Scrape & Analyze\n\nScrapes Reddit via Bright Data. GPT-5.4 evaluates sentiment distribution and competitive vulnerabilities. Vulnerability index calculated from negative ratio, areas, and complai"
      }
    },
    {
      "id": "40667cb0-2f8f-4986-8be6-92f306a3dc6b",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -256,
        -384
      ],
      "parameters": {
        "width": 992,
        "height": 808,
        "content": "## 3. Score Routing & Output\n\nConfidence gate filters unreliable AI output. Three-way switch routes by opportunity score to sheets and Gmail alerts."
      }
    }
  ],
  "connections": {
    "GPT-5.4 Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze Competitor Sentiment",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output": {
      "main": [
        [
          {
            "node": "Calculate Vulnerability Index",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Reddit Posts": {
      "main": [
        [
          {
            "node": "Validate BD Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Confidence >= 0.7": {
      "main": [
        [
          {
            "node": "Route by Score Level",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Low Confidence",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route by Score Level": {
      "main": [
        [
          {
            "node": "Email Opportunity Alert",
            "type": "main",
            "index": 0
          },
          {
            "node": "Append High Opportunity Brands",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Competitor Sentiment",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Competitor Sentiment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate BD Response": {
      "main": [
        [
          {
            "node": "Analyze Competitor Sentiment",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Competitor Sentiment": {
      "main": [
        [
          {
            "node": "Parse AI Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Competitor Brands Sheet": {
      "main": [
        [
          {
            "node": "Scrape Reddit Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Vulnerability Index": {
      "main": [
        [
          {
            "node": "IF Confidence >= 0.7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Competitor Sentiment Scan": {
      "main": [
        [
          {
            "node": "Read Competitor Brands Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}