🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

Google Sheets to Slack, SSL expiry alerts you trust

Lisa Granqvist Partner Workflow Automation Expert

Your SSL cert didn’t “suddenly” expire. It just quietly counted down to zero while everyone was busy, and now you’re dealing with a fire drill, a broken checkout, or an angry client.

This is the kind of mess that hits ops leads first. But marketing teams running landing pages and agency owners managing dozens of client domains feel it too. With SSL expiry alerts running automatically, you stop relying on memory and start relying on a system.

This workflow pulls domains from Google Sheets, checks each certificate, writes “days left” back to the sheet, then pings Slack when something is close to expiring. You’ll see how it works, what you need, and where teams usually trip up.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Google Sheets to Slack, SSL expiry alerts you trust

The Problem: SSL expirations happen quietly, then loudly

Most teams track domains in a doc or a spreadsheet, and that’s fine until it isn’t. The real issue is that expiry dates don’t stay “top of mind,” especially when you have lots of sites, subdomains, campaign pages, or client properties. Somebody has to check certificates, calculate days left, update the sheet, and then remember to warn the right person at the right time. That “somebody” is usually whichever responsible adult notices first. It’s distracting. It’s error-prone. And when it fails, the outage is public.

None of these alone is the problem. Together, they are.

  • You end up doing manual spot-checks in the browser, which means domains get skipped.
  • Dates in the sheet drift out of date, so renewals become a last-minute scramble.
  • Ownership is unclear, and the alert lands in the wrong inbox (or nowhere).
  • One missed certificate can take down a paid campaign or client site for hours.

The Solution: Google Sheets → SSL check → Slack warning

This n8n workflow turns your domain spreadsheet into a lightweight monitoring system. On a weekly schedule (you can change it), it reads every domain from Google Sheets, checks the live SSL certificate for each one using the CustomJS SSL Checker node, and gets back structured data like the issuer, expiry timestamp, and days remaining. Then it updates your Google Sheet so it always shows the latest “days left,” not whatever someone typed months ago. Finally, if any domain is inside your warning window (less than 8 days by default), the workflow posts a clear Slack message to the channel you choose so someone can renew before users see errors.

The workflow starts with a scheduled trigger and a “read rows” pull from Google Sheets. After the SSL check, it writes the computed days-left value back into the sheet, evaluates the threshold, and only then sends Slack alerts for the risky ones. Quiet when all is well. Loud when it needs to be.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you manage 40 domains across your company and clients. Manually, checking SSL in a browser and updating a sheet can easily take 5 minutes per domain, which is about 3 hours each time you do it (and most people don’t do it consistently). With this workflow, you spend maybe 10 minutes once to maintain the Google Sheet and Slack channel, then the weekly run handles the rest. When one domain drops under 8 days left, the team gets a Slack reminder right away.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store domains and days-left status.
  • Slack to deliver alerts where your team works.
  • CustomJS API key (get it from your CustomJS account dashboard).

Skill level: Intermediate. You’ll connect accounts, set permissions, and confirm your sheet columns match the workflow.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

A weekly schedule kicks things off. n8n runs this automatically (weekly by default), so you’re not depending on someone remembering to “go check certs” on Friday.

Your domain list is pulled from Google Sheets. The workflow reads each row you’ve entered, so your sheet stays the source of truth. Add a new domain once, and it’s monitored on the next run.

Each domain’s SSL certificate is validated and measured. The CustomJS SSL Checker returns fields like expires, issuer, and daysLeft, which the workflow then formats so it can be stored cleanly.

The sheet is updated and Slack only gets the urgent stuff. n8n writes “days left” back into Google Sheets, evaluates your threshold (under 8 days by default), and posts an alert to Slack for anything that needs attention.

You can easily modify the expiry threshold to match your renewal process based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

This workflow starts on a weekly cadence and then pulls SSL targets from Google Sheets.

  1. Add or open Weekly Schedule Start.
  2. Set the schedule rule to weekly with Field set to weeks.
  3. Confirm the node connects to Fetch Sheet Records in the main flow.

Step 2: Connect Google Sheets

Pull the list of domains from your spreadsheet and prepare the update flow.

  1. Open Fetch Sheet Records and select the spreadsheet from Document with [YOUR_ID].
  2. Set Sheet to Sheet1 (gid 0).
  3. Credential Required: Connect your googleSheetsOAuth2Api credentials for Fetch Sheet Records.
  4. Open Modify Sheet Entry and verify Operation is update.
  5. Map columns under Columns as follows: Website to {{ $('Fetch Sheet Records').item.json.Website }}, Days Left to {{ $json.output.daysLeft }}, and row_number to {{ $('Fetch Sheet Records').item.json.row_number }}.
  6. Credential Required: Connect your googleSheetsOAuth2Api credentials for Modify Sheet Entry.

Step 3: Set Up SSL Validation

Check each domain’s SSL certificate and calculate days remaining.

  1. Open Validate SSL Status and set Domain to {{ $json.Website }}.
  2. Credential Required: Connect your customJsApi credentials for Validate SSL Status.
  3. Ensure the connection order is Fetch Sheet RecordsValidate SSL StatusModify Sheet Entry.

Tip: Make sure your sheet has a Website column so Validate SSL Status receives a valid domain for each row.

Step 4: Configure the Expiry Check and Slack Alert

Filter to only expiring certificates and send a Slack reminder.

  1. Open Evaluate Expiry Window and set the condition to Days Left less than 8 using {{ $json['Days Left'] }} as the left value.
  2. Open Dispatch Slack Alert and set Text to ⏰ Reminder: SSL certificate of {{ $('Modify Sheet Entry').item.json.Website }} will expire in {{ $json["Days Left"] }} days..
  3. Set Select to user and choose a recipient with [YOUR_ID].
  4. Credential Required: Connect your slackApi credentials for Dispatch Slack Alert.

⚠️ Common Pitfall: If Days Left is stored as text in the sheet, the numeric comparison in Evaluate Expiry Window may not behave as expected. Ensure the column is numeric or convert it before the IF check.

Step 5: Test and Activate Your Workflow

Run a manual test to confirm the SSL checks, sheet updates, and Slack notifications.

  1. Click Execute Workflow to run Weekly Schedule Start manually.
  2. Verify Modify Sheet Entry updates Days Left for each domain in your spreadsheet.
  3. Confirm Dispatch Slack Alert posts a message for domains with fewer than 8 days remaining.
  4. Toggle the workflow to Active so it runs weekly in production.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials screen and your Google Cloud OAuth consent and scopes first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • CustomJS SSL Checker access can fail if your API key is missing, inactive, or blocked by your plan. Confirm the key in the CustomJS dashboard and re-paste it into the n8n credential if Slack alerts stop suddenly.

Frequently Asked Questions

How long does it take to set up this SSL expiry alerts automation?

About 30 minutes if your Google Sheets, Slack, and CustomJS accounts are ready.

Do I need coding skills to automate SSL expiry alerts?

No. You’ll mostly connect accounts and map a few fields in Google Sheets. The SSL check runs through a prebuilt CustomJS node.

Is n8n free to use for this SSL expiry alerts workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in CustomJS API access costs, which depend on your plan and usage.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

Can I customize this SSL expiry alerts workflow for a different warning window, like 30 days?

Yes, and it’s a simple change. Update the threshold inside the “Evaluate Expiry Window” (If) node so it alerts under 30 days instead of under 8. Teams also commonly adjust the Slack message format, add an “owner” column from Google Sheets, or route high-risk domains to a separate channel.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired Google OAuth consent or a credential that no longer has access to the spreadsheet. Reconnect the Google Sheets credential in n8n, then confirm the sheet is shared with the same Google account you authenticated. If the workflow reads rows but fails on update, check that the target columns still exist and haven’t been renamed.

How many domains can this SSL expiry alerts automation handle?

A few hundred domains per run is realistic for most setups, and you can scale further by spacing checks or running more often.

Is this SSL expiry alerts automation better than using Zapier or Make?

Often, yes, because n8n gives you more control over logic and data shaping without turning every branch into a paid “step.” Self-hosting is also a big deal when you want predictable costs while monitoring lots of domains. Zapier and Make can work, but the SSL check piece tends to be the blocker: you’ll either rely on a third-party connector, or you’ll stitch together HTTP calls and formatting that’s harder to maintain. Frankly, the more domains you have, the more you’ll care about debugging and visibility, and n8n is strong there. If you’re unsure, Talk to an automation expert and get a quick recommendation for your setup.

Once this is running, SSL renewals stop being “urgent surprises” and become routine maintenance. The workflow watches the boring countdown so you don’t have to.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal