{
  "name": "Analyze competitor Instagram engagement with Bright Data and GPT-5.4",
  "nodes": [
    {
      "id": "58d72e7d-b991-4504-be10-41530abb1568",
      "name": "Daily Engagement Scan",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        480,
        688
      ]
    },
    {
      "id": "cee353f1-b8bc-4775-b411-2432e9da5c27",
      "name": "Read Competitor Accounts",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        752,
        688
      ]
    },
    {
      "id": "3442733f-9516-44e8-9957-d426dae69428",
      "name": "Scrape Instagram Profiles",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1232,
        688
      ]
    },
    {
      "id": "82fe687d-c4ae-43cd-8347-6497179bf210",
      "name": "Validate BD Response",
      "type": "n8n-nodes-base.code",
      "position": [
        1488,
        688
      ]
    },
    {
      "id": "be302640-982d-4f89-af14-03355442d886",
      "name": "Analyze Engagement",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2000,
        688
      ]
    },
    {
      "id": "509961a9-0df1-45c1-9b4e-4267424aecdc",
      "name": "GPT-5.4 Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        2000,
        928
      ]
    },
    {
      "id": "64d17917-37d7-4b5a-affd-4591b8209696",
      "name": "Parse AI Output",
      "type": "n8n-nodes-base.code",
      "position": [
        2272,
        688
      ]
    },
    {
      "id": "bb4228b8-6760-427e-9655-d1ddd6eb207d",
      "name": "IF Confidence >= 0.7",
      "type": "n8n-nodes-base.if",
      "position": [
        2528,
        688
      ]
    },
    {
      "id": "9d4e2c5e-faa9-4f72-812b-1d7b53038064",
      "name": "IF Engagement >= 75",
      "type": "n8n-nodes-base.if",
      "position": [
        2784,
        544
      ]
    },
    {
      "id": "f6f6a556-df6d-4f61-be8c-3e4e68056b3f",
      "name": "Alert Top Performer",
      "type": "n8n-nodes-base.gmail",
      "position": [
        3040,
        400
      ]
    },
    {
      "id": "e7f72917-6374-4673-8088-d67103561400",
      "name": "Append Top Performers",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3040,
        544
      ]
    },
    {
      "id": "4750a4c4-d84f-4ac1-a7a2-2e128f295bde",
      "name": "Append Engagement Analysis",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3040,
        768
      ]
    },
    {
      "id": "05c441ad-a699-49e9-9877-fffa614d8ac4",
      "name": "Append Low Confidence",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2784,
        768
      ]
    },
    {
      "id": "8aa665c6-af9d-4c38-8dad-21643fbb942e",
      "name": "Calculate Raw Engagement Metrics",
      "type": "n8n-nodes-base.code",
      "position": [
        1744,
        688
      ]
    },
    {
      "id": "f528564a-35c3-4e31-84df-950f9c27b293",
      "name": "Process Items One by One",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        992,
        688
      ]
    },
    {
      "id": "b72803b0-5834-4313-8d00-6dccb93c4632",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -368,
        -96
      ],
      "parameters": {
        "width": 560,
        "height": 720,
        "content": "### How it works\n\nThis workflow monitors competitor Instagram accounts on a daily schedule. It reads profile URLs from a Google Sheet, scrapes each one through the Bright Data Instagram Profiles API, "
      }
    },
    {
      "id": "69ff9502-6db9-4c0e-9920-d304badf2990",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        448,
        496
      ],
      "parameters": {
        "width": 460,
        "height": 296,
        "content": "## 1. Data Input\n\nTriggers daily at 8 AM. Reads competitor Instagram profile URLs from the 'competitor_accounts' sheet and processes them one at a time."
      }
    },
    {
      "id": "a5062c63-4a9f-4e37-9dea-7ada7a71bd21",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        464
      ],
      "parameters": {
        "width": 672,
        "height": 328,
        "content": "## 2. Scrape & Validate\n\nSends each URL to the Bright Data Instagram API, validates the response, and calculates raw engagement metrics."
      }
    },
    {
      "id": "8313d152-591c-4ab9-8e03-31e27d9615ca",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1984,
        416
      ],
      "parameters": {
        "width": 396,
        "height": 448,
        "content": "## 3. AI Analysis\n\nGPT-5.4 scores each profile on follower growth, engagement quality, content consistency, and audience authenticity (0-100)."
      }
    },
    {
      "id": "ed241d1d-2609-4d1d-91e1-0cd416cec306",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2480,
        320
      ],
      "parameters": {
        "width": 832,
        "height": 728,
        "content": "## 4. Quality Gates & Output\n\nConfidence gate (>= 0.7) and engagement threshold (>= 75) route results to three sheets. Top performers trigger Gmail alerts."
      }
    }
  ],
  "connections": {
    "GPT-5.4 Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze Engagement",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output": {
      "main": [
        [
          {
            "node": "IF Confidence >= 0.7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Engagement": {
      "main": [
        [
          {
            "node": "Parse AI Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Engagement >= 75": {
      "main": [
        [
          {
            "node": "Alert Top Performer",
            "type": "main",
            "index": 0
          },
          {
            "node": "Append Top Performers",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Engagement Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Confidence >= 0.7": {
      "main": [
        [
          {
            "node": "IF Engagement >= 75",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Append Low Confidence",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Validate BD Response": {
      "main": [
        [
          {
            "node": "Calculate Raw Engagement Metrics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Low Confidence": {
      "main": [
        [
          {
            "node": "Process Items One by One",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Top Performers": {
      "main": [
        [
          {
            "node": "Process Items One by One",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Engagement Scan": {
      "main": [
        [
          {
            "node": "Read Competitor Accounts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process Items One by One": {
      "main": [
        [
          {
            "node": "Scrape Instagram Profiles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Competitor Accounts": {
      "main": [
        [
          {
            "node": "Process Items One by One",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Instagram Profiles": {
      "main": [
        [
          {
            "node": "Validate BD Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append Engagement Analysis": {
      "main": [
        [
          {
            "node": "Process Items One by One",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calculate Raw Engagement Metrics": {
      "main": [
        [
          {
            "node": "Analyze Engagement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}