What's new in Novu 0.19?
Tags: novu, notification, javascript, inapp
Published: 2023-09-14 10:25:31

**TL;DR:** All you need to know about the latest Novu 0.19.0 release. Multi-tenancy management, bulk subscriber creation, override layouts and more!

## 0.19 Release Updates

We're eager to showcase the latest features in our most recent release. Let's dive in and discover what's in store for you!

![giphy (2) (1)](https://github.com/novuhq/novu/assets/2946769/38f8c51d-4cf0-4789-93eb-e29d87df3e06)


## Multi-tenancy Management

We are stoked to let you know that you can now manage tenants from the [UI](https://web.novu.co/tenants) (Novu’s dashboard) and the [API]([https://api.novu.co/api#/Tenants](https://api.novu.co/api#/Tenants)).

![tenants-management (1)](https://github.com/novuhq/novu/assets/2946769/85bd75ef-0b24-492b-8186-2365197302ff)

Self-hosted users need to add and turn on the `IS_MULTI_TENANCY_ENABLED` env flag to be able to manage tenants in their Novu installation.

## Tenants Usage in Workflows as Variables

With tenants feature now generally available, there are different ways you’ll be able to use it in your app depending on your use case.

One of those ways is using it as variables in your workflows and triggers. When triggering a notification using the events trigger endpoint, you can pass in a tenant property as a parameter like so:

```jsx
import { Novu } from '@novu/node';

const novu = new Novu(process.env.NOVU_API_KEY);

await novu.trigger('<WORKFLOW_TRIGGER_ID>',
  {
    to: {
      subscriberId: '<UNIQUE_SUBSCRIBER_IDENTIFIER>',
      email: 'john@doemail.com',
      firstName: 'John',
      lastName: 'Doe',
    },
    payload: {
      name: "Hello World",
      organization: {
        logo: 'https://happycorp.com/logo.png',
      },
    },
	 actor: "actorId"
   tenant: "tenantIdentifier"
  }
);
```

*passing in tenant property when triggering a notification*

The tenant can also be accessed in a workflow template like so:

```jsx
{{ tenant.data.logo }}
```

*accessing tenant properties in a workflow*

## Bulk Subscriber Creation

This release also ships the wildly requested “bulk subscriber creation.” You’ll be able to create subscribers in bulk (up to 500 at once) using an [API endpoint](https://docs.novu.co/api-reference/subscribers/bulk-create-subscribers).

**Note:** The bulk API is limited to 500 subscribers per request.

```jsx
await novu.subscribers.bulkCreate([
      {
        subscriberId: 'test-subscriber-1',
        email: 'test-user@sd.com',
        firstName: 'subscriber-1',
        lastName: 'test-1',
      },
      {
        subscriberId: 'test-subscriber-2',
        email: 'test-user-2@sd.com',
        firstName: 'subscriber-2',
        lastName: 'test-2',
      },
      {
        subscriberId: 'test-subscriber-3',
      },
    ]);
```

## Addition of Tags in Workflow Settings

We have added the ability to use tags in the workflow settings screen. 

This change allows use cases where you need to group multiple workflows under the same tag, and then use it to filter subscriber preferences for example.

![taggs-workflow-settings (1)](https://github.com/novuhq/novu/assets/2946769/da0d5cf7-a471-41f4-a41d-c0bbac68b88b)

## Allow Override layout On Trigger

To override your assigned layout during a trigger event use the `layoutIdentifier` property, the layout specified will be used for all emails in the context of that trigger event.

```jsx
import { Novu } from '@novu/node';

const novu = new Novu('<NOVU_API_KEY>');

novu.trigger('workflow-identifier', {
  to: {
    subscriberId: '...',
  },
  payload: {
    attachments: [
      {
        file: fs.readFileSync(__dirname + '/data/test.jpeg'),
        name: 'test.jpeg',
        mime: 'image/jpg',
      },
    ],
  },
  overrides: {
    layoutIdentifier: 'your-layout-identifier',
  },
});

```

## Show Primary Providers on Workflow Nodes

Now you can see the primary provider of a channel in the nodes that show on the workflow editor. This gives you more context and better identification without extra clicks!

![Screenshot 2023-09-11 at 16 11 03](https://github.com/novuhq/novu/assets/2946769/b6b56afd-76aa-40ee-976b-01ca12ddfb42)

## Enhanced Workflow Nodes Misconfiguration Error

Nodes and workflows will now display mis-configured workflows on the dashboard like so:

![Screenshot 2023-09-11 at 16 20 25](https://github.com/novuhq/novu/assets/2946769/b96744f5-2978-4716-8564-82284c89701f)

## All Changes

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

## Supercharged Docs

We revamped and rewrote our [docs](https://docs.novu.co) to be better, faster and easily searchable. 

With the [new docs](https://docs.novu.co), you can hit the ground running with the API endpoints directly from the [API reference](https://docs.novu.co/api-reference/events/trigger-event) pages. 

Please explore and give us your feedback. 

## 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! 🚀