Novu – 一个集成多种通知方式的开源通知平台

Novu 对于需要快速将通知集成到其应用程序中的开发团队来说,是一个简单的解决方案: 这句话强调了 Novu 的易用性和高效性,它简化了通知集成的复杂性,使开发团队能够快速地将通知功能添加到他们的应用程序中,而无需花费大量时间和精力从头开始构建。

Novu 提供一个统一的API,能够轻松通过多种渠道(包括收件箱/应用内通知、推送、电子邮件、短信和聊天)发送通知。使用 Novu,可以创建自定义工作流,并为每个渠道定义条件,确保通知以最有效的方式传递。

file

功能亮点

  • 单一 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. 构建工作流

按照以下步骤创建第一个自定义工作流:

  1. 创建新工作流
  2. 添加步骤到工作流
  3. 设计通知模板
  4. 预览通知
  5. 在编辑器中测试工作流
  6. 复制示例负载(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 页面查看触发说明。

触发由以下三部分组成:

  1. 工作流标识符:工作流的唯一标识符。
  2. 订阅者 ID:触发工作流的订阅者的唯一标识符,可以是用户 ID、电子邮件或其他唯一标识符。
  3. 负载(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 提供逻辑分离的环境来控制通知的发布。当对工作流的功能和外观满意后,只需将它们提升到生产环境,即可开始向真实用户发送通知。

参考链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注