v0.15.0 - Scheduled Digest and Slack OAuth for webhook urls
What’s new in Novu 0.15.0?
TL;DR: All you need to know about the latest Novu 0.15.0 release. Scheduled Digest, In-App Onboarding playground, Slack Webhook URL managed flow and more!
0.15.0 Release Updates
We're excited to unveil fresh updates about our most recent release. So let's dive right in!
Scheduled Digest
Now you can schedule digest at specific intervals according to your preference. This feature eradicates the need to create cron jobs to suit your use case.
From the Novu dashboard, you can specify the times when a digest will be sent - Every two days, Daily, Weekly, etc. The Digest engine aggregates events before a set time and fires them when that time is reached.
Typical Use Case
A digest is scheduled for Tuesday and Thursday at 7:07 AM weekly. A notification event is triggered a couple of times to a subscriber every day.
The digest engine aggregates all events that occur before Tuesday. On Tuesday at 7:07am, it fires an event comprising all the aggregated events. Similarly, all events occurring between Tuesday and Thursday are aggregated, and an event is fired on Thursday at 7:07am. This cycle continues.
Note: For now, the time is UTC-based. We plan to make it user-timezone aware soon!
In-App Onboarding Playground
We have integrated a new playground in our onboarding flow to test and explore In-App notifications. So take it for a spin!
Slack Webhook URL Managed Flow
Until now, developers had to manually spin up and deploy an https server with an endpoint to listen for redirect requests. They had to follow numerous steps to get Slack webhook Url generation right and working seamlessly for subscribers.
Now, Novu manages the OAuth flow for you. No more spinning of servers! All you need to do is:
- Add
https://api.novu.co/v1/subscribers/
to the Redirect URL in OAuth & Permissions on your Slack Developer Dashboard. - Add the
Add to Slack
button or the shareable URL to your application to request access permission (scope: incoming-webhook). More information here
Africa's Talking SMS Provider Integration
Now, you can use the Africa's talking SMS provider on Novu.
OneSignal Push Provider Integration
Now, you can use the OneSignal Push provider on Novu.
Push Webhook
Now you can add a webhook URL to trigger push notifications on Novu.
There is work ongoing for Email Webhook Provider. You can follow the commits here
All Changes
- fix: suscriber response dto by @jainpawan21 in #3276
- fix: office 365 email provider is failing by @ainouzgali in #3295
- feat: add api response custom decorator by @jainpawan21 in #3289
- fix: add missing invalidation by @djabarovgeorge in #3294
- fix: remove allOf in custom ApiResponse decorator by @jainpawan21 in #3296
- Update discord.md by @bigpreshy in #3299
- chore(docs): Update the email and sms provider docs by @peoray in #3292
- fix: fixed font size of created at by @ayush4345 in #3278
- chore(deps): remove @types/handlebars by @shanehandley-lived in #3301
- fix(chat): Try all chat channels by @ryshoooo in #3136
- Migration script for expireAt by @ainouzgali in #3284
- feat: add instrument, combine subscriber+job processing by @ainouzgali in #3308
- feat: add redirect url to slack by @djabarovgeorge in #3304
- fix: remove global g tag from content replace for preheader by @scopsy in #3252
- fix: merge template status to parent change by @djabarovgeorge in #3307
- Update digest.md by @david-morris in #3291
- Add message count limit by @djabarovgeorge in #3272
- fix(worker): enabling autopipelining in the cache service of worker by @p-fernandez in #3318
- v0.15.x by @scopsy in #3319
- fix: iframe nc width issue by @BiswaViraj in #3320
- Feat[NV-1868]: Initial Queue Metric Monitoring by @Cliftonz in #3281
- removed typo by @fadkeabhi in #3315
- Revert "removed typo" by @p-fernandez in #3322
- Remove readonly on allowed domains by @djabarovgeorge in #3317
- Bulk write for execution details by @ainouzgali in #3321
- Create Novu redirect url for Slack by @djabarovgeorge in #3305
- Removed typo by @fadkeabhi in #3324
- fix(cypress): leftover only in tests by @p-fernandez in #3328
- Add notification group endpoints by @peoray in #3274
- fix: add sender name option in mailjet by @jainpawan21 in #3303
- chore(deps): update dependency typedoc to ^0.24.0 by @renovate in #3271
- feat: alternative to job insertOne by @ainouzgali in #3329
- feat: Add OneSignal as push provider by @TNAJanssen in #3155
- feat: Add Push Webhook provider by @TNAJanssen in #3266
- Nv 2214 add marknotificationsasseen prop in by @BiswaViraj in #3335
- feat: add is not empty tests by @djabarovgeorge in #3333
- feat(provider): Add africastalking provider by @peoray in #3249
- fix: add node crash by @BiswaViraj in #3334
- feat: implement git submodules by @LetItRock in #3297
- feat: remove notification update for channels by @ainouzgali in #3347
- Remove unnecessary find notification by @ainouzgali in #3348
- feat: remove query to message templates by @ainouzgali in #3351
- feat: validate notification group by @djabarovgeorge in #3323
- No query for subscriber preference, cache subscriber by @ainouzgali in #3352
- Nv 2197 create UI for design for timed digest by @davidsoderberg in #3331
- Nv 2203 convert digesttypeenum backoff to be a by @davidsoderberg in #3332
- feat: add data model for scheduled digest by @davidsoderberg in #3340
- Update README.md by @scopsy in #3364
- in-app messages change expireAt to 12 months by @ainouzgali in #3363
- test: add web component tests for schedule digest by @davidsoderberg in #3354
- fix: sent header by @davidsoderberg in #3361
- feat: add caching for subscriber in trigger by @ainouzgali in #3366
- chore(deps): update dependency @nestjs/cli to v9.4.2 by @renovate in #3330
- feat(integrations): Add baseUrl to mailgun-handler by @raheelriax in #3344
- Nv 2099 new in app quick start sandbox screen by @BiswaViraj in #3273
- fix(alb-timeout): increase server timeout above the alb timeout NV-2265 by @Cliftonz in #3372
- fix: remove unwanted files by @BiswaViraj in #3374
- fix: Update node subscriber feed params typings by @shanehandley-lived in #3376
- fix(provider): Remove sender name field and make boolean type a switch in nodemailer by @peoray in #3365
- [WIP] feat(api,web,worker): update digest metadata types by @LetItRock in #3346
- feat(api,worker): timed digest logic by @LetItRock in #3359
- feat: add tooltips for schedule digest by @davidsoderberg in #3369
- feat(infra): improve cache service logging by @p-fernandez in #3378
- Nv 2239 validation minmax and default values for by @davidsoderberg in #3380
- feat: add scheduled digest data to analytics event by @davidsoderberg in #3393
- feat: add light themed icons for digest by @davidsoderberg in #3388
- fix: env switch behaviour by @scopsy in #3398
- fix: adjust pipelines by using submodules by @LetItRock in #3382
- Add missing worker resources. by @SergeiMeza in #3397
- feat(infra): graceful shutdown for bull mq by @p-fernandez in #3326
- fix(web): improved timed digest form behaviour by @LetItRock in #3405
- feat: update slack docs by @djabarovgeorge in #3357
- fix: serialization and primitives validation (no. 1) by @michaldziuba03 in #3312
- Nv 2243/add the sharable url in the integration by @djabarovgeorge in #3356
- fix(deepsource): analysis recommendations improvements by @p-fernandez in #3401
- feat: find one integration and only select provider id, remove decrypt by @ainouzgali in #3408
- Add optional HMAC slack OAuth flow by @djabarovgeorge in #3403
- feat: add novu sharable url usecase by @djabarovgeorge in #3371
- Update Slack docs by @djabarovgeorge in #3409
- NV-1557 🚀 Feature: Allow pagination handling in refetch method by @gitstart in #3163
- fix: add api param for delete message by @jainpawan21 in #3410
- feat: remove backward compatibility for reset token by @michaldziuba03 in #3406
- Update chat api interface by @djabarovgeorge in #3419
- fix: keep unapplied changes by @djabarovgeorge in #3325
- fix: update environment docs by @jainpawan21 in #3415
- fix(actions): Add worker and WS to dev deployment by @TNAJanssen in #3418
- fix(novu/node): Get all Notification templates without any parameter by @codingmickey in #3413
- fix: toggle in field value for critical by @jainpawan21 in #3411
- chore(application-generic): moved the timed digest delay calculations by @LetItRock in #3417
- Feature: Timed digest by @LetItRock in #3341
- fix: remove enterprise flag for timed digest by @davidsoderberg in #3422
- fix: bulk insert execution details should be ordered by @ainouzgali in #3407
- fix: sort by created at for activity feed by @ainouzgali in #3429
New Contributors
- @ayush4345 made their first contribution in #3278
- @shanehandley-lived made their first contribution in #3301
- @david-morris made their first contribution in #3291
- @raheelriax made their first contribution in #3344
- @SergeiMeza made their first contribution in #3397
Full Changelog: v0.14.0...v0.15.0