VOOZH about

URL: https://n8n.io/workflows/5172-monitor-ssl-certificate-expiry-dates-with-google-sheets-and-slack-alerts/

⇱ Monitor SSL certificate expiry dates with Google Sheets & Slack alerts | n8n workflow template


Back to Templates

Monitor SSL certificate expiry dates with Google Sheets & Slack alerts

Last update

Last update 3 months ago

Categories

Share


πŸ‘ image.png

This n8n workflow illustrates how to monitor and track SSL certificate expiration dates for any domain using the SSL Checker node from customJS. It automatically updates a Google Sheet with the number of days left until expiry and sends a Slack notification when certificates are about to expire.


What this workflow does

  • Input a list of domains from Google Sheets.
  • Check each domain’s SSL certificate details, including expiration date and days left.
  • Update the Google Sheet with the latest SSL expiry information.
  • Notify via Slack if any certificate is expiring soon (e.g., less than 8 days).

Requirements

  • CustomJS API key for SSL checking.
  • Google Sheets API credentials for reading/updating domain data.
  • Slack API credentials (optional, for notifications).

Workflow Steps

  1. Schedule Trigger

    • ⏰ Starts the workflow automatically (weekly by default, configurable).
  2. Google Sheets (Read Rows)

    • πŸ“„ Retrieves the list of domains from your Google Sheet.
  3. CustomJS - Check SSL

    • πŸ” Fetches SSL certificate details for each domain.
    • Returns JSON output with fields such as expires and daysLeft.
  4. Google Sheets (Update Rows)

    • πŸ“ Updates the sheet with the current number of days left until certificate expiry.
  5. Check Days Left Threshold (formerly "If" node)

    • ⚠️ Evaluates whether the certificate expires within the threshold (e.g., < 8 days).
  6. Slack Node

    • πŸ’¬ Sends a notification message if a certificate is close to expiration.

    Example Slack alert message:

    ⏰ Reminder: SSL certificate of www.example.com 
    will expire in 7 days.
    

SSL Checker node JSON output

{
 "output": {
 "domain": "example.com",
 "valid": true,
 "expires": "2025-12-31T23:59:59.000Z",
 "issuer": "Let's Encrypt",
 "daysLeft": 5
 }
}