{
  "name": "Watch a competitor's site Prices and Alert Discord When They Change",
  "nodes": [
    {
      "name": "Schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 24
            }
          ]
        }
      },
      "notes": "Every 6 hours.",
      "position": [
        260,
        300
      ]
    },
    {
      "name": "Fetch a competitor's site Page",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "parameters": {
        "method": "POST",
        "url": "https://api.example.com/replace-with-real-endpoint",
        "sendBody": true,
        "options": {}
      },
      "notes": "Load the product page and extract the price. Respect a competitor's site's terms.",
      "position": [
        500,
        300
      ]
    },
    {
      "name": "Price Changed?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "parameters": {
        "conditions": {
          "conditions": [
            {
              "leftValue": "={{ $json.price }}",
              "rightValue": "={{ $json.last_price }}",
              "operator": {
                "type": "number",
                "operation": "notEquals"
              }
            }
          ],
          "combinator": "and"
        }
      },
      "notes": "Only alert on a real change.",
      "position": [
        740,
        300
      ]
    },
    {
      "name": "Notify Discord",
      "type": "n8n-nodes-base.discord",
      "typeVersion": 1,
      "parameters": {
        "text": "=Price change: {{ $json.title }} {{ $json.last_price }} → {{ $json.price }}"
      },
      "notes": "Connect this channel's credential.",
      "position": [
        980,
        300
      ]
    },
    {
      "name": "Respond / Finish",
      "type": "n8n-nodes-base.noOp",
      "typeVersion": 1,
      "parameters": {},
      "notes": "End of flow — extend with extra steps as needed.",
      "position": [
        1220,
        300
      ]
    }
  ],
  "connections": {
    "Schedule": {
      "main": [
        [
          {
            "node": "Fetch a competitor's site Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch a competitor's site Page": {
      "main": [
        [
          {
            "node": "Price Changed?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Price Changed?": {
      "main": [
        [
          {
            "node": "Notify Discord",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Notify Discord": {
      "main": [
        [
          {
            "node": "Respond / Finish",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
