v27.0
Notifuse/notifusev27.0Feb 8, 2026by pierre-b
AI Summary
Major release introducing Broadcast Data Feeds for dynamic content injection from external APIs, with global and per-recipient feed options. Includes critical migration fixes and SMTP authentication improvements.
Key Highlights
- Broadcast Data Feeds - external data integration for broadcasts
- Global Feed: fetch data once before broadcast, available via {{ global_feed.* }}
- Per-Recipient Feed: personalized data per recipient via {{ recipient_feed.* }}
- Custom HTTP headers support for API authentication
- SSRF protection with URL validation (blocks localhost/private IPs)
- Fixed startup crash when upgrading from v26
- Fixed SMTP M365 OAuth2 to use sender email instead of fixed auth email
- File Manager: sanitize filenames by replacing spaces with dashes
- Broadcasts: fixed custom endpoint URL propagation to tracking URLs
- Contacts bulk import now processes in batches of 500
New Features
- Broadcast Data Feeds with global and per-recipient options
Full Release Notes
# v27.0
## New Features
- **Broadcast Data Feeds**: Added external data feed integration for broadcasts, allowing dynamic content injection from external APIs
- **Global Feed**: Fetch data once before broadcast starts, available to all recipients via `{{ global_feed.* }}` template variable
- **Per-Recipient Feed**: Fetch personalized data for each recipient via `{{ recipient_feed.* }}` template variable
- Custom HTTP headers support for API authentication
- Automatic retry with circuit breaker protection
- SSRF protection with URL validation (blocks localhost and private IPs)
- Real-time feed testing from the broadcast editor
## Database Migration
- Added `data_feed` JSONB column to `broadcasts` table (workspace migration)
- Added `recurring_interval` and `integration_id` columns to `tasks` table (system migration)
## Fixes
- **Upgrade from v26**: Fixed startup crash when upgrading from v26 due to index referencing `integration_id` column before the migration could add it
- **SMTP M365 OAuth2**: Fixed XOAUTH2 authentication to use sender email instead of fixed auth email, resolving SendAs permission errors and incorrect Sent folder placement (#250)
- **File Manager**: Sanitize uploaded filenames by replacing spaces with dashes and lowercasing extensions (#252)
- **Broadcasts**: Fixed custom endpoint URL not propagating to click tracking and open tracking URLs in sent emails (#254)
- **Email Builder**: Fixed text color/background changes not applying when re-selecting already-styled text in the rich text editor
- **Contacts**: Bulk import now processes contacts in batches of 500, fixing crashes on large imports and improving performance