{
  "id": "593aca9c-c263-4397-ba99-8bcf899300e0",
  "name": "URL Status and Redirect Review",
  "nodes": [
    {
      "parameters": {
        "content": "# Reviewed Harshith.com template\n\nChecks a fixed list of URLs you own and returns a review queue for redirects and error responses. It does not discover links, crawl a site, or modify anything.\n\nThis export is inactive and contains no credentials, deployment IDs, webhook IDs, or pinned data. Review the visible allowlist before each run.",
        "height": 300,
        "width": 430,
        "color": 7
      },
      "id": "557e9f63-e741-427f-b961-59b39f4f8fff",
      "name": "Read Me First",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -760,
        -300
      ]
    },
    {
      "parameters": {},
      "id": "51c94d24-a154-4a63-ac12-5fcb7459535f",
      "name": "Run Manually",
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [
        -620,
        80
      ]
    },
    {
      "parameters": {
        "jsCode": "return [\n  { json: { url: 'https://www.harshith.com/' } },\n  { json: { url: 'https://www.harshith.com/index' } },\n  { json: { url: 'https://www.harshith.com/this-safe-fixture-should-404' } },\n];"
      },
      "id": "abd9d5c6-1b41-4947-a93a-4181e1aea487",
      "name": "Choose Authorized URLs",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        -380,
        80
      ]
    },
    {
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {
          "timeout": 10000,
          "redirect": {
            "redirect": {
              "followRedirects": false
            }
          },
          "response": {
            "response": {
              "fullResponse": true,
              "neverError": true,
              "responseFormat": "text"
            }
          }
        }
      },
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 1000,
      "id": "a2297bfa-f2f6-4636-a54e-a9c86b18d235",
      "name": "Check URL",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -100,
        80
      ]
    },
    {
      "parameters": {
        "mode": "runOnceForEachItem",
        "jsCode": "const response = $json;\nconst url = $('Choose Authorized URLs').item.json.url;\nconst statusCode = Number(response.statusCode || 0);\nconst isRedirect = statusCode >= 300 && statusCode < 400;\nconst isError = statusCode < 200 || statusCode >= 400;\nconst headers = response.headers || {};\nconst redirectLocation = String(headers.location || headers.Location || '');\nreturn { json: { url, statusCode, redirectLocation, needsReview: isRedirect || isError, outcome: isRedirect ? 'redirect' : isError ? 'error' : 'ok', checkedAt: new Date().toISOString() } };"
      },
      "id": "3be7734b-2e96-4e83-b144-f012db7662c7",
      "name": "Build URL Review",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        180,
        80
      ]
    }
  ],
  "connections": {
    "Run Manually": {
      "main": [
        [
          {
            "node": "Choose Authorized URLs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Choose Authorized URLs": {
      "main": [
        [
          {
            "node": "Check URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check URL": {
      "main": [
        [
          {
            "node": "Build URL Review",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1",
    "saveDataErrorExecution": "none",
    "saveDataSuccessExecution": "none",
    "saveManualExecutions": false,
    "executionTimeout": 60
  },
  "tags": []
}
