What's new in Novu 0.17.0?
Tags: javascript, notifications, novu, webdev
Published: 2023-08-14 09:09:20

**TL;DR:** All you need to know about the latest Novu 0.17.0 release. Multi-provider Integration support, Multi-tenancy support, cookbook, notification center updates and more!

## 0.17.0 Release Updates

We're excited to unveil the freshest developments in our latest release. Let's plunge right in and uncover what awaits you!

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dba4t90y06jqpjpsngm9.gif)

## Multi-provider Integration Support (BETA) 

Now you can connect multiple providers per channel and make them active. This feature is currently in **beta**.

We also redesigned the **Integrations store** page to make it more intuitive in selecting & enabling channel providers.

![Integration Store](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2iwh1sybtmconhvct4uu.png)

With this feature, you can now do the following:

Specify the provider you want when triggering notifications. Add the `integrationIdentifier` to the `overrides` object for the specific channel.

```js
await novu.trigger("name", {
to: {...},
payload: {...},
overrides: { 
              email: { integrationIdentifier: 'the identifier'} ,
                sms: { integrationIdentifier: 'the identifier'} 
}
```

If you're self-hosting Novu, you'll need to pass the env flag, `IS_MULTI_PROVIDER_CONFIGURATION_ENABLED` to all services.

**Note:** In the nearest future, you will be allowed to select a provider based on a tenant and other execution conditions.

## Multi-tenancy Support (BETA)

We've been hard at work building processes to support multi-tenancy. Now you can create and manage tenants via the REST API. This feature is currently in **beta** so you won't be able to access it now until the next major release. 

In the next version, we will support managing tenants via the UI, and using tenant data inside the workflows and channel providers. 

## Update on Workers

Workers will now wait for health check to pass before accepting jobs to process, and will perform a graceful shutdown on a shutdown signal received by the service manager.

## Delete Provider Credentials API

We have added support to delete a provider credentials via [an API endpoint](https://docs.novu.co/api/delete-subscriber-credentials-by-providerid/). 

[PR here for reference](https://github.com/novuhq/novu/pull/3516)

## Remove All Messages In Notification Center Widget & Headless Service

The Notification Center widget allows users to see all notification messages. Before now, you can only delete messages one after the other.

There are a few notable updates:

- We have added a **useRemoveAllNotification** hook in the React Notification Center widget. You can remove all notifications from a feed or entirely!
- We have also added a `removeAllNotifications` method to the headless service.

## Additional Handlebar helpers

We have added a `unique`, `groupBy` and `sortBy` handlebar helpers.

- unique: To remove duplicates in array iteration

```js
{{#each (unique names "name")}}
--<b>{{this}}</b>--- 
{{/each}}
```

- groupBy: To group array values by property 

```js
{{#each (groupBy names "name")}}
 <h1>{{key}}<h1>
 {{#each items}}
   {{age}}-
 {{/each}}
{{/each}}
```

- sortBy: To sort array values by property

```js 
{{#each (sortBy people 'updated_at')}}{{name}} - {{id}}{{/each}}
```

## Notification Feed Page Size Changes (BREAKING CHANGE)

By default, the notification feed page will return 100 notifications and return a `hasMore` field if more than 100 notifications exist.

## Activity Feed & Subscriber API Changes (BREAKING CHANGE)

The Activity Feed & Subscriber API will no longer return `totalCount`. Due to performance optimizations, they will return a `hasMore` boolean flag in cases where there are more results to fetch.

## listenNotificationReceive in Headless Service.

We have added a new function, `listenNotificationRecieve`, to listen to when a new notification comes in!

It can be used to retrieve a new notification in real-time and trigger UI changes.

```ts
headlessService.listenNotificationReceive({
  listener: (message: IMessage) => {
    console.log(JSON.stringify(message));
  },
});
```

## Sendchamp SMS Provider Integration

Now, you can use the Sendchamp SMS provider on Novu.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ejyjolz6haij78l2smo.png)

## Docs, Cookbook & Guides

We now have [quickstart guides](https://docs.novu.co/overview/quickstart/general-quickstart) for all major languages and technologies. Feel free to check them & get started quickly in your favorite language.

We have added a [Cookbook section](https://docs.novu.co/cookbook/introduction) to our docs to provide recipes on common tasks.

## All Changes

You can find the full changelog on [GitHub](https://github.com/novuhq/novu/compare/v0.16.4...v0.17.1).

## Conclusion

[Sign up on Novu](https://web.novu.co), try it out & let me know what you think about the new changes in the comments section.

If you want to contribute to OSS and make an impact, I believe it is a [great place to start](https://github.com/novuhq/novu) & build out amazing things.

Oh, remember to star the repo as well.🤩 See you in the next release! 🚀