Help Center / Opt-in scheduled push
Opt-in scheduled push CLOUD · OPT-IN
By default the reminder cascade is a local preview that needs no network. If you want those reminders delivered to a channel — email, Slack, Teams, or a webhook — you can opt in to the cloud notification service. This page explains how, and the strict line that keeps it off the local incident path.
The local cascade is the default
The reminder cascade banner inside an incident is computed entirely locally — it shows what's overdue or within 48 / 24 / 4 hours, with zero network calls. You can run Klaxon forever and never touch the cloud. Scheduled push is purely additive: it takes that same locally-computed cascade and delivers it to a channel so people get pinged even when the browser is closed.
Enabling the cloud tier
The cloud seam is an optional module. When it is loaded, the app nav shows an "Enable cloud war-room (opt-in)" control, and a Scheduled push (opt-in) panel appears inside the incident's Obligations section. To enable:
- Click Enable cloud war-room (opt-in). This signs you in through the DosanjhLabs identity (Keystone / Clerk). Your tenant is derived server-side from the verified session — the app never sends a tenant id.
- Once signed in, the scheduled-push controls become usable.
If sign-in fails or the cloud is unreachable, the control reports "Cloud unavailable (staying local)" and the war-room continues to work fully offline.
Wiring a channel (send now / schedule)
Inside an open incident, in the Scheduled push (opt-in) panel:
- Pick a channel: Email, Slack, Teams, or Webhook.
- Enter the target — an email address, or the Slack / Teams / webhook URL.
- Choose how to deliver:
- Send now — delivers the current cascade once, one notification per active reminder. A timeline event records the send. A dedupe key prevents a manual re-send from double-notifying within the provider's window.
- Schedule hourly — registers a recurring runner job that re-checks for due reminders every hour and delivers them on your channel. The panel shows the job id once scheduled; a timeline event records it.
Nothing fires unless you enter a target and click — entering a target alone sends nothing.
What's in a reminder payload
The delivered reminders are built from the same local cascade engine the offline preview uses, so what gets sent is exactly what the war-room already shows. Each reminder carries only:
| Included (secret-free) | Never included |
|---|---|
| Incident reference (id) and title; the obligation label; the recipient role (e.g. "California Attorney General"); the deadline; the cascade stage; whether it's a proposed rule; the countdown. | Affected-individual data; timeline event bodies; evidence blobs; letter contents. |
The payloads are secret-free by construction — see Security & privacy.
The scheduled runner
"Schedule hourly" registers a job (an hourly cron) with the shared scheduling service. The runner re-evaluates which reminders are due for that incident against the deadline set you gave it, and delivers them on the chosen channel — so reminders keep firing even when your browser is closed. You can cancel a scheduled job through the cloud seam.
What never runs on the local path
The local incident workflow — declaring, setting facts, computing obligations, the local cascade preview, sealing the timeline, generating letters, exports — makes no network calls. The scheduled-push handlers only run on an explicit click, only when you've opted in, and only reach the network through the opt-in cloud seam. Remove or block the cloud module and the entire local experience is unchanged.
When push is unavailable
If you're offline, not signed in, or the cloud module didn't load, scheduled push simply isn't available — and that's by design. The status line reports "delivery unavailable" or "scheduling unavailable" and the local cascade preview continues to show you everything that's due. See the FAQ on push being unavailable offline.