Track expected work, not just failures
Illustrative scenario: a Monday report is due at ten. Someone accidentally disables the scenario. No execution fails, but no report is produced. An independent check must know in advance that the report is expected.
We use Google Sheets and Apps Script, a small program attached to the spreadsheet. It runs outside the Make/n8n workflow being monitored. After a deadline, it emails you if the tracker lacks a confirmed result link. It does not identify the cause or validate report contents.
You need a Google account allowed to use Apps Script and authorize access to its spreadsheet and outgoing email. Check organizational permission first. Keep client data out of the tracker: use internal job identifiers, deadlines, and restricted result links.
1. Create the expected-job tracker
Download the deadline tracker. In a new Google spreadsheet, choose File → Import → Upload. Rename the imported sheet exactly Schedule, which the program expects.
Keep the first four columns in order: job, deadline, confirmed result link, and alerted-at time. Each row represents one expected result, such as REPORT-2026-W40. The next week needs a new identifier and deadline. Create rows in advance, rather than only when a report arrives.
Enter a deadline with its timezone offset, for example 2026-10-01T10:00:00-04:00. For testing, use five minutes ago with your actual local offset. The download leaves deadlines blank for you to enter. The program rejects missing or invalid deadlines rather than pretending the check succeeded.
2. Add the supplied program
Download the deadline-check program and open it as text. In the spreadsheet, choose Extensions → Apps Script, replace the default code with the download, and save the project.
Change ALERT_EMAIL at the top to your own work address. Keep LANGUAGE = 'en'. The program does not read email; it uses MailApp to send alerts. Authorize it only under an account permitted to access the tracker. Do not share a password.
Select setupDeadlineCheck in the function menu and click Run. It stores the spreadsheet identifier so scheduled checks can locate it. Then select and run checkDeadlines. Google may request authorization for the required services. If organizational policy blocks it, agree on an approved route instead of bypassing the restriction.
3. Test the alert and its suppression
Set one test row’s deadline in the past and leave result and alerted-at fields blank. Running checkDeadlines should email your address and populate the fourth column.
Run it again: the same row should not produce an ordinary second alert. Clear its alerted-at field and enter a real HTTPS link to a harmless verified test output in the third column. Another run should not alert. Finally try a future deadline with no result; it should not alert early.
If no message arrives, open Executions in Apps Script and inspect the error, Schedule sheet, address, and deadline. Also check spam. Successful script execution does not prove inbox delivery.
4. Schedule the check
Open Triggers → Add Trigger in Apps Script. Choose checkDeadlines, Time-driven, and an hourly interval. Save. Google documents installable triggers; they run under their creator’s account and do not guarantee an exact minute.
An hourly check may wait until its next run. Critical deadlines need an appropriate monitoring service. Apps Script and email have quotas. This example is for a small set of internal jobs, not large-scale operational monitoring.
What counts as a confirmed result?
Enter a link only after checking that the correct output exists for the job and period. A person records it in this route. An integration can populate it later, but only after verifying its result; that integration is outside this tutorial. A missing link can mean no run, a failed run, or a forgotten confirmation, so the alert asks you to investigate.
Monitor the checker too: inspect trigger history regularly, test delivery, and name a backup for the account owner. After resolving a case, record its result. To request another alert for an unresolved job, clear its alerted-at field.
Google documentation reviewed October 1, 2026. This is our example program, tested locally rather than in your Google account. If email sends but recording its timestamp fails, a later run may repeat the alert. Exactly-once delivery is not guaranteed.