{
  "name": "Monitor SSL certificate expiry with Google Sheets and email alerts",
  "nodes": [
    {
      "id": "6393b349-fc19-4625-8e53-d536d2cd5a68",
      "name": "Get SSL",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        80,
        820
      ]
    },
    {
      "id": "9e14ff05-74c9-4cc7-b548-f59bc4b48cad",
      "name": "Loop",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -280,
        480
      ]
    },
    {
      "id": "dcc452e3-e90b-4e83-90c2-f93547d8eade",
      "name": "Update SSL in Spreadsheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        740,
        1040
      ]
    },
    {
      "id": "169a5730-d686-43ed-90bb-d590becaa145",
      "name": "Trigger Every Monday",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -1140,
        620
      ]
    },
    {
      "id": "92a63f90-51c8-4627-a445-9ab986dae932",
      "name": "SSL Not Good?",
      "type": "n8n-nodes-base.if",
      "position": [
        480,
        360
      ]
    },
    {
      "id": "fb348ae3-27ba-41d3-9566-b0c4faa07cbf",
      "name": "Get Website List",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -760,
        620
      ]
    },
    {
      "id": "88e6b31e-702a-460a-a5ec-7b7e05ea3852",
      "name": "Code",
      "type": "n8n-nodes-base.code",
      "position": [
        80,
        380
      ]
    },
    {
      "id": "e24a0b93-3812-4f35-a758-9daecaa200d3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1220,
        420
      ],
      "parameters": {
        "width": 260,
        "height": 360,
        "content": "## Weekly Trigger\n\nThis workflow trigger is scheduled to run every Monday at 7:00 AM.\n\n"
      }
    },
    {
      "id": "57ca5b4a-9dd3-4a07-b473-cabb223d594f",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        420
      ],
      "parameters": {
        "width": 260,
        "height": 360,
        "content": "## Fetch URL Website\n\nThis step reads a list of website URLs from a connected spreadsheet.\nEach row should contain a valid URL in the designated column.\n\n"
      }
    },
    {
      "id": "0f641fd9-3841-4509-9921-2f9959cd40c7",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        600
      ],
      "parameters": {
        "width": 260,
        "height": 360,
        "content": "## Get SSL Status\n\nThis step checks the SSL certificate status for each URL using the ssl-checker.io API.\nIt retrieves information such as certificate validity, expiration date, and overall SSL health"
      }
    },
    {
      "id": "a8cd1179-e8b4-4b9c-94e0-fef811e29807",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        660
      ],
      "parameters": {
        "width": 400,
        "height": 560,
        "content": "## Update Spreadsheet\n\nThis step updates the spreadsheet with the latest SSL information for each website.\nEnsure your spreadsheet includes the following columns:\n\n* No\n* Name\n* Link\n* SSL Issued On\n*"
      }
    },
    {
      "id": "64324b4e-cf9c-46a6-83e3-6e6d73e737ae",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 260,
        "height": 520,
        "content": "\n## Check SSL Expiry Threshold Code\n\nThis step checks if any SSL certificates will expire within 14 days.\n\n- If none are expiring soon, it returns \"All Good\".\n\n- If some are expiring, it lists the web"
      }
    },
    {
      "id": "2e68579e-168a-4ce3-af98-9a732477c245",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        60
      ],
      "parameters": {
        "width": 260,
        "height": 440,
        "content": "\n## Check Condition\nThis step checks if any SSL certificates are expiring soon (within 14 days).\nIf any are found, it will trigger an email alert with the details.\n\nUse this to notify you when SSL act"
      }
    },
    {
      "id": "ff5db72e-6031-41cb-bc6f-f10ab5976acd",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        760,
        60
      ],
      "parameters": {
        "width": 260,
        "height": 440,
        "content": "\n## Send Email Alert\nThis step sends an email notification when SSL certificates are close to expiring.\nIt includes the list of affected websites and how many days are left until expiration.\n\nMake sur"
      }
    },
    {
      "id": "31a10b9b-bdc0-46a2-9402-b8f16ad0c35a",
      "name": "Send Email Alert",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        840,
        340
      ]
    },
    {
      "id": "d87308c9-90b4-4aef-8420-47bfa3270255",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        260
      ],
      "parameters": {
        "width": 560,
        "height": 640,
        "content": "# 🔒 SSL Monitoring Workflow\n✅ What It Does:\nThis workflow automatically checks the SSL certificates of websites and alerts you if any are expiring soon (within 14 days). It helps you stay ahead of SSL"
      }
    }
  ],
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "SSL Not Good?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Get SSL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get SSL": {
      "main": [
        [
          {
            "node": "Update SSL in Spreadsheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SSL Not Good?": {
      "main": [
        [
          {
            "node": "Send Email Alert",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Website List": {
      "main": [
        [
          {
            "node": "Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trigger Every Monday": {
      "main": [
        [
          {
            "node": "Get Website List",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update SSL in Spreadsheet": {
      "main": [
        [
          {
            "node": "Loop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}