{
  "name": "Monitor competitor campaigns weekly using BrowserAct, OpenRouter, Google Sheets and Slack",
  "nodes": [
    {
      "id": "2f9d8386-ecbd-46f5-895d-93928a833644",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -48,
        80
      ]
    },
    {
      "id": "09dd7f29-b612-491d-aaa7-087ad2d240c9",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        576,
        320
      ]
    },
    {
      "id": "c95679c3-6d6a-4105-914d-b901459edbc9",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        704,
        304
      ]
    },
    {
      "id": "c70bf869-dd94-481f-903a-978904d5e2e6",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        720,
        -336
      ]
    },
    {
      "id": "39d44b42-2968-44c6-9ece-53d3ca60b8e6",
      "name": "OpenRouter Chat Model1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        912,
        -128
      ]
    },
    {
      "id": "39a27beb-95e1-44b0-bebf-f3884528893a",
      "name": "Structured Output Parser1",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1072,
        -128
      ]
    },
    {
      "id": "0c2d517a-bf0a-44f3-991e-c2ded8e67725",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1424,
        -336
      ]
    },
    {
      "id": "7013798b-a2ee-471e-a9ac-382641f87c72",
      "name": "Extract the target URLs",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -272,
        80
      ]
    },
    {
      "id": "df3df30e-53bc-4c12-a365-720ff164714d",
      "name": "Scrape the target pages",
      "type": "n8n-nodes-browseract.browserAct",
      "position": [
        368,
        96
      ]
    },
    {
      "id": "eea04b6a-6f65-4f9f-a2a9-a95ad5d01fea",
      "name": "Analyze the pages",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        592,
        96
      ]
    },
    {
      "id": "f85824db-47de-4fba-84c7-42dcc7da59ba",
      "name": "Update Database",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1104,
        272
      ]
    },
    {
      "id": "41b85a08-9ac2-4ffe-9224-65ecc17964f6",
      "name": "Retrieve database items",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        544,
        -336
      ]
    },
    {
      "id": "0a079954-a4ce-4b26-a951-215865c72c77",
      "name": "Analyze all the items and generate a report",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        928,
        -336
      ]
    },
    {
      "id": "4b71067b-112a-411c-8774-5625ba1a26a1",
      "name": "Split out Slack messages",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1232,
        -336
      ]
    },
    {
      "id": "1c9a91db-488a-4225-8e6c-c3b6c860ddcb",
      "name": "Documentation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -960,
        -496
      ],
      "parameters": {
        "width": 380,
        "height": 504,
        "content": "## ⚡ Competitor Campaign Monitoring\n\n**Summary:** This automation performs weekly surveillance on competitor landing pages, comparing current offers against historical data to detect strategy shifts ("
      }
    },
    {
      "id": "44f8a0f7-c6a4-49e0-9e9d-ecdf3cfdf238",
      "name": "Step 1 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        -112
      ],
      "parameters": {
        "width": 584,
        "height": 124,
        "content": "### ⏰ Step 1: Scheduling & Targets\n\nThe workflow triggers automatically on a weekly schedule. It retrieves a list of target competitor URLs from a Google Sheet to begin the monitoring cycle."
      }
    },
    {
      "id": "384208bc-2606-4d6a-8f35-2f19975d74f5",
      "name": "Step 2 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        224,
        480
      ],
      "parameters": {
        "width": 1024,
        "height": 128,
        "content": "### 🕵️ Step 2: Comparative Analysis\n\nBrowserAct scrapes the live page data. An AI agent then compares this fresh data against the *previous* week's record (fetched from the database) to identify speci"
      }
    },
    {
      "id": "43068521-6439-4717-b556-05851d24d758",
      "name": "Step 4 Explanation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -480
      ],
      "parameters": {
        "width": 1036,
        "height": 124,
        "content": "### 📢 Step 4: Executive Digest\n\nOnce all pages are processed, a final AI agent aggregates the findings into a high-level intelligence report. It filters for significant changes and posts a formatted s"
      }
    },
    {
      "id": "d64a41dc-0137-4bfa-b55b-bbc9a72689a7",
      "name": "Weekly Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -496,
        80
      ]
    },
    {
      "id": "58efbe2c-3a86-42eb-965e-a36d88e30e0d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        -496
      ],
      "parameters": {
        "width": 592,
        "height": 352,
        "content": "@[youtube](roIRCG3DryU)"
      }
    }
  ],
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Analyze all the items and generate a report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Trigger": {
      "main": [
        [
          {
            "node": "Extract the target URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Retrieve database items",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Scrape the target pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Database": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze the pages": {
      "main": [
        [
          {
            "node": "Update Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze the pages",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Analyze all the items and generate a report",
            "type": "ai_languageModel",
            "index": 0
          },
          {
            "node": "Structured Output Parser1",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Extract the target URLs": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve database items": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape the target pages": {
      "main": [
        [
          {
            "node": "Analyze the pages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split out Slack messages": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze the pages",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser1": {
      "ai_outputParser": [
        [
          {
            "node": "Analyze all the items and generate a report",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Analyze all the items and generate a report": {
      "main": [
        [
          {
            "node": "Split out Slack messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}