{
  "name": "Monitor competitor prices with Firecrawl, GPT-4.1, Sheets & Gmail alerts",
  "nodes": [
    {
      "id": "1a7684b3-eb26-414f-ad30-e613306b50b1",
      "name": "📊 Read Historical Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -1472,
        176
      ]
    },
    {
      "id": "9239f63d-2717-4248-918a-b886016c9a98",
      "name": "🔀 Merge Current with Historical",
      "type": "n8n-nodes-base.merge",
      "position": [
        -1296,
        0
      ]
    },
    {
      "id": "3b453791-3aca-4563-97d7-34d1bc751824",
      "name": "🔍 Detect Price & Stock Changes",
      "type": "n8n-nodes-base.code",
      "position": [
        -1120,
        0
      ]
    },
    {
      "id": "c83f80f9-8954-406e-a43a-20299f94d4ef",
      "name": "💾 Update Historical Data",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -944,
        80
      ]
    },
    {
      "id": "c1ba6419-781d-4c2d-bfa6-dfe202751e19",
      "name": "📝 Log Alert Details",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -944,
        -80
      ]
    },
    {
      "id": "233f07c7-c121-4e14-abf1-0a917b023a11",
      "name": "📊 Aggregate Daily Digest",
      "type": "n8n-nodes-base.code",
      "position": [
        -944,
        -240
      ]
    },
    {
      "id": "bb79bf76-29bd-44d9-8064-48c14622e1f5",
      "name": "Scrape URL: nike.com",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        -1904,
        -176
      ]
    },
    {
      "id": "905a1a25-92aa-4459-8d4e-8392d6ca4e61",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -2096,
        32
      ]
    },
    {
      "id": "fb7b71da-f70d-48d8-afef-ee42bdb48567",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        -800,
        -240
      ]
    },
    {
      "id": "5c08b0c2-5bc1-4594-be36-938e67308a1f",
      "name": "Scrape URL: adidas.com",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        -1904,
        -16
      ]
    },
    {
      "id": "57ac5f72-cc18-4919-bdea-4e16939b8080",
      "name": "Scrape URL: sneakerpricer.com",
      "type": "@mendable/n8n-nodes-firecrawl.firecrawl",
      "position": [
        -1904,
        144
      ]
    },
    {
      "id": "5eb1ffd8-d98d-4682-b200-92ab2432fd81",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2656,
        -400
      ],
      "parameters": {
        "width": 2032,
        "height": 880,
        "content": "## Introduction\nAutomate price monitoring for e-commerce competitors—ideal for retailers, analysts, and pricing teams.\n\n**⚠️ Self-Hosted Only:** Requires self-hosted n8n instance.\n## How It Works\nScra"
      }
    },
    {
      "id": "738fd9c2-91ff-4f15-b7a3-1aa0e4c1f8a1",
      "name": "Converts unstructured AI text into organized, usable data fields",
      "type": "n8n-nodes-base.code",
      "position": [
        -1504,
        -16
      ]
    },
    {
      "id": "2a1d727b-8147-42e7-bfcd-c3ed37af7bc7",
      "name": "🤖 AI Extract Product Data using GPT-4.1-mini",
      "type": "n8n-nodes-base.openAi",
      "position": [
        -1696,
        -16
      ]
    },
    {
      "id": "652a2128-6e01-4d6e-8bcb-b3f844cec2a8",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1584,
        -352
      ],
      "parameters": {
        "width": 352,
        "height": 240,
        "content": "## Google Sheets Structure\n**Required Columns:**\n- **Product Name** (Column A)\n- **Current Price** (Column B)\n- **Previous Price** (Column C)\n- **Stock Status** (Column D)\n- **Last Updated** (Column E"
      }
    }
  ],
  "connections": {
    "Send a message": {
      "main": [
        []
      ]
    },
    "Scrape URL: nike.com": {
      "main": [
        [
          {
            "node": "🤖 AI Extract Product Data using GPT-4.1-mini",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape URL: adidas.com": {
      "main": [
        [
          {
            "node": "🤖 AI Extract Product Data using GPT-4.1-mini",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "📊 Read Historical Data": {
      "main": [
        [
          {
            "node": "🔀 Merge Current with Historical",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "📊 Aggregate Daily Digest": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape URL: sneakerpricer.com": {
      "main": [
        [
          {
            "node": "🤖 AI Extract Product Data using GPT-4.1-mini",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🔍 Detect Price & Stock Changes": {
      "main": [
        [
          {
            "node": "📊 Aggregate Daily Digest",
            "type": "main",
            "index": 0
          },
          {
            "node": "💾 Update Historical Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "📝 Log Alert Details",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🔀 Merge Current with Historical": {
      "main": [
        [
          {
            "node": "🔍 Detect Price & Stock Changes",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Scrape URL: nike.com",
            "type": "main",
            "index": 0
          },
          {
            "node": "Scrape URL: adidas.com",
            "type": "main",
            "index": 0
          },
          {
            "node": "Scrape URL: sneakerpricer.com",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "🤖 AI Extract Product Data using GPT-4.1-mini": {
      "main": [
        [
          {
            "node": "Converts unstructured AI text into organized, usable data fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Converts unstructured AI text into organized, usable data fields": {
      "main": [
        [
          {
            "node": "🔀 Merge Current with Historical",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}