Quick overview
This workflow runs nightly, reads a list of site paths from Google Sheets, compares each staging URL to its production counterpart using Snapshot Site, and posts a worst-first drift digest (or an all-clear message) to a Slack channel.
How it works
- Runs every night at 2AM on a schedule.
- Reads a list of routes (path and label) from a Google Sheets tab and iterates through them one by one.
- Builds full production and staging URLs for each route by joining the path to the configured base URLs and normalizing slashes.
- Uses Snapshot Site Compare to capture and compare the production page (before) against the staging page (after) with identical render options.
- Categorizes each result into drift bands (identical, minor, significant, severe) or records the route as failed when the compare cannot be completed.
- Aggregates all results into a single Slack-formatted digest sorted by highest mismatch first and counts paths per drift band.
- Posts the full digest to Slack when there is significant/severe drift or failures, otherwise posts a short “quiet night” summary.
Setup
- Install the n8n community node
n8n-nodes-snapshot-site and add Snapshot Site API credentials.
- Add Google Sheets OAuth credentials, set the spreadsheet URL/ID, and ensure the sheet has a tab named “Paths” with headers
path and label in the first row.
- Edit the production and staging base URLs in the code step that builds URL pairs (both must include
https://).
- Add Slack credentials and set the target channel (for example
#staging-drift) in the Slack message steps.
- Review Snapshot Site compare options (hide selectors, width, delay, cookies) and keep before/after options identical to avoid false drift.
- Adjust the schedule time and drift thresholds in the code step that assigns drift bands if needed.