配置和部署 Marketo 与 Braze 之间的取消订阅同步

让我们再细化和深入每一个步骤,确保你可以从最基础的准备到每个细节的执行都做到万无一失。这将涉及到从技术配置到潜在问题排查的各个方面,每个步骤都会详细解释应准备的材料、执行的操作、技术要求,以及可能会遇到的常见问题及其解决方案。


步骤 1: 获取 Marketo API 访问权限

这是整个流程的基础,确保 Marketo 能通过 API 接口与外部系统(如 Braze)进行交互。

操作流程
  1. 登录 Marketo 管理后台

    • 访问 Marketo 的 URL(通常类似于 https://app-<instance>.marketo.com),使用管理员账户登录。
  2. 导航到 Admin 面板

    • 登录后,点击左侧导航栏中的 Admin,进入管理员设置界面。
  3. 创建 API 用户

    • Admin 页面中,点击 Users & Roles
    • 点击页面顶部的 Invite New User 按钮,进入用户创建页面。
    • 在"Email"字段中输入新用户的邮箱地址。
    • 在用户类型下,勾选 API Only 选项,确保这个用户只用于 API 调用。
    • 指定该用户的权限为 Lead DatabaseActivity Log,确保他有权限操作相关数据。
    • 点击 Send 完成创建。
  4. 创建 API 应用并获取凭据

    • 返回 Admin 页面,点击 LaunchPoint
    • 点击 New Service ,选择 Custom 类型。
    • 为应用程序起一个名字(如"Marketo to Braze Sync Service"),并将上一步创建的 API Only 用户分配给这个应用。
    • 创建成功后,系统会生成 Client IDClient Secret,这是之后调用 Marketo API 时必须用到的凭据。请妥善保管这些凭据。
  5. 获取 Marketo REST API 基本信息

    • Admin 页面中点击 Web Services
    • 在这个页面,你会看到 Marketo 的 REST API EndpointIdentity URL 。这两个地址是之后进行 API 身份认证和请求时需要的。记录下这些地址,例如:
      • REST API Endpoint: https://123-ABC-456.mktorest.com
      • Identity URL: https://123-ABC-456.mktorest.com/identity/oauth/token
技术准备
  • 需要 Marketo 管理员账户 ,确保有权访问 Admin 面板。
  • 了解 OAuth 2.0 认证流程,确保 API 调用时正确使用 Client IDClient Secret
  • 服务器或应用程序将需要具备访问 Marketo API 的环境。
可能遇到的问题
  • 权限不足:如果没有管理员权限,你可能无法创建 API Only 用户或应用。如果你不是管理员,需要联系负责管理 Marketo 的管理员来完成这些设置。
  • 凭据泄露 :妥善保管生成的 Client IDClient Secret,不要将它们暴露在公共环境中,防止系统安全风险。
  • API 请求失败:确认你使用的 Marketo 实例地址正确,有时错误的实例地址会导致 API 无法访问。

步骤 2: 获取 Braze API 访问权限

Braze API 是用来接收来自 Marketo 的数据并更新 Braze 用户取消订阅状态的关键接口。

操作流程
  1. 登录 Braze 管理后台

    • 访问 Braze 的 URL(根据你所在的数据中心,通常类似于 https://dashboard.braze.com),使用管理员账户登录。
  2. 生成 API 密钥

    • 在左侧导航栏点击 Developer Console
    • 选择 API Settings,在这里你可以管理和生成 API Key。
    • 点击 Create New API Key 按钮,生成一个新的 API 密钥。为这个 API 密钥命名(如 "Marketo Sync API Key")。
    • 在生成时,确保勾选必要的权限,如 users.trackusers.identify,这些权限将允许我们更新 Braze 中用户的订阅状态。
    • 记录下生成的 API Key,这是之后调用 Braze API 所需的重要凭据。
  3. 记录 Braze API Endpoint

    • 根据你的数据中心位置,Braze 会提供不同的 API Endpoint。你可以在 API Documentation 中找到这个信息。例如:
      • 如果你的 Braze 实例在美国东部,API Endpoint 通常是 https://rest.iad-01.braze.com
    • 记录下这个 API Endpoint,后续所有的 API 调用都会使用它作为基础 URL。
技术准备
  • 需要 Braze 管理员账户,确保有权生成和管理 API 密钥。
  • 确保知道 Braze 的数据中心位置,并正确配置 API 请求的 Endpoint。
可能遇到的问题
  • 权限不足 :如果 API Key 没有足够的权限(如 users.track 权限未勾选),在更新 Braze 中的用户信息时会遇到错误。
  • 错误的 API Endpoint:确保你使用的 API Endpoint 对应的是你所在的数据中心区域,错误的 Endpoint 会导致请求失败。
  • API Key 泄露风险:与 Marketo 的凭据一样,API Key 应该妥善保管,不要将其暴露在公共环境中。

步骤 3: 搭建服务器或中间件环境

这一步我们将搭建一个服务器,来处理来自 Marketo 的 Webhook 请求,并将用户的取消订阅状态同步到 Braze 。可以使用云平台如 HerokuAWS Lambda,或者本地服务器。

操作流程
  1. 选择服务器环境

    • 你可以根据需求选择云平台或本地服务器。如果你需要一个简单的托管服务,Heroku 是一个不错的选择。如果你需要自动扩展,可以考虑 AWS Lambda
  2. 安装开发环境

    • 使用 Node.js 搭建服务器:
      • 初始化项目:

        python 复制代码
        mkdir marketo-braze-sync
        cd marketo-braze-sync
        npm init -y
      • 安装必要的依赖库:

        复制代码
        python 复制代码
        npm install express axios
      • 创建一个 server.js 文件,配置服务器接收来自 Marketo 的 Webhook:

        复制代码
        javascript 复制代码
        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;
          if (unsubscribe === 'true') {
            try {
              await axios.post('https://rest.iad-01.braze.com/users/track', {
                attributes: [
                  {
                    external_id: email,
                    subscription_status: 'unsubscribed'
                  }
                ]
              }, {
                headers: {
                  'Authorization': `Bearer YOUR_BRAZE_API_KEY`,
                  'Content-Type': 'application/json'
                }
              });
              res.status(200).send('Success');
            } catch (error) {
              console.error('Error syncing to Braze:', error);
              res.status(500).send('Failed');
            }
          } else {
            res.status(400).send('User is still subscribed');
          }
        });
        
        const PORT = process.env.PORT || 3000;
        app.listen(PORT, () => {
          console.log(`Server is running on port ${PORT}`);
        });
  3. 部署服务器

    • 如果使用 Heroku 部署,可以按照以下步骤:

      复制代码
      javascript 复制代码
      heroku login
      git init
      git add .
      git commit -m "Initial commit"
      heroku create
      git push heroku master
    • 部署成功后,你的服务器将能够通过 https://your-app-name.herokuapp.com/marketo-unsubscribe 接收 Webhook 请求。

技术准备
  • 如果使用 Node.js,需要熟悉 Express 框架及 Axios 用于发起 API 请求。
  • 如果使用云服务平台如 HerokuAWS Lambda,需要具备相应的部署技能。
可能遇到的问题
  • 网络问题:确保服务器可以通过互联网访问,云平台需要正确配置域名及 SSL 证书。
  • 服务器部署失败:检查部署日志,确保所有依赖正确安装,并且端口配置无误。
  • API 请求失败:调试时请确保 Braze API 的凭据、Endpoint 地址和请求体格式无误。

步骤 4: 配置 Marketo Webhook

Marketo 的 Webhook 是用来在用户取消订阅时,自动将数据发送到我们部署的服务器。

操作流程
  1. 登录 Marketo Admin 界面

    • 在 Marketo 后台,点击左侧导航栏的 Admin
  2. 创建 Webhook

    • 在 Admin 页面中,点击 Webhooks

    • 点击 New Webhook 按钮,创建新的 Webhook。

    • 在"Name"字段中输入 Webhook 名称,如 "Unsubscribe Sync to Braze"。

    • 在"URL"字段中输入你之前部署的服务器地址,如 https://your-app-name.herokuapp.com/marketo-unsubscribe

    • 选择请求类型为 POST

    • 在"Template"字段中,定义你希望发送的数据。例如:

      复制代码
      javascript 复制代码
      {
        "email": {{lead.Email Address}},
        "unsubscribe": {{lead.Unsubscribed}}
      }
  3. 测试 Webhook

    • 在 Marketo 的 Smart Campaign 中配置触发器,使得用户取消订阅时自动触发 Webhook。
    • 你可以通过测试某个用户的取消订阅行为,检查是否同步成功。
技术准备
  • 熟悉 Marketo Webhook 的创建和配置流程。
  • 配置一个 Smart Campaign 以触发 Webhook。
可能遇到的问题
  • 数据传输失败:确保 Webhook 的 URL 正确,并且服务器可以正确解析和处理传入的数据。
  • 字段映射错误:检查 Marketo Webhook 中使用的字段模板,确保传递的数据符合预期。

步骤 5: 验证数据同步效果

最后一步是确保数据能够从 Marketo 正确同步到 Braze,并确保用户取消订阅状态在 Braze 中正确更新。

操作流程
  1. 在 Marketo 中进行测试

    • 手动测试某个用户取消订阅行为,观察 Webhook 是否触发,服务器是否接收到数据。
  2. 在 Braze 中验证状态

    • 登录 Braze,检查用户的取消订阅状态是否更新。
    • 你可以通过 User Lookup 工具,输入用户的 Email 地址,检查 Subscription Status 字段是否正确显示为"unsubscribed"。
可能遇到的问题
  • 同步延迟:由于网络或服务器负载,可能会出现数据同步延迟的情况。
  • 数据不一致:如果 Braze 中没有正确更新订阅状态,检查服务器日志,确保 API 调用成功。

通过这些详细步骤,你可以从零开始配置和部署 Marketo 与 Braze 之间的取消订阅同步系统。如果在某一步遇到困难,随时可以深入到具体问题进行排查。

相关推荐
JH30733 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
蓝染-惣右介5 分钟前
【MyBatisPlus·最新教程】包含多个改造案例,常用注解、条件构造器、代码生成、静态工具、类型处理器、分页插件、自动填充字段
java·数据库·tomcat·mybatis
冷心笑看丽美人6 分钟前
Spring框架特性及包下载(Java EE 学习笔记04)
数据库
武子康1 小时前
Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis·springboot
代码吐槽菌2 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
数字扫地僧2 小时前
WebLogic 版本升级的注意事项与流程
数据库
Viktor_Ye2 小时前
高效集成易快报与金蝶应付单的方案
java·前端·数据库
努力算法的小明3 小时前
SQL 复杂查询
数据库·sql
斗-匕3 小时前
MySQL 三大日志详解
数据库·mysql·oracle