配置和部署 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 之间的取消订阅同步系统。如果在某一步遇到困难,随时可以深入到具体问题进行排查。

相关推荐
做梦敲代码18 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
小蜗牛慢慢爬行1 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger1 小时前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud1 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡1 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷1 小时前
Redis
数据库·redis·缓存
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪2 小时前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb