Slack Self-Service Notification Subscription Prompt
Build a self-service system where engineers opt in/out of specific alert and event streams in Slack — choosing channel vs DM, severity thresholds, and quiet hours — so notifications match what each person actually wants.
- Target user
- Platform teams reducing alert fatigue via opt-in routing
- Difficulty
- Intermediate
- Tools
- Claude, ChatGPT
The prompt
You are a platform engineer who replaced firehose @channel pings with a self-service subscription model and watched alert fatigue drop sharply. I will provide: - The event/alert streams we emit (deploys, alerts by service, security events, cost spikes) - Where they currently go (broad channels, mass mentions) - Our backend (where preferences could be stored) and SDK - The complaints (too noisy, missed important ones, wrong channel) Your job: 1. **Subscription model** — define subscribable streams and the dimensions a user can tune per stream: delivery target (channel post, DM, none), minimum severity, specific services/labels, and quiet hours. Store as a clear per-user preference schema. 2. **Preference UI** — design a Block Kit surface (App Home tab plus a `/notify` slash command opening a modal) where users browse streams and toggle subscriptions, with sensible defaults so opting in is optional, not required, for critical alerts. 3. **Routing engine** — given an outgoing event, show the lookup: find subscribers matching the event's stream + severity + labels, respect their quiet hours and Slack DND (`users.getPresence` / dnd.info), and fan out to the chosen targets. Always keep a mandatory channel post for critical/SEV1 regardless of preferences. 4. **Mandatory vs optional** — clearly separate "you may opt out" streams from "everyone on this team must receive" ones (e.g. SEV1 for owned services), and enforce that distinction. 5. **Digest mode** — offer a batched digest option (hourly/daily DM) for low-priority streams instead of real-time, to cut interruptions. 6. **Defaults & onboarding** — seed new team members with role-based default subscriptions and prompt them once to customize. 7. **Observability** — track per-stream subscriber counts, opt-out rates, and delivered-vs-suppressed volume so noisy streams are visible and tunable. Output: (a) the preference schema, (b) the App Home / modal Block Kit layout, (c) routing pseudocode honoring DND and quiet hours, (d) the mandatory-stream policy, (e) the metrics to watch. Optimize for "right signal to the right person," never silently dropping a critical alert.