{
  "name": "Compare website SEO gaps using Google Sheets, HTML and Gemini AI",
  "nodes": [
    {
      "id": "68474035-4770-48f9-b559-21c2a383776d",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        10240,
        3232
      ]
    },
    {
      "id": "44699fa5-8134-47da-bf36-3ac013d67d95",
      "name": "Get row(s) in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        10464,
        3232
      ]
    },
    {
      "id": "710d381f-2b9d-4395-83f5-ab4ae1b6b824",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        10688,
        3232
      ]
    },
    {
      "id": "a29b4fac-07eb-4294-8232-a6c6ffc09f1e",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        10912,
        3232
      ]
    },
    {
      "id": "be5308ec-af61-4bcf-96dd-87f79b807387",
      "name": "HTML (for My website)",
      "type": "n8n-nodes-base.html",
      "position": [
        11360,
        2960
      ]
    },
    {
      "id": "daeb3c9a-2a39-4a1e-a53e-ab893f54f71a",
      "name": "All Links (My Website)",
      "type": "n8n-nodes-base.code",
      "position": [
        11584,
        3088
      ]
    },
    {
      "id": "ab4f1cfb-0516-48f6-a5f7-5b8605c0b8e5",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        12704,
        3088
      ]
    },
    {
      "id": "ae03a1fc-7981-428d-bdc0-c24eb823b9e1",
      "name": "HTTP Request2",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        12928,
        3056
      ]
    },
    {
      "id": "34c8b57b-140e-4d63-9854-f0479a064ddd",
      "name": "My Website HTTP",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        11136,
        2960
      ]
    },
    {
      "id": "507ff63c-2184-49e5-afb3-e84e7c7da4fe",
      "name": "HTTP (for Competitor)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        11360,
        3472
      ]
    },
    {
      "id": "c4617b95-ccad-4458-a672-d54276d8416a",
      "name": "HTML (for Competitor Website)",
      "type": "n8n-nodes-base.html",
      "position": [
        11584,
        3472
      ]
    },
    {
      "id": "7ee6b3ea-9f4a-46a5-b1bc-ad875a71dedb",
      "name": "Competitor Data",
      "type": "n8n-nodes-base.code",
      "position": [
        11808,
        3376
      ]
    },
    {
      "id": "6bb565e7-edfd-4c61-ba58-cf043a4b0d35",
      "name": "Append in Competitor Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        12032,
        3376
      ]
    },
    {
      "id": "1c11904f-f422-4717-9094-a9e52d25e7f6",
      "name": "My Website Data",
      "type": "n8n-nodes-base.code",
      "position": [
        11584,
        2896
      ]
    },
    {
      "id": "3e25eabc-9fc7-4f48-9aa9-76c7f8dee8ae",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        12928,
        2864
      ]
    },
    {
      "id": "80ee0e17-4219-4a9c-8c41-845fd8ec4b01",
      "name": "Append First Row of My website",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        11808,
        2896
      ]
    },
    {
      "id": "ff2d2f31-cdd3-474c-9253-0c24fcc1b90f",
      "name": "All Links (Competitor Website)",
      "type": "n8n-nodes-base.code",
      "position": [
        11808,
        3568
      ]
    },
    {
      "id": "e53b714c-847d-4cd2-aeae-d7c4b839a11e",
      "name": "HTML (All Links My Web)",
      "type": "n8n-nodes-base.html",
      "position": [
        13152,
        3056
      ]
    },
    {
      "id": "e43db405-354d-42f5-84ee-cc5692bb2ddc",
      "name": "All Links Data (My Website)",
      "type": "n8n-nodes-base.code",
      "position": [
        13376,
        3184
      ]
    },
    {
      "id": "43a8335e-0d79-486a-9863-04223b62d516",
      "name": "Inserted All Links in sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        12032,
        3088
      ]
    },
    {
      "id": "bc127416-3d57-45db-ade3-28dcd66466d6",
      "name": "Inserted all Links (Competitor Website)",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        12032,
        3568
      ]
    },
    {
      "id": "529eed28-d597-4f46-8e0b-38b3d97b5432",
      "name": "Get row(s) in sheet2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        12480,
        3568
      ]
    },
    {
      "id": "6df6de0a-49fe-40e3-a47d-23b4431ce135",
      "name": "Get Rows from All links",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        12480,
        3088
      ]
    },
    {
      "id": "565fbeef-3734-4b64-b515-f96c98faa22c",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        12704,
        3568
      ]
    },
    {
      "id": "0bfb6ed4-4479-49e0-bf7a-e29e3e387d15",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        12928,
        3568
      ]
    },
    {
      "id": "926fbdee-7069-41d7-92d3-c1d95cd8948e",
      "name": "Wait1",
      "type": "n8n-nodes-base.wait",
      "position": [
        12928,
        3376
      ]
    },
    {
      "id": "e9cba612-b849-4fbb-86f2-92f2ba2ecc85",
      "name": "Update row in Competitor Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        13152,
        3376
      ]
    },
    {
      "id": "32f35dba-cdfd-4607-a3c6-6f053cbda20a",
      "name": "Update row in My Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        13152,
        2864
      ]
    },
    {
      "id": "cf187f2f-73ba-465b-8f02-868867b5108e",
      "name": "Get All data from Competitor Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        13600,
        3376
      ]
    },
    {
      "id": "333d1db3-9d3e-4544-82ee-d21d69d30a3a",
      "name": "Get All data from My Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        13600,
        2864
      ]
    },
    {
      "id": "823137e2-be7d-4e1f-a915-0e8c20e11a42",
      "name": "Wait2",
      "type": "n8n-nodes-base.wait",
      "position": [
        12256,
        3568
      ]
    },
    {
      "id": "7cbd00ea-a22c-4e91-8d10-0032b4aa7b45",
      "name": "Wait3",
      "type": "n8n-nodes-base.wait",
      "position": [
        11808,
        3088
      ]
    },
    {
      "id": "3ccad78e-7925-4e16-89a2-fac8bf2685c8",
      "name": "Wait4",
      "type": "n8n-nodes-base.wait",
      "position": [
        12256,
        3088
      ]
    },
    {
      "id": "1f7979ac-e3ca-44fd-b242-cc5de34de3ce",
      "name": "Wait5",
      "type": "n8n-nodes-base.wait",
      "position": [
        13376,
        2864
      ]
    },
    {
      "id": "fed93104-844e-4b69-9fc9-b0f9ae9bcb66",
      "name": "Wait6",
      "type": "n8n-nodes-base.wait",
      "position": [
        13376,
        3376
      ]
    },
    {
      "id": "ff368ee4-1f22-43be-a0f0-b50c35344c15",
      "name": "HTML (All Links Competitor Website)",
      "type": "n8n-nodes-base.html",
      "position": [
        13152,
        3568
      ]
    },
    {
      "id": "5d64f117-269e-4b54-8c32-f0c697a7c05d",
      "name": "All Links Data (Competitor Website)",
      "type": "n8n-nodes-base.code",
      "position": [
        13376,
        3712
      ]
    },
    {
      "id": "0bffd008-4a60-4fce-bec2-1ea3e9f95ed3",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        13824,
        3232
      ]
    },
    {
      "id": "ef02f8c5-1801-45b3-8b21-e99d5b8676cc",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        14048,
        3232
      ]
    },
    {
      "id": "54789e22-ace7-4981-b6fb-d6da04fd38a2",
      "name": "Code in JavaScript1",
      "type": "n8n-nodes-base.code",
      "position": [
        14624,
        3232
      ]
    },
    {
      "id": "c3bba3b3-369c-4aef-a70e-c17550b86da7",
      "name": "Append row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        14848,
        3232
      ]
    },
    {
      "id": "d214d40d-cc71-4f64-8155-bff956fd7b29",
      "name": "Update row in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        15072,
        3232
      ]
    },
    {
      "id": "44eb3e31-0e82-4cc2-aeff-e0af17514885",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        9360,
        2752
      ],
      "parameters": {
        "width": 768,
        "height": 1200,
        "content": "# SEO Content Gap Analyzer\n\n### How it works\n\nThis workflow compares your website with competitor websites to identify SEO gaps. It starts by reading URLs from Google Sheets and filtering only new ent"
      }
    },
    {
      "id": "53867f4a-7993-4694-b0fd-398ea978ae6e",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        14272,
        3232
      ]
    },
    {
      "id": "17e9af60-d191-41ad-8393-53c436471d0d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        10144,
        2752
      ],
      "parameters": {
        "width": 928,
        "height": 1200,
        "content": "# **Input & Validation** #\n\nReads URLs from Google Sheets  \nFilters only NEW rows for processing"
      }
    },
    {
      "id": "336653fb-4de3-42ca-b53a-e1cba26c51c6",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        11088,
        2752
      ],
      "parameters": {
        "width": 2656,
        "height": 1200,
        "content": "# **Data Collection** #\n\nScrapes SE  O data from both websites  \nExtracts pages, content, and structure"
      }
    },
    {
      "id": "0a1cf2d8-cac3-4a61-bc3d-056b155c0e69",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        13760,
        2752
      ],
      "parameters": {
        "width": 1568,
        "height": 1200,
        "content": "# **AI SEO Analysis** #\n\nCompares both datasets using Gemini  \nGenerates SEO gap report"
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Update row in My Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait1": {
      "main": [
        [
          {
            "node": "Update row in Competitor Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait2": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait3": {
      "main": [
        [
          {
            "node": "Inserted All Links in sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait4": {
      "main": [
        [
          {
            "node": "Get Rows from All links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait5": {
      "main": [
        [
          {
            "node": "Get All data from My Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait6": {
      "main": [
        [
          {
            "node": "Get All data from Competitor Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "My Website HTTP",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP (for Competitor)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "HTML (All Links Competitor Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request2": {
      "main": [
        [
          {
            "node": "HTML (All Links My Web)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Competitor Data": {
      "main": [
        [
          {
            "node": "Append in Competitor Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "HTTP Request2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "Code in JavaScript1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "My Website Data": {
      "main": [
        [
          {
            "node": "Append First Row of My website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "My Website HTTP": {
      "main": [
        [
          {
            "node": "HTML (for My website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Wait1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Append row in sheet": {
      "main": [
        [
          {
            "node": "Update row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript1": {
      "main": [
        [
          {
            "node": "Append row in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet2": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML (for My website)": {
      "main": [
        [
          {
            "node": "My Website Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "All Links (My Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP (for Competitor)": {
      "main": [
        [
          {
            "node": "HTML (for Competitor Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "All Links (My Website)": {
      "main": [
        [
          {
            "node": "Wait3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row in My Sheet": {
      "main": [
        [
          {
            "node": "Wait5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Rows from All links": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML (All Links My Web)": {
      "main": [
        [
          {
            "node": "All Links Data (My Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get All data from My Sheet": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "All Links Data (My Website)": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Inserted All Links in sheets": {
      "main": [
        [
          {
            "node": "Wait4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML (for Competitor Website)": {
      "main": [
        [
          {
            "node": "Competitor Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "All Links (Competitor Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "All Links (Competitor Website)": {
      "main": [
        [
          {
            "node": "Inserted all Links (Competitor Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update row in Competitor Sheet": {
      "main": [
        [
          {
            "node": "Wait6",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get All data from Competitor Sheet": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "All Links Data (Competitor Website)": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTML (All Links Competitor Website)": {
      "main": [
        [
          {
            "node": "All Links Data (Competitor Website)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "Get row(s) in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Inserted all Links (Competitor Website)": {
      "main": [
        [
          {
            "node": "Wait2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}