1
Run the Local Studio
The Local Studio is where you will build your notification workflows and craft the controls that will be
exposed for your non-technical peers to maintain after your workflow is pushed to your Development or Production
environments.The
dev
command is your go-to command whenever you want to build and preview your changes before syncing to cloud. By default, it will start a secure tunnel that our durable cloud workflow engine will
be able to communicate with, and the Local Studio web service listening on http://localhost:2022
2
Install Packages
@novu/framework
SDK Package- Zod (Recommended) - For end-to-end type safety for your Payload and Step Controls
3
Add the NovuModule to your application
The
NovuModule
is a NestJS module that registers the Novu Endpoint in your application.The following example does not support NestJS dependency injection. If you need to @Injectable
dependencies in your workflow definition, see Advanced Usage.4
Add a Novu Secret Key Environment Variable
Add
NOVU_SECRET_KEY
environment variable to your .env
5
Create your workflow definition
Add a
novu
folder in your src
folder as such src/novu/workflows.ts
that will contain your workflow definitions.6
Start your application
Start your NestJS application with the Novu Endpoint configured.If your NestJS application is running on other than
4000
port, restart the npx novu dev
command with the port:7
Test your workflow
After your application is up and running, visit the Local Studio interface that was started on
http://localhost:2022
by running the npx novu dev
command on the first step.The onboarding guide will guide you to send the newly created sample workflow to your e-mail address.8
Deploy your application
Once you have finished refining your first workflow, it’s time to sync your local changes to Novu Cloud. Novu recommends deploying your workflows similarly to how you will deploy the features that generate those notifications using your CI/CD pipeline or our CLI command.Read more about syncing your changes to the cloud.
Next Steps
Build workflows
Learn how to build workflows with the Novu Framework.
Explore the framework SDK
Learn more about the Novu Framework SDK
Inbox
Add the Inbox component to your application with our front-end SDK.
Deploy
Deploy your workflows to Development and Production
Advanced Usage (Dependency Injection)
If you need to inject dependencies into your workflow definition, you can use theregisterAsync
method.
Add the NovuModule
using the registerAsync
method to your AppModule
.
src/app.module.ts
UserService
is available below with hardcoded values, but in a real-world application you might use a database or an external API to fetch the user’s name.
src/user.service.ts
NotificationService
to use the injected UserService
.
src/notification.service.ts