Marketo 和 Braze 之间的双向订阅状态同步

要实现 Marketo 和 Braze 之间的双向用户订阅状态同步,我们需要从最基础的环境准备开始,详细逐步展开每一个操作步骤,明确技术准备、操作流程,以及可能遇到的问题。以下是从零开始的详细指南,确保每一个步骤都充分考虑各种细节。


前期准备

1. 定义同步的需求
  • 目标:确保用户在 Marketo 或 Braze 其中一平台取消订阅时,订阅状态能够同步更新到另一平台。
  • 范围:同步内容仅限于订阅状态(取消订阅或重新订阅),双向同步,即 Marketo → Braze 和 Braze → Marketo。

步骤 1: 获取 API 访问权限(Marketo 和 Braze)

具体操作步骤:Marketo API 准备
  1. 创建 API 用户

    • 登录 Marketo,使用具有管理员权限的账户。
    • 进入 Admin,在左侧导航栏找到 Users & Roles,点击 Invite New User
    • 输入用户名、电子邮件等信息,确保勾选 API Only 选项。为该用户分配足够的权限,尤其是对 Lead DatabaseActivity Log 的完全访问权限。
  2. 创建 LaunchPoint 服务

    • Admin 页面中,找到 LaunchPoint
    • 点击 New Service,选择 Custom 作为服务类型。
    • 为服务命名(例如 “Marketo to Braze API Service”),并将其分配给刚刚创建的 API 用户。
    • 保存后,会生成一个 Client IDClient Secret,这是我们在后续操作中需要使用的认证信息。
  3. 获取 Marketo API 端点

    • Admin 页面中找到 Web Services
    • 记录 REST API EndpointIdentity URL,后续将用于发送 API 请求。
具体操作步骤:Braze API 准备
  1. 创建 API Key

    • 登录 Braze 的开发者控制台,进入 Developer Console
    • API Settings 中,创建一个新的 API Key。
    • 确保 API Key 拥有 users.trackusers.identify 权限(这是同步用户数据和状态所需的权限)。
    • 记录生成的 API Key,它将用于后续调用。
  2. 记录 API Endpoint

    • 根据所在服务器(如 US-01、US-02,或 EU-01),选择相应的 Braze API Endpoint,后续我们将通过该端点进行 API 调用。
技术准备:
  • 需要了解 OAuth 2.0 认证机制,因为 Marketo API 使用该机制进行授权。
  • 基础的 REST API 知识,包括 HTTP 请求和响应处理。
可能遇到的问题:
  • API 权限问题:没有正确分配 API 用户权限,可能会导致无法访问特定的 Marketo 数据。
  • API Key 泄漏风险:存储 API Key 和 Client Secret 时需确保安全,不要直接暴露在前端应用中。

步骤 2: 配置 Webhook 将 Marketo 取消订阅状态同步至 Braze

具体操作步骤:配置 Marketo Webhook
  1. 创建 Webhook

    • 登录 Marketo,进入 Admin 页面,点击左侧导航中的 Webhooks
    • 点击 New Webhook,设置名称为 "Sync Unsubscribe to Braze"。
    • URL:设置为处理取消订阅同步的服务器地址,例如 https://your-server.com/marketo-unsubscribe
    • 请求类型:选择 POST
    • Request Template:输入以下 JSON 模板,将用户的电子邮件和取消订阅状态发送给 Braze。
      {
        "email": "{{lead.Email Address}}",
        "unsubscribe": {{lead.Unsubscribed}}
      }
      

  2. 配置 Webhook 触发条件

    • 在 Marketo 中创建一个 Smart Campaign
    • Smart List 中设置触发条件为 Data Value Changes,选择 Unsubscribed 字段。
    • 设置为当 Unsubscribedfalse 变为 true 时,触发 Webhook 调用。
具体操作步骤:创建中间件接收 Webhook 请求
  1. 搭建中间件服务器

    • 选择一个编程语言(如 Node.js、Python、Ruby 等)来搭建服务器,接收来自 Marketo 的 Webhook 请求。示例代码(Node.js 版):
      const express = require('express');
      const axios = require('axios');
      const app = express();
      
      app.use(express.json());
      
      app.post('/marketo-unsubscribe', async (req, res) => {
        const { email, unsubscribe } = req.body;
        try {
          await axios.post('https://rest.iad-01.braze.com/users/track', {
            attributes: [
              {
                external_id: email,
                subscription_status: unsubscribe ? 'unsubscribed' : 'subscribed'
              }
            ]
          }, {
            headers: {
              'Authorization': `Bearer YOUR_BRAZE_API_KEY`
            }
          });
          res.status(200).send('Success');
        } catch (error) {
          console.error(error);
          res.status(500).send('Error syncing with Braze');
        }
      });
      
      app.listen(3000, () => console.log('Server is running on port 3000'));
      

  2. 部署服务器

    • 将服务器部署到云平台(例如 AWS、Heroku、Google Cloud),确保它能够通过 HTTPS 访问。
技术准备
  • 熟悉 Node.js 或其他服务端语言,用于编写和部署 Webhook 处理程序。
  • 云平台部署知识,确保服务器稳定运行且具有 SSL 证书(HTTPS)。
可能遇到的问题
  • Webhook 请求超时:确保你的服务器能够快速响应,不超过 Marketo 的超时限制(一般 30 秒)。
  • 数据传递错误:确保传递给 Braze API 的数据格式正确,特别是 external_idsubscription_status

步骤 3: 从 Braze 到 Marketo 同步取消订阅状态

具体操作步骤:配置 Braze 触发器
  1. 创建 Braze 工作流

    • 在 Braze 后台,使用 CanvasSegment Trigger,设置当用户取消订阅时触发自定义 API 请求。
    • 配置触发条件为 subscription_status 字段改变。
  2. 发送 API 请求至中间件

    • 在工作流中,配置一个 POST 请求,发送用户的取消订阅状态至一个中间服务器,该服务器会调用 Marketo API。
    • 例如:
      {
        "email": "{{user.email}}",
        "unsubscribe": "{{user.subscription_status == 'unsubscribed'}}"
      }
      

  3. 中间件调用 Marketo API

    • 在中间服务器中,接收 Braze 发送的取消订阅状态,并通过 Marketo API 更新用户的 Unsubscribed 字段:
      const axios = require('axios');
      
      async function syncToMarketo(email, unsubscribe) {
        const data = {
          action: "createOrUpdate",
          input: [
            {
              email: email,
              unsubscribed: unsubscribe
            }
          ]
        };
        try {
          const response = await axios.post('https://<YOUR_MARKETO_INSTANCE>.mktorest.com/rest/v1/leads.json', data, {
            headers: {
              'Authorization': `Bearer YOUR_MARKETO_API_TOKEN`
            }
          });
          console.log('Marketo sync successful:', response.data);
        } catch (error) {
          console.error('Error syncing to Marketo:', error);
        }
      }
      

技术准备
  • 熟悉 Braze Canvas 和 Segment Trigger 的使用,能够配置自定义 API 调用。
  • 熟悉 Marketo REST API,尤其是更新用户数据的 createOrUpdate 请求格式。
可能遇到的问题
  • API 限制:Marketo 和 Braze 都有 API 请求限流,确保在大规模同步时不会超过限额。
  • 同步延迟:由于网络或服务器负载,Braze 到 Marketo 的同步可能会出现几秒到几分钟的延迟。

步骤 4: 测试

具体操作步骤:进行双向测试
  1. 测试 Marketo 到 Braze 同步

    • 在 Marketo 中,手动更改某个用户的订阅状态,触发 Webhook,查看 Braze 中该用户的状态是否同步更新。
  2. 测试 Braze 到 Marketo 同步

    • 在 Braze 中更改用户的订阅状态,检查 Marketo 是否成功更新。
技术准备
  • 使用 PostmancURL 手动发送 API 请求,检查每个步骤的 API 调用是否成功。
  • 查看中间服务器的日志,确保没有错误发生。
可能遇到的问题
  • 数据不一致:不同步或同步延迟,确保在 API 调用中有足够的重试机制,以应对网络抖动或 API 请求失败。

通过这些详细步骤,您可以逐步实现 Marketo 和 Braze 之间的双向订阅状态同步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值