How an item gets renewed
An alert lands in Maria’s Slack DM at 8:03am. The cyber-insurance policy expires in 60 days. There’s an Acknowledge button. What happens when she taps it? The honest answer is “it depends on what she actually did.” This post walks through the three things the watcher can do on an acknowledgment — renew, snooze, ack-only — and how the registry, the chain state, and the audit trail all stay in sync.
Key takeaways
- Three actions per acknowledgment: ack-and-renew (new expiry, fresh chain), ack-and-snooze (delay), ack-only (silence the chain).
- Each action updates the registry sheet via the Sheets API and writes an audit row.
- A renewal archives the old chain to a separate sheet for history.
- Snooze is bounded — you can only snooze a few times before the watcher escalates anyway.
- The Acknowledge button is a Slack interactive message backed by a Function URL.
Three actions on Acknowledge
Action 1: ack-and-renew (the most common)
Maria worked with the broker, signed the new policy, and now needs to update the registry. She taps Renew. A small Slack modal opens with two fields: New expiry date (defaulting to one year from the previous expiry, which is right most of the time) and New renewal cost (defaulting to the previous cost). She edits whichever fields actually changed and hits Save.
The Save button submits to a Function URL Lambda. Three things happen, in order. First, the Sheets API updates the row in the registry sheet: new expiry_date, new renewal_cost, and a small note in the last_renewed column with today’s date and the user who acted. Second, the existing chain’s rows in ew-pings are copied to ew-pings-archive with a chain id, and the live chain is cleared. Third, an action: renewed row is written to ew-audit with the user, timestamp, old expiry, new expiry, and any cost change.
Tomorrow’s tick reads the registry, sees the new expiry date is more than 90 days out, and lands at healthy. The owner won’t hear from the watcher about this item again until the new chain’s first window crosses.
Action 2: ack-and-snooze (the deferral)
Some renewals take time the alert chain doesn’t plan for. The vendor is slow to respond. The legal review is stuck behind a holiday. The CEO is the only person who can sign and they’re traveling. Maria isn’t ready to renew, but she’s also handling it — she just needs the watcher to be quiet for a week.
Snooze opens a small modal asking for the number of days, with a 7-day default and a max of 14. On save, a row is written to ew-ack with (item_id, snooze_until). The next day’s tick reads that row in the “already acknowledged?” check from Part 3 and treats the item as healthy until the snooze ends. When the snooze ends, the watcher re-evaluates the chain from where it was — if the item is now in escalation territory, the next ping is an escalation.
Snooze is bounded. The rules doc has a configurable max_snoozes_per_chain setting (default three). After that many snoozes on the same expiry, further snooze attempts are rejected with a “You’ve hit the snooze cap on this item; please renew or escalate” reply, and the next tick pings normally regardless. This is a soft constraint that exists because the most dangerous failure mode is repeatedly snoozing an item to nowhere.
Action 3: ack-only (the “I’ve got it”)
Sometimes the owner doesn’t want to renew right now and doesn’t want to be reminded again either. Maybe the policy is genuinely not getting renewed (changing vendors). Maybe the item is being deprecated. Maybe the owner is going to handle it manually and doesn’t need the system in the loop.
Ack only writes a row to ew-ack with (item_id, ack_until: expiry_date) — effectively, “don’t ping me about this item again until its expiry passes.” The expiry itself isn’t changed. The chain is silenced for the rest of this cycle. If the item ends up actually getting renewed via Lane 1 (somebody just edits the registry sheet directly), the new expiry resets the chain naturally on the next tick.
If the expiry passes without a renewal, the watcher does one more thing: it writes the item to a separate lapsed sheet in the same Drive folder, with the date it lapsed and the last-known owner. The lapsed sheet is what the monthly summary in Part 6 reports on. A lapsed item that was ack-only’d gets a small note — “ack-only by Maria on 2026-04-15” — so the audit trail isn’t a mystery later.
Every action is logged, every action is reversible
The ew-audit table records every renew, snooze, and ack-only with the user who took the action, the timestamp, and a snapshot of the row before and after. If a wrong renewal date gets entered (off by a year, off by a day), a rep can run an “undo last action” through a small admin command that reads the previous-state snapshot and restores the row. The undo is itself an audit row, so the trail of edits stays clean.
This kind of reversibility matters most for the renewals you’ll only think about once a year. The next time the cyber-insurance comes up, it’ll be Maria again or it’ll be the person who took her job after she got promoted. Either way, the audit trail is the only memory the next person has.
Next post: the cost breakdown. The whole pipeline above runs in coffee-money territory at SMB volume; Part 6 explains exactly where the dollars go and why it’s less than the lead intake bot’s bill.
All posts