{
  "name": "Track domain expiry dates with Google Sheets and WHOIS API",
  "nodes": [
    {
      "id": "f6f6e8fe-0170-4654-84a0-b642ed0e1486",
      "name": "Run Domain Expiry Check",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        0,
        0
      ]
    },
    {
      "id": "4378b325-c8e2-45b3-88af-d4f991c39a33",
      "name": "Set Sheet Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        192,
        0
      ]
    },
    {
      "id": "baa9ff4b-6a40-4fde-b2b9-7a1f78f35994",
      "name": "Read All Domains from Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        416,
        0
      ]
    },
    {
      "id": "9f53094b-671d-4799-a7e0-c36c253d36e0",
      "name": "Loop Through Each Domain",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        688,
        0
      ]
    },
    {
      "id": "318dfa39-901d-45dc-8aa1-1c116f99e4fe",
      "name": "Fetch DNS Records via WHOIS API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        976,
        16
      ]
    },
    {
      "id": "3a38d798-4581-43a0-b325-394d39ffc9f0",
      "name": "Convert Expiry Timestamp to Date",
      "type": "n8n-nodes-base.code",
      "position": [
        1200,
        16
      ]
    },
    {
      "id": "826a501c-74d2-4e64-b878-4debf7ce4fae",
      "name": "Write Expiry Data to Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1424,
        16
      ]
    },
    {
      "id": "51ffcc2a-5155-4e5e-97c4-dc3b8b0fb229",
      "name": "Pause Before Next Domain",
      "type": "n8n-nodes-base.wait",
      "position": [
        1648,
        16
      ]
    },
    {
      "id": "fbc98e3f-e5c1-4712-bf4f-a3a87500cd59",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        -240
      ],
      "parameters": {
        "width": 416,
        "height": 688,
        "content": "## Domain Expiry Date Tracker\n\nThis workflow automatically checks domain expiry dates for\nall websites listed in your Google Sheet. It loops through\neach domain one by one, fetches DNS records using t"
      }
    },
    {
      "id": "2e4bf207-f971-44ef-b137-5ca2276ecf14",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        192,
        -160
      ],
      "parameters": {
        "width": 320,
        "height": 208,
        "content": "## Configuration & Data Loading\n\nSets the Google Sheet ID and sheet name,\nthen reads all domain rows from the sheet\nto prepare for expiry checking."
      }
    },
    {
      "id": "5168c361-cdff-411e-ac2a-777e32accdcc",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -144
      ],
      "parameters": {
        "width": 608,
        "height": 208,
        "content": "## Expiry Data Fetch & Processing\n\nLoops through each domain, queries WHOIS API\nfor DNS records, then extracts and converts\nthe expiry timestamp into a readable date format."
      }
    },
    {
      "id": "31f5faa5-586e-40af-9b99-5715054c3f38",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1424,
        -160
      ],
      "parameters": {
        "width": 320,
        "height": 224,
        "content": "## Update Sheet & Continue Loop\n\nWrites the expiry date, month, and year\nback to the Google Sheet, pauses briefly,\nthen moves to the next domain in the list."
      }
    }
  ],
  "connections": {
    "Run Domain Expiry Check": {
      "main": [
        [
          {
            "node": "Set Sheet Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Sheet Configuration": {
      "main": [
        [
          {
            "node": "Read All Domains from Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Through Each Domain": {
      "main": [
        [],
        [
          {
            "node": "Fetch DNS Records via WHOIS API",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pause Before Next Domain": {
      "main": [
        [
          {
            "node": "Loop Through Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write Expiry Data to Sheet": {
      "main": [
        [
          {
            "node": "Pause Before Next Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read All Domains from Sheet": {
      "main": [
        [
          {
            "node": "Loop Through Each Domain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch DNS Records via WHOIS API": {
      "main": [
        [
          {
            "node": "Convert Expiry Timestamp to Date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert Expiry Timestamp to Date": {
      "main": [
        [
          {
            "node": "Write Expiry Data to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}