You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Node.js API中集成Moengage实现用户操作触发邮件通知?

Node.js API集成Moengage实现事件触发通知分步指南

可行性说明

完全可以通过Moengage的Server-side API实现用户操作触发的邮件/推送通知。你之前没找到相关信息,可能是没定位到Moengage的「Server API」或「Transactional API」板块,下面是具体的分步实现指南。


1. 准备工作

首先在Moengage后台获取必要凭证:

  • 登录Moengage控制台,进入Settings > API Keys
  • 复制你的API Key和APP ID
  • 根据你的服务区域选择对应API域名:
    • 美国:https://api-01.moengage.com/v1
    • 欧盟:https://api-02.moengage.com/v1
    • 印度:https://api-03.moengage.com/v1

2. 安装HTTP客户端

Moengage没有强制要求官方SDK,用axios或node-fetch即可发起API请求:

npm install axios

3. 配置Moengage凭证

创建配置文件moengage.config.js统一管理凭证:

module.exports = {
  apiKey: "YOUR_MOENGAGE_API_KEY",
  appId: "YOUR_MOENGAGE_APP_ID",
  baseUrl: "https://api-01.moengage.com/v1" // 替换为你的区域域名
};

4. 同步用户信息(必做)

Moengage需要用户唯一标识来关联事件和发送通知,在用户注册/登录时调用以下接口同步用户数据:

const axios = require("axios");
const moengageConfig = require("./moengage.config");

async function syncUser(userId, userInfo) {
  try {
    await axios.post(
      `${moengageConfig.baseUrl}/${moengageConfig.appId}/users`,
      {
        id: userId, // 用户唯一ID(如邮箱、UUID)
        attributes: {
          email: userInfo.email,
          name: userInfo.name,
          // 可选:手机号、性别等其他属性
        }
      },
      {
        headers: {
          Authorization: `Basic ${Buffer.from(moengageConfig.apiKey).toString("base64")}`,
          "Content-Type": "application/json"
        }
      }
    );
  } catch (err) {
    console.error("用户同步失败:", err.response?.data || err.message);
  }
}

5. 追踪用户操作事件

当用户执行目标操作(如完成订单、提交表单)时,调用事件追踪API记录行为:

async function trackUserAction(userId, eventName, eventProps) {
  try {
    await axios.post(
      `${moengageConfig.baseUrl}/${moengageConfig.appId}/events`,
      {
        id: userId,
        event_name: eventName, // 自定义事件名(如"Completed_Purchase")
        event_time: new Date().toISOString(),
        event_properties: eventProps // 事件属性(如{order_id: "123", amount: 99})
      },
      {
        headers: {
          Authorization: `Basic ${Buffer.from(moengageConfig.apiKey).toString("base64")}`,
          "Content-Type": "application/json"
        }
      }
    );
  } catch (err) {
    console.error("事件追踪失败:", err.response?.data || err.message);
  }
}

6. 配置事件触发的通知(核心步骤)

方式1:通过Moengage后台自动化旅程(推荐)

这种方式无需硬编码通知内容,灵活度高:

  • 登录Moengage控制台,进入Automation > Journeys
  • 点击「Create Journey」,选择触发条件为**「User Performs Event」**
  • 选择你之前追踪的事件(如"Completed_Purchase"),可添加属性过滤(如订单金额>100)
  • 添加动作:选择「Send Email」或「Send Push Notification」,配置模板内容
  • 保存并激活旅程,之后用户触发对应事件时会自动发送通知

方式2:直接调用Transactional API发送邮件

如果需要在代码中直接触发邮件(无需后台配置),先在Moengage后台创建事务邮件模板,获取Template ID,然后调用:

async function sendTriggeredEmail(userId, templateId, templateParams) {
  try {
    await axios.post(
      `${moengageConfig.baseUrl}/${moengageConfig.appId}/transactional/email`,
      {
        user_id: userId,
        template_id: templateId, // 后台创建的事务模板ID
        params: templateParams // 模板变量(如{order_id: "123", username: "张三"})
      },
      {
        headers: {
          Authorization: `Basic ${Buffer.from(moengageConfig.apiKey).toString("base64")}`,
          "Content-Type": "application/json"
        }
      }
    );
  } catch (err) {
    console.error("邮件发送失败:", err.response?.data || err.message);
  }
}

关键注意事项

  • 确保用户的email字段已正确同步,否则邮件无法送达
  • 事件名称和属性要与后台旅程配置的规则完全匹配(大小写敏感)
  • 测试时可使用Moengage后台的「Test Users」功能,避免干扰真实用户
  • API请求失败时优先查看err.response.data,Moengage会返回具体错误原因

内容的提问来源于stack exchange,提问作者Archit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 07:36:07