Multi-Tenancy

Novu now supports full multi-tenancy using Contexts, making it possible to isolate notifications, preferences, and credentials across tenants, workspaces, or applications within a single project.

Contributors
  • Adam Chmara

    Adam Chmara

Details

You can now scope any notification to a specific tenant or workspace by attaching a Context when triggering workflows or configuring integrations.

A Context acts as a persistent identity key for a logical boundary in your system:

{
  "type": "tenant",
  "id": "org-acme",
  "data": { "name": "Acme Corp", "region": "us-east-1" }
}

All notifications, and credentials associated with that workflow run will inherit this Context automatically.

How to use it

When triggering workflows:

await novu.trigger('payment-success', {
  to: { subscriberId: 'user-123' },
  payload: { amount: '$250' },
  context: { type: 'tenant', id: 'org-acme', data: { name: 'Acme Corp.', logo: 'http://logo.com' } },
});
  • All generated messages are tagged with the tenant:org-acme key.
  • You can later query or filter by this key using the API.
GET /v2/notifications?contextKey=tenant:org-acme

Within templates or layouts, context.tenant.data can be used for branding or logic:

{{context.tenant.data.name}} has a new billing update.

Supported use cases

  • Per-tenant isolation for notifications
  • Tenant-level credentials for chat integrations (e.g., Teams, Slack)
  • Dynamic content and branding driven by context data
  • Workspace or app-level scoping within shared environments

Real-world examples

  • A SaaS platform with multiple customer organizations sending workspace-specific updates.
  • An enterprise product using chat integrations where each workspace manages its own credentials.
  • An application separating preferences across multiple apps or environments under one Novu project.

Multi-tenancy in Novu introduces a consistent and reliable way to manage notification boundaries across tenants, workspaces, or applications, without duplicating workflows or environments.


Contexts make it simple to design systems where every notification and credential is tied to the right scope, predictable, queryable, and isolated by design.

Learn more