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.