{
  "name": "Real-time MAP enforcement & price violation alerts using Google Sheets, BrowserAct & Slack",
  "nodes": [
    {
      "id": "77a6048a-7f41-4228-8440-a44d94300287",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -608,
        -160
      ]
    },
    {
      "id": "5744d319-95f1-4ba8-8bb7-013a0adbd0bd",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -448,
        -160
      ]
    },
    {
      "id": "f6f3c76f-d431-4dad-8ab1-98d73fedc1c6",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -272,
        -144
      ]
    },
    {
      "id": "332e4a3f-c1d3-419a-9bfc-b27d432e88e5",
      "name": "Run a workflow task",
      "type": "n8n-nodes-browseract-workflows.browserAct",
      "position": [
        -64,
        -128
      ]
    },
    {
      "id": "2acfb998-c3c3-4078-a80a-8ad3c76326e2",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        688,
        0
      ]
    },
    {
      "id": "2171e108-7894-46c8-8f82-3f69279e7800",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        816,
        -80
      ]
    },
    {
      "id": "32d71b0c-eb59-4b3c-a343-555346874123",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1072,
        -80
      ]
    },
    {
      "id": "864840e9-5afc-41ed-879b-ec4ec5b57879",
      "name": "Get details of a workflow task",
      "type": "n8n-nodes-browseract-workflows.browserAct",
      "position": [
        128,
        -128
      ]
    },
    {
      "id": "acaf7b39-3fc5-4033-85e6-7b5fe4b8bb04",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        304,
        -128
      ]
    },
    {
      "id": "f6a2664e-bc1e-4c73-932d-1432f679e316",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        480,
        -128
      ]
    },
    {
      "id": "47f04366-a59a-43d4-a926-9939952a5a15",
      "name": "Send a message1",
      "type": "n8n-nodes-base.slack",
      "position": [
        688,
        -160
      ]
    },
    {
      "id": "eeb379b9-3e75-4160-a7f4-1754962667c4",
      "name": "Sticky Note - Intro",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        -464
      ],
      "parameters": {
        "width": 480,
        "height": 450,
        "content": "## Try It Out!\n### This n8n template automates MAP (Minimum Advertised Price) enforcement by monitoring reseller websites and alerting you to violations.\n\n### How it works\n* The workflow runs on a **s"
      }
    },
    {
      "id": "01d5f0f3-38b5-4946-aaf8-460ba02e53e4",
      "name": "Sticky Note - How to Use",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        0
      ],
      "parameters": {
        "width": 480,
        "height": 260,
        "content": "## How to use\n\n1.  **Set up Credentials:** Add your credentials for **BrowserAct**, **Google Sheets**, and **Slack** to the workflow.\n2.  **Set up BrowserAct Template:** Ensure you Use the **“MAP (Min"
      }
    },
    {
      "id": "e60180af-3931-4a50-b7d7-02364ec06824",
      "name": "Sticky Note - Need Help",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1104,
        272
      ],
      "parameters": {
        "width": 480,
        "height": 152,
        "content": "### Need Help?\n* #### [How to Find Your BrowseAct API Key & Workflow ID](https://www.youtube.com/watch?v=pDjoZWEsZlE)\n* #### [How to Connect n8n to Browseract](https://www.youtube.com/watch?v=RoYMdJaR"
      }
    },
    {
      "id": "26b0718c-12da-4f57-b320-b3ae452dd6d1",
      "name": "Sticky Note - Input & Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        -400
      ],
      "parameters": {
        "width": 400,
        "height": 152,
        "content": "### 📋 1. Input & Loop\n\n* **Schedule Trigger:** Kicks off the entire process automatically.\n* **Google Sheets:** This node fetches your master list of resellers and products to be monitored.\n* **Loop O"
      }
    },
    {
      "id": "f35d406d-ffb3-4476-a522-10292ade74c8",
      "name": "Sticky Note - Data Collection",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -400
      ],
      "parameters": {
        "width": 528,
        "height": 168,
        "content": "### 🤖 2. Price Scraping\n\nThis is the core data collection part of the workflow for each reseller in the loop.\n\n* **BrowserAct Nodes:** This pair of nodes navigates to the reseller's product page and s"
      }
    },
    {
      "id": "40221cb1-187e-4c53-a50a-0754a753fb95",
      "name": "Sticky Note - Logic & Alerting",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        -400
      ],
      "parameters": {
        "width": 752,
        "height": 176,
        "content": "### ⚖️ 3. Violation Logic & Alerting\n\nThis section analyzes the scraped data and takes action.\n\n* **If1 (Out of Stock Check):** The first `If` node checks if the scraper returned 'NoData'. This is a s"
      }
    },
    {
      "id": "75ab0a4d-9846-446c-8416-1210178ab93d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -80,
        -208
      ],
      "parameters": {
        "width": 528,
        "height": 256,
        "content": ""
      }
    },
    {
      "id": "f975d0d3-ab49-43a5-8bfd-e29f54e6c135",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -496,
        -208
      ],
      "parameters": {
        "width": 400,
        "height": 256,
        "content": ""
      }
    },
    {
      "id": "076dd547-e5e3-44a9-a8ce-d01edde6bb46",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        -208
      ],
      "parameters": {
        "width": 752,
        "height": 320,
        "content": ""
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Send a message1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Run a workflow task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message1": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Run a workflow task": {
      "main": [
        [
          {
            "node": "Get details of a workflow task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get details of a workflow task": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}