Novu 对于需要快速将通知集成到其应用程序中的开发团队来说,是一个简单的解决方案: 这句话强调了 Novu 的易用性和高效性,它简化了通知集成的复杂性,使开发团队能够快速地将通知功能添加到他们的应用程序中,而无需花费大量时间和精力从头开始构建。
Novu 提供一个统一的API,能够轻松通过多种渠道(包括收件箱/应用内通知、推送、电子邮件、短信和聊天)发送通知。使用 Novu,可以创建自定义工作流,并为每个渠道定义条件,确保通知以最有效的方式传递。
功能亮点
- 单一 API 支持所有消息提供商(收件箱/应用内通知、电子邮件、短信、推送、聊天)
- 完整的 GitOps 流程管理,可通过 CI 部署
- 使用 Zod 或 JSON Schema 定义工作流和步骤控制
- 轻松在多种框架中重复利用现有内容,包括 React Email、Vue-email、Maizzle、MJML 等
- 配备内容管理系统(CMS),实现高级布局与设计管理
- 在单一仪表盘中调试和分析多渠道消息
- 可嵌入的实时更新收件箱组件
- 可嵌入的用户偏好组件,让订阅者掌控通知设置
- 社区驱动,共同发展
安装
在将 Novu 集成到应用程序之前,需要创建一个 Novu 账户并在 Novu 仪表盘中设置一个新的工作流。
1. 创建 Novu 账户
在 Novu Cloud 上创建一个新账户,或者如果已有账户,直接登录即可。
2. 在后端添加 Novu SDK
支持大多数主流编程语言,便于快速入门。
使用以下命令安装:
npm install @novu/node
3. 配置环境变量
首先,在应用程序中设置 NOVU_API_KEY
环境变量。
可以在 Novu 仪表盘的 Developer 部分找到公共和私有 API 密钥。
由于这是用于后端集成的步骤,请确保使用 私有密钥。
为了安全起见,请始终将 API 密钥定义为环境变量,避免将其提交到源代码库中。
NOVU_API_KEY="example_key_abcdefg1234567890"
4. 构建工作流
按照以下步骤创建第一个自定义工作流:
- 创建新工作流
- 添加步骤到工作流
- 设计通知模板
- 预览通知
- 在编辑器中测试工作流
- 复制示例负载(Payload)
在返回后端之前,导航到 Trigger 标签页。在这里,可以获取调用 Novu API 时使用的示例负载。
示例负载:
{
"task_id": {
"title": "{{payload.task_id.title}}",
"dueDate": "{{payload.task_id.dueDate}}",
"url": "{{payload.task_id.url}}"
}
}
注意:负载是可选的,用于向工作流传递额外的信息。
在页面底部,复制工作流触发代码片段并将其添加到后端。
5. 触发工作流
每个工作流都会生成一个唯一的标识符(Workflow Identifier),可用于触发工作流。可以在 Trigger 页面查看触发说明。
触发由以下三部分组成:
- 工作流标识符:工作流的唯一标识符。
- 订阅者 ID:触发工作流的订阅者的唯一标识符,可以是用户 ID、电子邮件或其他唯一标识符。
- 负载(Payload):传递给工作流的可选数据,用于提供额外信息。
以下是使用 Node.js SDK 触发工作流的示例:
Node.js 示例:
import { Novu } from '@novu/node';
const novu = new Novu(process.env['NOVU_SECRET_KEY']);
novu.trigger('test', { // 工作流标识符
to: {
subscriberId: '625f3fe55a55980017dd63fd' // 订阅者 ID
},
payload: { // 负载
task_id: {
title: '{{payload.task_id.title}}',
dueDate: '{{payload.task_id.dueDate}}',
url: '{{payload.task_id.url}}'
}
}
});
执行触发调用后,如果工作流中包含应用内(In-app)渠道步骤,应能在 Novu 仪表盘的收件箱(Inbox)部分看到通知。
6. 推广到生产环境
Novu 提供逻辑分离的环境来控制通知的发布。当对工作流的功能和外观满意后,只需将它们提升到生产环境,即可开始向真实用户发送通知。