mcpField
N
novu-dashboard-workflows

novu-dashboard-workflows

github.com/novuhq开发4460 次安装19 周前更新
代码仓库

关于 novu-dashboard-workflows

为在 Novu Dashboard 中编写或编辑工作流步骤内容提供规则,适用于手动操作或通过 Novu MCP 操作的场景。涵盖多种步骤类型,并强调变量、编辑器结构和条件的正确处理。

主要功能

  1. 01覆盖邮件、通知、HTTP 等步骤
  2. 02使用 Liquid 变量进行个性化
  3. 03遵循 HTTP 响应字段架构
  4. 04保留编辑器类型与步骤结构
  5. 05按意图合并或替换条件

适用场景

  1. 01编辑 Dashboard 工作流的邮件正文
  2. 02调整通知的延迟或摘要窗口
  3. 03添加 HTTP 请求头或正文
  4. 04修改步骤发送条件

MCP 相关

该技能指导通过 Novu MCP 创建或更新工作流步骤内容,例如使用 create_workflow 和 update_workflow_step。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/novuhq/skills --skill novu-dashboard-workflows

安装后在 Claude Code 中输入/novu-dashboard-workflows确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
chat-step.md
delay-step.md
digest-step.md
email-step.md
http-request-step.md
in-app-step.md
push-step.md
sms-step.md
step-conditions.md
throttle-step.md

详细介绍

仪表板工作流

在 Novu 仪表板中创建工作流时,编写步骤内容(主题、正文、editorType、标头、正文、条件)的规则——无论是手动编辑,还是通过 Novu MCP 编辑。

使用 @novu/framework 通过代码编写?跳过此技能——Framework SDK 会通过类型和辅助工具编码这些约束。

仍需决定工作流的设计(渠道、严重性、关键性、摘要、模板)?请从 design-workflow/ 开始,然后回到这里填写步骤内容。

何时使用此技能

每当你编写或编辑仪表板 / MCP 步骤的控件时,都请使用此技能:

  • “为此步骤设置电子邮件主题和正文”
  • “更新应用内通知文案”
  • “为此 HTTP Request 步骤添加标头”
  • “将摘要时间窗口更改为 1 小时”
  • “当订阅者处于离线状态时跳过此步骤”(步骤条件)
  • 任何会写入步骤内容的 Novu MCP 工具调用(create_workflow、update_workflow_step 等)

步骤内容指南

这些规则适用于所有步骤类型。

  • 在控件值中使用 Liquid 变量进行个性化。变量必须用双花括号 {{ 和 }} 括起来。示例:{{ subscriber.firstName }}、{{ payload.* }}。
  • **例外:**在 Block Editor(editorType: "block")节点属性中,切勿使用花括号——请使用不带花括号的变量名,例如 payload.actionUrl,而不是 {{ payload.actionUrl }}。完整的 Block Editor 规则请参见 references/email-step.md。
  • 对于 HTTP Request 步骤之后的步骤,使用 {{ steps.<http-step-id>.<property> }} 引用响应数据。只有在该 HTTP 步骤的 responseBodySchema 中定义的属性可用——切勿臆造任意响应字段。示例:如果 HTTP 步骤 fetch-user 在 responseBodySchema 中定义了 name 和 email,则使用 {{ steps.fetch-user.name }} 和 {{ steps.fetch-user.email }}。
  • 切勿硬编码 URL、名称或产品名称——请改用变量。
  • 内容应与工作流中的其他步骤保持一致。
  • 根据用户意图修改内容。
  • 保留所有未明确要求更改的内容。
  • 保持相同的 editorType(电子邮件使用 block 或 html)和结构。

步骤类型

每种步骤类型都有各自的内容规则。编写控件前,请先打开对应的参考文档。

步骤类型参考文档适用场景
Emailreferences/email-step.md详细内容、正式通信、回执
In-Appreferences/in-app-step.md实时更新、活动动态、高参与度
SMSreferences/sms-step.md紧急提醒、验证码、时效性消息
Pushreferences/push-step.md移动端互动、重新互动、时效性更新
Chatreferences/chat-step.mdSlack / Discord / Teams 团队及开发者提醒
Delayreferences/delay-step.md在渠道步骤之前暂停工作流执行
Digestreferences/digest-step.md将多条通知合并为一条
Throttlereferences/throttle-step.md限制通知频率,避免造成疲劳
HTTP Requestreferences/http-request-step.md调用外部 API / webhook;为后续步骤获取数据
步骤条件references/step-conditions.md用 JSON-Logic 实现“仅在……时发送”、合并 / 替换 / 移除

常见陷阱

  1. Block Editor 属性中的花括号 — Maily TipTap 节点属性(url、text、src、id、each、href、externalLink)必须使用不带花括号的变量名。"{{ payload.actionUrl }}" 是错误的;"payload.actionUrl" 才正确。请参阅 references/email-step.md。
  2. 引用未声明的 HTTP 响应字段 — {{ steps.<http-step-id>.<property> }} 仅适用于该步骤的 responseBodySchema 中列出的属性。请先将属性添加到架构中。
  3. 硬编码数组项而不是循环遍历 — 当负载包含数组(payload.items、payload.providers)时,请使用 Block Editor repeat 节点或 HTML {% for %} 循环进行迭代。不要将数组项分别列为节点 / 元素。
  4. HTTP 标头或正文中存在空键值条目 — 不需要时请使用空数组 []。不要使用 [{ "key": "", "value": "" }]。
  5. 硬编码 URL / 产品名称 — 始终从 payload.* 或 subscriber.* 获取,以确保工作流可移植。
  6. 编辑 Email 时更改 editorType — 除非用户明确要求切换,否则保持 block 为 block、html 为 html。
  7. 用户说“添加”时替换步骤条件 — “添加” / “也” / “并且”应使用 { "and": [...] } 合并;“更改为” / “设为”表示替换;“移除” / “清除”则返回 null。请参阅 references/step-conditions.md。

另请参阅

评论

支持 Markdown