{
  "name": "Monitor product prices with Decodo, Google Sheets, Gemini and Gmail",
  "nodes": [
    {
      "id": "469eec11-a949-40e2-bddd-410a17919fb8",
      "name": "HTML",
      "type": "n8n-nodes-base.html",
      "position": [
        880,
        48
      ]
    },
    {
      "id": "25d9c998-7fb7-4491-b375-3ba0fb3c4368",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -144,
        32
      ]
    },
    {
      "id": "12d0d284-5fd2-47e4-9853-4437e63ddf38",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        64,
        32
      ]
    },
    {
      "id": "794f84fb-5780-4f7b-9974-f269fc9b8a55",
      "name": "Code in JavaScript1",
      "type": "n8n-nodes-base.code",
      "position": [
        592,
        48
      ]
    },
    {
      "id": "16deac07-4ff5-49a9-b459-f3ef2b70a6e9",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1088,
        48
      ]
    },
    {
      "id": "7258880c-0438-47eb-a2c6-d01cb9c9c34d",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1088,
        288
      ]
    },
    {
      "id": "77bbfb54-7dcd-4ab4-87f4-34ad0a083717",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1808,
        48
      ]
    },
    {
      "id": "075f2f65-d305-4d54-8e00-ce0e1760f0a5",
      "name": "Code in JavaScript2",
      "type": "n8n-nodes-base.code",
      "position": [
        1488,
        48
      ]
    },
    {
      "id": "5912b2c0-4fb4-49a2-8c16-33a1de907759",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2112,
        32
      ]
    },
    {
      "id": "b03d7a09-354e-4540-892d-64f75e5b974e",
      "name": "Decodo",
      "type": "@decodo/n8n-nodes-decodo.decodo",
      "position": [
        352,
        48
      ]
    },
    {
      "id": "b9f911c4-21bd-4f2e-9361-0c05730b954f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        352,
        -384
      ],
      "parameters": {
        "width": 1424,
        "height": 384,
        "content": "\n\n## How it works:\nThis workflow monitors prices by pulling URLs from a Google Sheet and processing them in a loop. It uses the Decodo node for data handling. JavaScript formats data for the HTML node"
      }
    },
    {
      "id": "afb329d2-539a-4608-b456-273ebd8a369f",
      "name": "Daily Run",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -368,
        32
      ]
    },
    {
      "id": "e06ca996-474c-4129-b223-432d17a40390",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        -64
      ],
      "parameters": {
        "width": 688,
        "height": 224,
        "content": "\n## Data Sourcing & Iteration\nThis section manages the workflow timing and retrieves the target product list from Google Sheets. The Loop Over Items node ensures each URL is processed individually to "
      }
    },
    {
      "id": "257ab95a-7eba-4b4b-92cb-4fa85cd4a3e4",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        272,
        112
      ],
      "parameters": {
        "width": 752,
        "height": 272,
        "content": "\n\n\n\n\n\n\n\n\n\n\n## Raw Content Extraction & Prep\nThis zone handles the raw data retrieval. The Decodo node processes the input, followed by a JavaScript node that cleans the data for the HTML node. We extr"
      }
    },
    {
      "id": "3b3b0a24-2d78-4ffc-b117-9b3eefd9fd3a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1072,
        176
      ],
      "parameters": {
        "width": 368,
        "height": 448,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n## AI Intelligence & Data Parsing\nThis is the core of the workflow. The AI Agent uses Google Gemini to analyze the HTML text. It is prompted to find and return the Product Name and C"
      }
    },
    {
      "id": "7f9dff5f-7ed3-40f4-8392-170bccd77e52",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1552,
        80
      ],
      "parameters": {
        "width": 848,
        "height": 256,
        "content": "\n\n\n\n\n\n## Validation & Alerting Logic\n\nThis is the final stage. A Regex script extracts the numerical price from the AI’s response. The If Node compares this to the \"Desired Price.\" If the price matche"
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Decodo": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Code in JavaScript2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Run": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Decodo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        [
          {
            "node": "HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript2": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}