What’s new in Novu 0.13.0?
TL;DR: All you need to know about the latest Novu 0.13.0 release. Better onboarding experience, Digest Workflow Playground, Seen/Read Step Filter, SMS providers integration and more!
0.13.0 Release Updates
New Onboarding Page
We shipped a better onboarding experience to make it easier for users to set up multichannel notification workflows.
Sign up and set up your app notifications system with ease.
We'll keep iterating on our onboarding process to ensure we provide a best-in-class onboarding experience for new users.
Digest Workflow Playground
We built a new digest playground that allows anyone to test, and play around with the digest feature.
The digest engine collects multiple trigger events, aggregates them into a single message and delivers it to the subscriber.
Digest Playground
New Node Seen/Read Step Filter
We've added a new seen/read filter. This filter gives the flexibility of executing successive notifications based on the status of previous notifications. It currently works for in-app and email notifications.
Typical Use Case:
You have a set of customers that you need to send a 2-step email to them. However, they should only get the second email if they have read/seen the first email.
With the new seen/read filter, you can do the following in a notification workflow:
- Set the first email step.
- Set a delay.
- Set the second email step.
- Create a filter on the second email step that indicates if the previous step needs to be seen/read before it should be executed.
https://res.cloudinary.com/unicodeveloper/video/upload/v1679934867/Templates_-_Filter_dd8jjf.mp4
Setting up Seen/Read Filter
Note: For this to work with emails, the webhook url needs to be set up for the active email provider you're using on Novu. It's very essential for the filter to work. No extra set up is needed for in-app notifications.
PR: #2922
Create Topics On The Fly when adding Subscribers
Till now, you could not add subscribers to a non-existent topic. You will be met with an error!
We have now reduced friction for users by allowing them to create topics and add subscribers on the fly in one step. The system checks if the topic does not exist, and proceeds to create the topic implicitly.
Kannel SMS Provider Integration
Now, you can use the Kannel SMS Provider on Novu.
PR: #2700
46elks SMS Provider Integration
Now, you can use the 46elks SMS provider on Novu.
PR: #2973
Mattermost SMS Provider Integration
Mattermost is an open-source Slack alternative. One integrated platform for all of your team messaging, collaborative workflows and project management needs. Now, you can use the Mattermost provider on Novu.
PR: #2935
Changes & Bug Fixes:
- Add
fcmOptions
to Firebase provider. #2979 - Removing a subscriber from a topic removed them from all subscribed topics. Now, it works correctly. The subscriber is only removed from the topic they were added to. #2903
- Fix for SendinBlue cc and bcc properties #2897
- Enable custom
transactionId
in trigger. This allows thetransactionId
to be passed to event request rather than generating random id on every request. #3014
All Changes
- Nv 1743 refactor location of hooks by @davidsoderberg in #2873
- feat(api): set a feature flag to enable distributed lock logging by @p-fernandez in #2877
- refactor: imports of hooks by @davidsoderberg in #2880
- Nv 1754 move page specific components to page by @davidsoderberg in #2882
- feat(api): homogenize trigger event use cases and fix tech debt by @p-fernandez in #2885
- fix(api): update subscriber template preferences with wrong template id by @LetItRock in #2881
- feat(api): move the providers decryption for the template out of loop by @p-fernandez in #2887
- Use Buildx when building images from forked repositories by @kylegalbraith in #2894
- fix(deps): update docusaurus monorepo to v2.3.1 by @renovate in #2857
- feat(infra): move script of provider template to v.0.12.0 by @p-fernandez in #2898
- fix(deps): update mantine monorepo to v4.2.12 by @renovate in #2896
- fix(deps): update dependency socket.io-client to v4.6.1 by @renovate in #2853
- fix(deps): update nest monorepo by @renovate in #2899
- [NV-1759] fix(api): fixed remove subscriber from topic functionality by @LetItRock in #2903
- chore(deps): update actions/checkout action to v3 by @renovate in #2901
- Update README.md by @nevo-david in #2905
- fix: optional cc and bcc in email creation by @KristofDeTroch in #2897
- fix(deps): update dependency newrelic to v9.10.2 by @renovate in #2906
- fix(api): test email send with the novu provider issue fix by @LetItRock in #2876
- feat: show template name instead of Workflow Editor by @ainouzgali in #2910
- feat: extract filter digest and delay variables to trigger by @ainouzgali in #2908
- fix: content service not iterating over push title by @ainouzgali in #2909
- feat(api): create store job use case by @p-fernandez in #2911
- fix(web): fixed onboarding setup responsive issues by @LetItRock in #2895
- Nv 1460 layouts performance analytics by @BiswaViraj in #2913
- chore(deps): update angular-cli monorepo to ~15.2.0 by @renovate in #2907
- chore(deps): update dependency ng-packagr to ~15.2.0 by @renovate in #2917
- chore(deps): update dependency tsconfig-paths to v3.14.2 by @renovate in #2918
- chore(deps): update pnpm to v7.28.0 by @renovate in #2923
- feat(api): create non existing topic on the fly when adding subscribers by @p-fernandez in #2915
- fix: force position top to avoid page crash by @BiswaViraj in #2925
- chore(dal): fixed the mongo schema types and repositories to return the correct mapped types by @LetItRock in #2890
- feat: add addition params for onboarding setup by @djabarovgeorge in #2886
- chore(api): move e2e tests to proper location and cleanup by @p-fernandez in #2928
- fix: message for triggering notification by @Ananya2001-an in #2927
- chore(deps): update supercharge/mongodb-github-action action to v1.9.0 by @renovate in #2924
- fix: EmptyState prop on PopoverNoificationCenter bad typing by @nikitagrossman in #2866
- feat(dal,api): strict null check and type fixes by @LetItRock in #2893
- Format code with prettier by @deepsource-autofix in #2932
- fix: downgrade axios to v1.2.0 by @BiswaViraj in #2934
- feat: github profile persistency by @scopsy in #2945
- feat: add domain entity by @scopsy in #2946
- fix(deps): update angular monorepo to ~15.2.0 by @renovate in #2931
- fix(deps): update dependency styled-components to v5.3.8 by @renovate in #2948
- fix(deps): update dependency @aws-sdk/client-ses to v3.282.0 by @renovate in #2950
- fix(deps): update sentry-javascript monorepo to v7.38.0 by @renovate in #2900
- fix(deps): update dependency mongoose to v6.10.0 by @renovate in #2952
- Feat/mattermost provider by @ryshoooo in #2935
- chore(web): refactor workflow editor state, move it to the shared context by @LetItRock in #2936
- feat(api): remove dal dependencies from workflow queue service by @p-fernandez in #2919
- fix: jobs undefined by @BiswaViraj in #2951
- Nv 1787 notifications page placeholder by @LetItRock in #2954
- Feat/Fix: Reduce Size of Web Docker Container by @JoeyEamigh in #2944
- [NV-1804] Fix: Allow Distributed Cache to use Redis Password by @JoeyEamigh in #2942
- chore(deps): update actions/setup-node action to v3 by @renovate in #2953
- chore(deps): update actions/upload-artifact action to v3 by @renovate in #2955
- fix(deps): update dependency mongoose to v6.10.1 by @renovate in #2959
- NV-2043 - add a way to unset a subcriber's credentials by @gitstart in #2940
- feat: add provider for kannel sms gateway by @Codepowercode in #2700
- chore(deps): update dependency @craco/craco to v7 by @renovate in #2962
- chore(deps): update commitlint monorepo to v17 (major) by @renovate in #2960
- chore(deps): update dependency @nestjs/cli to v9.2.0 by @renovate in #2963
- feat: add digest flow diagram by @djabarovgeorge in #2949
- chore(deps): update dependency @nrwl/nx-cloud to v15 by @renovate in #2972
- chore(infra): upgrade to support ts 4.9 satisfies by @p-fernandez in #2970
- chore(infra): remove octokit as unused dependency by @p-fernandez in #2976
- chore(deps): update dependency prettier to v2.8.4 by @renovate in #2977
- chore: upgrade vue-tsc to fix build error by @BiswaViraj in #2983
- feat: Add fcmOptions to Firebase provider by @tomcastro in #2979
- fix: switch checked value to be boolean by @BiswaViraj in #2984
- fix: only throw error if response contains any failed data by @BiswaViraj in #2985
- [NV-1803] Fix: Update
env.sh
to Properly Read Runtime Vars by @JoeyEamigh in #2943 - fix(infra): when upgrading to pnpm 7.28.0 we didn't update the images by @p-fernandez in #2987
- fix(providers): add back to template npm-run-all by @p-fernandez in #2988
- fix(docker): correct param order to correct build by @Cliftonz in #2993
- feat: add 46elks provider by @asparuhkostov in #2973
- feat(api): performance service by @p-fernandez in #2878
- FCM support add extra options by @tienthanh2509 in #2982
- fix: disable node, edge, parent trigger deletion using delete key by @BiswaViraj in #2997
- feat(web): digest workflow playground shell by @LetItRock in #2961
- Nv 1828 fix nested form behavior by @ainouzgali in #3004
- Get Started - Side popover guide on the node step by @djabarovgeorge in #2968
- Nv 1834 update webhook url by @BiswaViraj in #3008
- feat(api): clarify the notification steps creation by @p-fernandez in #2995
- feat: set inherit as deault font family for the notification center t… by @BiswaViraj in #2996
- Nv 1471 mark all as read does not mark all by @BiswaViraj in #2855
- Feature/seen read step filter by @davidsoderberg in #2922
- Nv 1783 implement the integrations store modal by @ainouzgali in #3001
- feat(web): digest onboarding workflow - hints provider by @LetItRock in #3002
- fix: add mail server domain to config by @djabarovgeorge in #3020
- feat(docs): add nexmo provider documentation by @peoray in #3023
- NV-1793 - enable custom transactionId in trigger by @gitstart in #3014
- NV-1618 - Add Missing APNS Docs by @unicodeveloper in #3018
- feat(docs): add sparkpost provider documentation by @peoray in #3025
- feat(api): endpoint to check if subscriber belongs to a topic by @p-fernandez in #3021
- feat: add action item by @djabarovgeorge in #3033
- fix(api): reduce activity stats queries and improve performance by @p-fernandez in #3029
- Add Resend to email provider list in README by @SKG2310 in #3034
- feat(web): connect provider popover in the workflow editor by @LetItRock in #3026
- feat(web): configure provider popover integrate with the integrations store modal by @LetItRock in #3027
- feat(web): integrations store modal show the drawer over the integrations list by @LetItRock in #3032
- Add Logging to Api, Mail, Webhook, and Websocket by @Cliftonz in #2755
- feat(web): getting started dots navigation and footer button logic by @LetItRock in #3036
- feat: Better Onboarding Experience by @LetItRock in #2956
- fix(web): fixed eslint max length issues by @LetItRock in #3039
- feat: add analytics events by @djabarovgeorge in #3031
- fix: change default link in get started page by @jainpawan21 in #3045
- Style : onboarding paddings and centering by @ainouzgali in #3044
- feat: add digest time count down by @djabarovgeorge in #3049
- feat: remove onboarding history management by @djabarovgeorge in #3043
- feat: reduce digest onboarding templates by @djabarovgeorge in #3046
- feat(web): digest onboarding workflow analytics by @LetItRock in #3038
- fix: base url store by @djabarovgeorge in #3052
- feat(web): digest demo flow hover on the step hints by @LetItRock in #3053
- fix(api): publishing measures had wrong method names, always the same by @p-fernandez in #3061
- feat(notification-center-vue): use the novu forked floating-vue library by @LetItRock in #3057
- (docs/readme) removed broken jarvis link by @nick-w-nick in #3058
- feat(web): integrations store modal analytics by @LetItRock in #3056
New Contributors
- @kylegalbraith made their first contribution in #2894
- @Ananya2001-an made their first contribution in #2927
- @ryshoooo made their first contribution in #2935
- @gitstart made their first contribution in #2940
- @Codepowercode made their first contribution in #2700
- @tomcastro made their first contribution in #2979
- @asparuhkostov made their first contribution in #2973
- @tienthanh2509 made their first contribution in #2982
- @SKG2310 made their first contribution in #3034
- @nick-w-nick made their first contribution in #3058
Full Changelog: v0.12.0...v0.13.0