What's Changed
- 933 embed read only ai analyst reports in customer portal by @Linko91 in #998
- 1012 global customer filter live sync preference and multi customer support by @Linko91 in #1013
- fix(notifications): gate AI report delivery on the customer opt-in switch by @taylorwalton in #1014
- feat(incidents): assign case tasks to a user by @taylorwalton in #1016
- refactor(notifications): channel provider registry + generic event envelope by @taylorwalton in #1021
- feat(notifications): generalize the dispatch log beyond alerts by @taylorwalton in #1022
- feat(notifications): move channel settings into a JSON config column by @taylorwalton in #1023
- refactor(notifications): drop the superseded per-channel columns by @taylorwalton in #1025
- feat(notifications): add Resend as an email delivery channel by @taylorwalton in #1026
- feat(notifications): alert-created and assignment triggers by @taylorwalton in #1027
- feat(notifications): make triggers and internal routes reachable in the UI by @taylorwalton in #1030
- feat(notifications): generic channel config renderer and send-test by @taylorwalton in #1031
- feat(notifications): add Microsoft Teams as a delivery channel by @taylorwalton in #1032
- fix(connectors): make the Resend connector verifiable by @taylorwalton in #1034
- docs: notification routing, Resend and Teams by @taylorwalton in #1035
New .env entry
# RESEND : transactional email for notification routes (https://resend.com)
# Deployment-wide, like SHUFFLER_API_KEY — the per-customer differentiator is the
# to/from addresses on each notification route. Free tier is 1,000 emails/month
# across ALL customers, so gate email routes on severity and watch the quota
# counter in the UI.
RESEND_URL=https://api.resend.com
RESEND_API_KEY=REPLACE_ME
# Must be on a domain verified in Resend, or sends are rejected.
RESEND_FROM_ADDRESS=alerts@example.com
Full Changelog: v0.1.83...v0.1.84