Quick overview
This workflow monitors SSL certificate expiry and security headers for a list of websites using Apify, stores the last known state in an n8n Data Table, and sends change-based alerts and a weekly summary to Slack, Gmail, and an optional webhook.
How it works
- Runs on a daily schedule, on demand, or on Mondays for the weekly summary, and loads the site list and notification settings from the CONFIG block.
- Creates (if needed) and reads the
ssl_monitor_state n8n Data Table to keep track of each site’s last known grade, certificate status, and open issues.
- On daily/manual runs, calls the Apify “Security Headers & SSL Audit” Actor to audit each site’s HTTPS/certificate status, redirects, and security headers.
- Compares the latest audit results with the stored state to detect new, changed, reminder-due, and resolved issues, with “site unreachable” only alerting after consecutive failed checks.
- Saves the updated per-site state back to the
ssl_monitor_state Data Table and builds a single consolidated alert message when any changes are detected.
- Routes alerts by severity and sends them to the enabled channels via Slack, Gmail, and/or an HTTP webhook, retrying sends without blocking other channels.
- On weekly summary runs, generates a summary from the stored state (without running Apify) and sends it through the same notification channels.
Setup
- Create an Apify account and add an HTTP Header Auth credential with
Authorization: Bearer <YOUR_APIFY_TOKEN> for the Apify request.
- Add Slack credentials and set the target channel in CONFIG if you want Slack notifications.
- Add Gmail credentials and set the recipient address and minimum severity in CONFIG if you want email notifications.
- If using a webhook (for example Discord or Microsoft Teams), enable it in CONFIG and paste the webhook URL.
- Update CONFIG with your site domains, certificate warning/critical thresholds, minimum headers grade, and reminder/consecutive-failure settings before activating the workflow.
Requirements
Customization
- criticalReminderDays, email.minSeverity and confirmUnreachableChecks. Set previewWeeklySummary to true to test the summary. About $0.003 per site per check on Apify.
Additional info
Disclosure: the Apify Actor used here was built and is published by the author of this template (EdenWorks). You pay Apify's usage price when it runs and the author earns part of that fee. Apify's free plan credits cover light use.