Template Editor
Learn how to use the Novu notification template editor to design notifications
Each channel step in a Novu workflow comes with its own notification template. This template defines how notifications appear for a specific channel.
Quality templates are used to create personalized, visually appealing, and effective notifications.
- Injecting variables from your trigger data into your notification template.
- Using Liquid syntax for logic and control flow within templates.
- Previewing and testing your notification templates.
Personalizing Notifications with Template Variables
To insert a variable into your Novu notification template, use double curly braces: {{ variable_name }}
.
Novu templates allow you to reference several types of variables:
Data payload variables
These variables originate from the data payload in your workflow trigger.
For example, if you include { "order_id": "12345" }
in your payload, you can reference it in your template as {{ payload.order_id }}
.
User properties
You can access user properties (like firstName
or custom subscriber properties) using {{ subscriber.* }}
. For instance:
Hi {{ subscriber.firstName }},
You’ve been upgraded to the {{ subscriber.data.plan }} plan.
Thanks,
The Novu Team
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.
Learn more about the Liquid Templating Language.capitalize
Use capitalize
to ensure proper formatting for user names.
Hello {{ subscriber.firstName | capitalize }},
Welcome to Novu! We're excited to have you on board.
Output:
Hello John, Welcome to Novu! We're excited to have you on board.
upcase
Use upcase
for emphasizing specific information like workspace names.
Your workspace {{ payload.workspaceName | upcase }} has been successfully created.
Output:
Your workspace TEAM ALPHA has been successfully created.
downcase
Use downcase
for consistent email formatting or usernames.
Hi {{ subscriber.email | downcase }},
We’ve sent a confirmation to your inbox.
Output:
Hi john.doe@example.com, We’ve sent a confirmation to your inbox.
date
Use date
to format subscription or event dates.
Your subscription will renew on {{ payload.renewalDate | date: "%B %d, %Y" }}.
Output:
Your subscription will renew on December 31, 2024.
truncate
Use truncate
to shorten long content like notification messages.
New comment on your post: {{ payload.commentText | truncate: 20 }}
Click here to read more.
Output:
New comment on your post: Great work on your... Click here to read more.
truncatewords
Use truncatewords
to limit the number of words in a preview.
{{ subscriber.firstName }}, here's a preview of the article:
{{ payload.articleExcerpt | truncatewords: 5 }}
Output:
John, here's a preview of the article: Novu is a flexible and...
replace
Use replace
to dynamically update template content.
Hi {{ subscriber.firstName }},
Your {{ payload.subscriptionType | replace: "basic", "premium" }} subscription is active.
Output:
Hi John, Your premium subscription is active.
split
Use split
to parse tags or interests.
You have new updates in {{ payload.tags | split: "," | join: ", " }}.
Input:
"announcements,updates,offers"
Output:
You have new updates in announcements, updates, offers.
join
Use join
to list multiple items in a human-readable way.
Hello {{ subscriber.firstName }},
You have the following items pending: {{ payload.tasks | join: ", " }}.
Input:
["Upload documents", "Confirm email", "Schedule meeting"]
Output:
Hello John, You have the following items pending: Upload documents, Confirm email, Schedule meeting.
default
Use default
to provide fallback values.
Hi {{ subscriber.nickname | default: subscriber.firstName }},
Your account settings are updated.
Output (when nickname is null):
Hi John, Your account settings are updated.
Liquid Filters
Learn more about 40+ filters supported by LiquidJS
Previewing and testing notification templates
When your notification template is ready, use the Preview mode to visualize how your notification will look. You can:
- Test dynamic payload data: Provide sample data to see how your template renders with different values.
- Send test notifications: Save your template, return to the workflow canvas, and run a test with real trigger data.
Was this page helpful?