Use Clerks webhooks events to trigger authentication related notifications workflows.
Use Stripe webhooks events to trigger payment related notifications workflows.
Use Segment's Destination Functions to forward user events and traits to trigger notification workflows.
Use Inngest's event-driven workflows to trigger notifications at specific steps in your automation pipeline.
Leverage Trigger.dev's developer-friendly workflow engine to send notifications based on scheduled or event-driven triggers.
Thanks for trying Svelte Email. We're thrilled to have you on board.
Thanks for trying Vue Email. We're thrilled to have you on board.
The Novu framework allows you to build and manage advanced notification workflows with code, and expose no-code controls for non-technical users to modify.
The Novu framework allows you to build and manage advanced notification workflows with code, and expose no-code controls for non-technical users to modify.
### Event
Something meaningful happens in your application, such as a user signing up, a password reset being requested, or a comment being posted. You emit this event to Novu using the [Event Trigger API](/api-reference/events/trigger-event).
Each event contains:
* A name that maps to a specific workflow (user\_signed\_up)
* A payload with dynamic data
* One or more subscribers
* Optional overrides or metadata
This is how your application tells Novu, “It’s time to send something.”
### Workflow
Novu matches the incoming event to a predefined workflow. This workflow is your logic for determining:
* What channels to use (email, in-app, SMS, etc.)
* What message templates to render
* When and how messages should be sent
The workflow is where message personalization, conditional logic, and multi-channel orchestration happens.
{notification.body}
{notification.body}
{notification.body}
## Digest configuration
### Digest key
If specified, the digest engine will group the events based on the `digestKey` and `subscriberId`, otherwise the digest engine will group the events based only on the subscriberId.
The digest key might come useful when you want a particular subscriber to get events grouped on a custom field. For example when an actor likes the user's post, you might want to digest based on the `post_id` key.
### Time interval
The time interval determines how long the digest engine will wait before sending the message once created. You can specify the amount and the unit that best suits your needs.
In the image below, `5` is the interval amount, and `mins` is the interval unit. Interval units can be `sec(s)`, `min(s)`, `hour(s)`, or `day(s)`.
## Digest strategy types
The strategy which Novu should use to handle the digest step. More details on available strategies below.
Novu allows you to define different digest strategies depending on the actual use-case you are trying to achieve. At this point we allow you to select from 2 strategies:
* Regular
* Look-back
* Scheduled
Let's explore them in detail:
### Regular strategy
In regular strategy, a digest will always be created for the specified window time. Which means that from the first event trigger, if no active digest exists for this subscriber, one will be created and the user will receive the message only when the digest window time is reached.
### Look-back strategy
In the Look-Back strategy, before creating a digest, Novu will check if a message was sent to the user in the Look-back period. If a message was sent, a digest will be created. Otherwise, a message will be sent directly to the user and the digest creation will be skipped.
Look-back digest has two intervals, `digest interval` and `look-back window`. First, it checks if any event is triggered within the past look-back window, only then a digest is created for the digest interval. If not, the event is considered non-digest and workflow execution continues to the next step.
#### Example
Let's set the digest interval as 20 minutes and the look-back interval as 15 minutes.
If we trigger the first event. Since it is the first event and there was no event triggered in the past 15 minutes (look-back interval), this event will send a message immediately (without digest).
Now, if we trigger a second event within 15 minutes range, then a new digest will be created with this second event. From now on, for the next 20 minutes (digest interval), all triggers will be digested, and after 20 minutes, the workflow will carry forward to the next step with digested events as a payload.
### Scheduled digest
In this case, the step will execute only if `payload.foo` is equal to `payload.bar` at runtime.
You can also use subscriber variables in the same way:
```json
{
"operator": "AND",
"conditions": [
{
"field": "subscriber.firstName",
"operator": "=",
"value": "{{payload.firstName}}"
}
]
}
```
This enables flexible condition logic based on real-time data comparisons.
## Building condition groups
Novu allows you to group multiple conditions using AND and OR operators to create complex logic. For example:
* **AND Group**: All conditions in the group must be true for the step to execute.
* **OR Group**: At least one condition in the group must be true.
Condition groups can also be nested for advanced use cases.
Novu's Step Condition feature empowers you to build intelligent and dynamic workflows tailored to your specific use cases. By leveraging subscriber data, payload information, and step outcomes, you can ensure that each notification reaches the right audience at the right time with the appropriate content.
file: ./content/docs/platform/workflow/tags.mdx
# Tags
Learn how to organize and manage notification tags using Novu's visual workflow editor for better user experience and notification management.
**Tags** act like labels or categories that help you organize and manage notifications in your app. By grouping notifications under specific tags, you can better control how they're filtered, displayed, or managed by both your app and your users.
For example, you might want to group all security-related notifications together, separate from updates about account activity or promotional offers.
## Why Use Tags?
* **Filtering Notifications**: Tags make it easy to filter and display notifications based on categories.
For instance, you can create a UI that allows users to view only security or promotional notifications. Learn more about using tags to filter notifications in the [Inbox](/platform/inbox/react/multiple-tabs) section.
Think of it as organizing emails into folders—tags help keep things tidy and manageable for both you and your users.
## How to Add Tags to Notifications
This is a {{workflow.severity}} priority message regarding your account.
``` ## Variable popover When clicking on a variable in the template editor, a popover will appear. This popover can be used to easily manipulate the variable formatting by applying default values or Liquid Filters.
### Applying Liquid Filters
The variable popover will display a list of suggested Liquid Filters based on the variable type, you can apply one or more filters to the variable and re-order using drag and drop.
Re-ordering filters is useful as the filters are applied in the order they are listed, and the output of each filter is passed to the next one.
### Previewing filters output
With more advanced filter logic, you can preview the output of the filters by clicking on the **Preview** button and pass the variable value to see how the filters will be applied.
### Raw Liquid.js syntax
You can also apply raw Liquid.js syntax to the variable by clicking on the **Raw** button which will reveal the raw Liquid.js content that will be applied to the variable.
## Adding logic with Liquid Filters
Novu supports Liquid filters to add dynamic and conditional content to your notifications. Below are examples of how to use the top 10 Liquid filters in real-world notification templates.
Custom Notification Body
{notification.body}
{notification.body}
{notification.body}
{notification.body}
{notification.body}
{notification.body}
{notification.body}
{notification.body}
🔔 New alert: {notification.body}
{notification.body}