The reminders are not run by our servers. They are run by a small Apps Script pasted into your own workbook, on an hourly trigger that Google fires whether or not any browser tab is open. The script reads its rules from a hidden _Config tab the app writes, scans each watched column, decides what is due, acts, and records what it has already said in a hidden _CRM_State tab of the same spreadsheet.
That design is a deliberate consequence of the data boundary. Our database never learns which of your rows is due — copying every dated cell on the platform would be a second copy of everyone’s pipeline, growing forever, which is precisely what the data policy exists to prevent. It also means the mail comes from your address, with your deliverability and your Google account’s own daily sending limit, rather than from a shared sender. What the script reports back to the app is about itself, not your data: its version, how many rules it found, and whether the hourly trigger exists, so the settings screen can say “connected, last checked twelve minutes ago” instead of hoping.
Two safeguards are worth knowing. Moving a date re-arms the reminder — the state key includes the due date, so no cancellation logic is needed. And a two-day grace window means the first run after you switch this on does not email the whole team about every contract that expired in the last three years; history stays history.