Send certification expiry alerts from Google Sheets with Gmail
Go to WorkflowDescription
Quick overview
This workflow runs every Monday at 08:00 to read a Google Sheets roster, calculate days until each agent’s certification expiry date, and send a consolidated HTML alert email via Gmail to the configured manager when certifications expire within a defined threshold.
How it works
Runs every Monday at 08:00 on a scheduled trigger.
Loads the configured Google Sheets URL, manager email address, and expiry threshold (in days).
Reads all rows from the agent roster in Google Sheets.
Calculates how many days remain until each row’s Expiry_Date.
Keeps only agents whose certification expires between 0 and the configured threshold.
Builds an HTML table row for each expiring agent and aggregates all rows into a single list.
Sends one consolidated HTML email through Gmail to the manager with the expiring agents and their remaining days.
Setup
Add a Google Sheets OAuth2 credential and ensure the workflow can access your roster spreadsheet.
Add a Gmail OAuth2 credential for the account that sends the alert email.
Update the configured sheet URL, manager email, and expiry threshold values.
Ensure the Google Sheet contains Agent_Name, Cert_Type, and Expiry_Date formatted as dd/MM/yyyy.
Requirements
Go back
Title
Send certification expiry alerts from Google Sheets with Gmail
Description
Quick overview (10-50 words)
This workflow runs every Monday at 08:00 to read a Google Sheets roster, calculate days until each agent’s certification expiry date, and send a consolidated HTML alert email via Gmail to the configured manager when certifications expire within a defined threshold.
41 / 50 words
How it works (50+ words)
Runs every Monday at 08:00 on a scheduled trigger.
Loads the configured Google Sheets URL, manager email address, and expiry threshold (in days).
Reads all rows from the agent roster in Google Sheets.
Calculates how many days remain until each row’s Expiry_Date.
Keeps only agents whose certification expires between 0 and the configured threshold.
Builds an HTML table row for each expiring agent and aggregates all rows into a single list.
Sends one consolidated HTML email through Gmail to the manager with the expiring agents and their remaining days.
90 / 50+ words
Setup (50+ words)
Add a Google Sheets OAuth2 credential and ensure the workflow can access your roster spreadsheet.
Add a Gmail OAuth2 credential for the account that sends the alert email.
Update the configured sheet URL, manager email, and expiry threshold values.
Customization
An n8n instance (self-hosted or cloud)
A Google account with Gmail and Google Sheets access
A roster spreadsheet with columns: Agent_Name, Cert_Type, Expiry_Date (dd/MM/yyyy)
Additional info
Change the expiry threshold in the Configure node (default: 30 days)
Filter by a specific certification type (APS, SSIAP, SST) in Filter Expiring Soon
Send one email per agent by removing the Aggregate node
Adjust the run frequency (e.g. daily) in the schedule trigger