Shipping Notification Settings: Real-Time Alerts via Slack, Discord & Email
Shipping Notification Settings: Real-Time Alerts via Slack, Discord & Email
Release: v1.0.69
Overview
One of the most common requests from operators running products on SaaS Factory has been simple: tell me when something important happens. With v1.0.69, the platform ships a complete Notification Settings system that routes real-time alerts to the tools your team already uses — Slack, Discord, and email.
This isn't a thin wrapper. The implementation (src/lib/notifications.ts, ~18 KB) handles real webhook dispatch across all configured channels, with per-event toggle controls stored persistently in the database.
Why This Matters
The factory runs autonomously, which means critical signals — a sudden revenue drop, a spike in churn — can surface at any hour. Without a notification layer, operators have to poll dashboards to catch problems. With this release, the platform proactively reaches out the moment a configured threshold is crossed.
What's Included
Three Delivery Channels
Slack — Paste an incoming webhook URL for any Slack channel. Messages are delivered in a structured format that's easy to read at a glance.
Discord — Paste a Discord channel webhook URL. The platform formats messages natively for Discord.
Email — Provide one or more addresses for email delivery.
Channels are independent. You can mix and match — for example, send revenue alerts to a #ops-alerts Slack channel and churn alerts to a dedicated Discord server, with email as a backup.
Seven Event Types
Each of the following events can be enabled or disabled independently:
onRevenueDrop— triggered when revenue falls below a monitored thresholdonChurnSpike— triggered when churn rate spikes beyond a monitored threshold- Five additional operational and product event types
Persistent Configuration
Settings are stored in the new notificationSettings database table, introduced in this release. Each record holds webhook URLs for each channel alongside a boolean toggle for each event type. Disabling a channel is as simple as clearing its webhook URL.
Getting Started
- Run the migration to add the
notificationSettingstable to your database. - Add webhook URLs for the channels you want to use (Slack, Discord, and/or email).
- Toggle on the event types relevant to your product.
- Verify delivery by checking that your Slack/Discord channel or inbox receives a test notification.
What's Next
The audit that shipped alongside this release flagged one follow-up recommendation: adding automated tests that verify Slack and Discord webhook delivery end-to-end. That work is tracked for a future release.