{
  "name": "Audit browser and proxy fingerprint/IP integrity with GPT-4o, Sheets and Slack",
  "nodes": [
    {
      "id": "c7c2d0e6-15bf-4c12-b948-3fff1b811557",
      "name": "Define Target URLs",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        512
      ]
    },
    {
      "id": "6a10f043-366b-48b9-b569-5217f8173480",
      "name": "Loop Over URLs",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        816,
        512
      ]
    },
    {
      "id": "fa5dc98c-e13f-414b-81c2-6a1dc42c4935",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        464,
        512
      ]
    },
    {
      "id": "2f9fc698-9542-411b-8efc-8be4aa98980c",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1216,
        704
      ]
    },
    {
      "id": "6707e5c4-2722-4eea-b12c-3c536e669b07",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1344,
        720
      ]
    },
    {
      "id": "c8a3cc28-08fb-4aa3-bce1-52d698a45ae5",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        2784,
        608
      ]
    },
    {
      "id": "f7f86ab6-50b8-4f97-8b93-4fef8e4b16d3",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        2928,
        608
      ]
    },
    {
      "id": "f6601732-864e-449f-bc46-8b7f0f50574a",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        2656,
        384
      ]
    },
    {
      "id": "5bb81487-96bc-46bb-b8e1-218ab402fb35",
      "name": "Structured Output Parser2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1648,
        400
      ]
    },
    {
      "id": "e9bf86eb-0b46-4792-8b3f-189f41512359",
      "name": "Clear Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        16,
        512
      ]
    },
    {
      "id": "ff3dc30e-d67a-4ea0-b4db-47280322e53f",
      "name": "Execute manually",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -208,
        512
      ]
    },
    {
      "id": "da9c8394-7e20-4b94-a6e9-0d0cbfa15c1b",
      "name": "Analyze the site results and generate a report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1280,
        528
      ]
    },
    {
      "id": "cc199207-0036-4457-b073-9967ba41af81",
      "name": "Update Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1728,
        656
      ]
    },
    {
      "id": "b8e1a5ae-8b23-4f78-82fb-96afc89c972f",
      "name": "Add guarded test step",
      "type": "n8n-nodes-base.set",
      "position": [
        1056,
        352
      ]
    },
    {
      "id": "a1e67f53-d612-44e2-9b00-dc05c270dc5b",
      "name": "Check the site accessibility",
      "type": "n8n-nodes-browseract.browserAct",
      "position": [
        1264,
        352
      ]
    },
    {
      "id": "ba7c0a0a-67a8-4e75-acd3-d0a4b8c40f1a",
      "name": "Analyze the site results",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1568,
        224
      ]
    },
    {
      "id": "23b74342-b73a-49d5-8cb6-daae36531e95",
      "name": "Update Database1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2208,
        384
      ]
    },
    {
      "id": "06f0c1b2-d52f-43dc-b7ff-dad349f3901e",
      "name": "Fetch stored data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        2432,
        384
      ]
    },
    {
      "id": "1d1de15a-8619-45f8-8adb-ca4398e3c6c8",
      "name": "Process final data",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2848,
        384
      ]
    },
    {
      "id": "05a08287-9701-4d12-afe4-5344a8b3d14d",
      "name": "Send Report",
      "type": "n8n-nodes-base.slack",
      "position": [
        3232,
        384
      ]
    },
    {
      "id": "be5b083d-919d-4e8b-8b9a-777aa52d4a5f",
      "name": "Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        -48
      ],
      "parameters": {
        "width": 380,
        "height": 520,
        "content": "## ⚡ Workflow Overview & Setup\n\n**Summary:** This automation continuously monitors the integrity of your IP address and browser fingerprint. It visits multiple detection sites using BrowserAct, analyz"
      }
    },
    {
      "id": "2d7959d8-f4ee-48c6-97a5-9b5992473462",
      "name": "Step 1 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        368
      ],
      "parameters": {
        "width": 812,
        "height": 108,
        "content": "### 🕵️ Step 1: Multi-Site Testing\n\nThe workflow iterates through a list of target URLs. It uses BrowserAct to visit each site, attempting to bypass anti-bot measures and capture the raw diagnostic out"
      }
    },
    {
      "id": "c29c61ca-306c-44ba-a188-a3de23af13ec",
      "name": "Step 2 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        768,
        912
      ],
      "parameters": {
        "width": 1116,
        "height": 108,
        "content": "### 🛡️ Step 2: Forensic Analysis\n\nFor each site visited, an AI \"Security Analyst\" parses the raw text. It looks for red flags like mismatched User-Agents, leaked real IPs, or known bot signatures (e.g"
      }
    },
    {
      "id": "493cb450-641e-4e9e-8224-66ab75c80e16",
      "name": "Step 3 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        240
      ],
      "parameters": {
        "width": 1196,
        "height": 112,
        "content": "### 📊 Step 3: Aggregation & Reporting\n\nAll individual site reports are stored in a Google Sheet. Once the full list is processed, a final AI agent reviews the aggregate data to determine an overall \"P"
      }
    },
    {
      "id": "bf2ccb22-ae96-43a7-8cac-87519e784048",
      "name": "OpenRouter",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1536,
        416
      ]
    },
    {
      "id": "96078420-19ef-4cc4-a9fd-6c5ee5b3f35e",
      "name": "Extract the agent checking sites",
      "type": "n8n-nodes-browseract.browserAct",
      "position": [
        1056,
        528
      ]
    },
    {
      "id": "94f85f86-0248-4d9f-a392-5f148b6a0d61",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -176,
        -64
      ],
      "parameters": {
        "width": 656,
        "height": 384,
        "content": "@[youtube](64cKXeY52NQ)"
      }
    }
  ],
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Process final data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Loop Over URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze the site results",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Clear Database": {
      "main": [
        [
          {
            "node": "Define Target URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over URLs": {
      "main": [
        [
          {
            "node": "Add guarded test step",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Extract the agent checking sites",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Database": {
      "main": [
        [
          {
            "node": "Loop Over URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Execute manually": {
      "main": [
        [
          {
            "node": "Clear Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Database1": {
      "main": [
        [
          {
            "node": "Fetch stored data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch stored data": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Define Target URLs": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Process final data": {
      "main": [
        [
          {
            "node": "Send Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add guarded test step": {
      "main": [
        [
          {
            "node": "Check the site accessibility",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze the site results and generate a report",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Process final data",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Analyze the site results": {
      "main": [
        [
          {
            "node": "Update Database1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze the site results and generate a report",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Process final data",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze the site results",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Check the site accessibility": {
      "main": [
        [
          {
            "node": "Analyze the site results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract the agent checking sites": {
      "main": [
        [
          {
            "node": "Analyze the site results and generate a report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze the site results and generate a report": {
      "main": [
        [
          {
            "node": "Update Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}