如何在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
相关产品推荐
相关产品推荐

