novu-dashboard-workflows

Author step content for Novu Dashboard and MCP notification workflows.

39.7k|4.4k|Updated Aug 26, 2021
One-click install
npx skills add https://github.com/novuhq/novu --skill novu-dashboard-workflows
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: novu-dashboard-workflows
Source: https://github.com/novuhq/novu/tree/main/docs/.mintlify/skills/dashboard-workflows
Command: npx skills add https://github.com/novuhq/novu --skill novu-dashboard-workflows

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Writing correct step controls (subjects, bodies, editor types, headers, conditions) for Novu Dashboard or MCP-managed workflows is error-prone, with subtle rules around Liquid variables, Block Editor attributes, and step conditions that are easy to get wrong.

Core Features & Use Cases

  • Step content authoring: Write controls for email, in-app, SMS, push, chat, delay, digest, throttle, and HTTP Request steps with per-type rules.
  • Variable and templating rules: Apply Liquid syntax correctly, including the Block Editor exception where node attributes use bare variable names instead of curly braces.
  • Step conditions: Generate JSONLogic skip conditions with correct merge, replace, or remove semantics based on user intent.
  • Use Case: When asked to "update the email body to loop over payload.items", the Skill produces a Block Editor repeat node or HTML Liquid for-loop instead of hardcoded list items.

Quick Start

Ask the AI to set the email subject and body for a workflow step using the subscriber's first name and a payload action URL.

Frequently Asked Questions about novu-dashboard-workflows

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write step content for a Novu Dashboard workflow?▼

Define the step's controls such as subject, body, and editorType following per-step-type rules, using Liquid variables like {{ subscriber.firstName }} and {{ payload.* }} for personalization. Each channel type (email, SMS, push, chat, in-app) has its own content guidelines.

How do I add a condition to a Novu workflow step?▼

Step conditions use JSONLogic in the skip field, for example { "==": [{ "var": "subscriber.isOnline" }, "false"] } to send push only when offline. Adding a condition merges with AND, replacing overwrites it, and removing returns null.

Why do curly brace variables break in the Novu Block Editor?▼

Maily TipTap node attributes such as url, text, src, and each require bare variable names like payload.actionUrl, not {{ payload.actionUrl }}. Curly braces are only valid in HTML editor bodies and plain Liquid contexts.

Can a Novu workflow step use data from an HTTP Request step?▼

Yes, but only for properties declared in the HTTP step's responseBodySchema. Downstream steps reference them as {{ steps.<http-step-id>.<property> }}, and referencing undeclared fields is invalid.

When should I use digest versus throttle in Novu workflows?▼

Use digest to batch multiple events into a single notification, with regular or cron-based timed windows. Use throttle to drop excess messages and cap frequency, such as a maximum of three notifications per hour per user.