Quick overview
This workflow runs daily to pull Google Search Console performance data, log it to Google Sheets, send a daily SEO digest to Discord with day-over-day deltas, and ping an external heartbeat endpoint; if any step errors, it immediately pings the heartbeat service’s /fail endpoint.
How it works
- Runs every day at 08:00 on a schedule trigger.
- Queries the Google Search Console Search Analytics API for query-level data from two days ago.
- Aggregates the results into totals (clicks, impressions, average position) and the top queries.
- Appends the day’s metrics to Google Sheets and reads the sheet to fetch the previous day’s row for comparison.
- Calculates percentage changes vs yesterday and sends a formatted SEO digest to Discord, including a warning when clicks drop sharply.
- Posts a success ping with the key metrics to an external heartbeat service (for example, checkilo or Healthchecks.io) so missing runs can be detected.
- If any node throws an error, an error-triggered branch posts a /fail ping to the heartbeat service with the error message and failing step.
Setup
- Add a Google OAuth2 credential with the
https://www.googleapis.com/auth/webmasters.readonly scope and replace the URL-encoded Search Console property in the Google Search Console API request URL.
- Add a Google Sheets credential and replace
REPLACE_WITH_SHEET_ID, ensuring the target sheet has headers like date, clicks, impressions, avgPosition, and topQueries.
- Add your Discord webhook credentials (or swap the Discord step for another notification service) and set the destination accordingly.
- Create a checkilo/Healthchecks.io monitor and replace
REPLACE_WITH_YOUR_PING_SLUG in both the success heartbeat URL and the /fail URL.
- In the workflow settings, set this workflow as the Error Workflow so the error-triggered /fail ping runs when executions fail.