You can send 2 kinds of messages with Notifuse, transactional notifications (i.e: welcome, order-confirmation...) and campaigns (i.e: newsletters...).

To help you customize as much as possible your notifications and campaigns, we added the famous templating engine Nunjucks (same syntax as Twig, Jinja2...), with support of macros pages.

Macros pages

A macro is a reusable function that will avoid you to duplicate code in your templates.

Example: all your emails will have the same header and footer, so it's useful to create macros for that. Then your templates will just contain a {% header() %} and {% footer() %} call.

A "macros page" is just a page where you can declare as much macros as you want.


Transactional notifications templates can be created via the "Notifications" tab on the left sidebar of the Notifuse interface.

Because you may want to create an email+SMS version of the same notification, or do some A/B tests, all templates belong to a "notification".

A notification in Notifuse is like a folder, that contains as many templates as you want.

When you create a notification template, you have to select which channel you want to use to send this message. Because all channels have different features, the template form will have different options.

Choose your channels wisely: all channels features are documented here.

Your templates have access to the JSON recipient's contact profile, and a "messageId" property.

Notifications templates can also receive an external JSON data when you send your messages (i.e: password reset tokens...). In case of conflict, the external JSON data will overwrite the contacts profile data.

Therefore you can write Hello {{ firstName }} as long as the recipient's contact profile contains a "firstName" property.

The messageId property contains the Notifuse message ID. This is gonna be useful when you would like to implement a "View this email in a browser" link in your newsletters, and have to fetch the message from the API.


Campaigns templates settings are same as notifications. Easy!

Test data

If you already created a template, you used a beautiful editor that helped you code and preview your artwork.

But if you added some variables or loops in your templates, you expected the preview to reflect the final result. That's why you can add a JSON test data in the editor.

Next: Learn some basic templating syntax ยป