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

server/2024/10/18 18:16:13/

要实现 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 之间的双向订阅状态同步。


http://www.ppmy.cn/server/131694.html

相关文章

Apple Intelligence将于10月28日发布,ChatGPT集成推迟!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

uniAPP如何开发?PHP语言的书写该如何制作

开发一个基于uni-app的项目以及与之交互的PHP后端涉及多个步骤和技术栈。以下是一个简要的指南&#xff0c;帮助你理解如何开始这两个部分的开发。 一、uni-app开发 1. 环境准备 Node.js&#xff1a;确保你已经安装了Node.js&#xff0c;这是构建和运行uni-app项目的基础。H…

Nodejs和C#使用ECDH算法交换秘钥

转载于&#xff1a;https://bkssl.com/document/nodejs-csharp-ecdh.html nodejs的ECDH算法在进行computeSecret的时候不会自动进行HASH运算&#xff0c;但C#的ECDH算法必须指定HASH算法。 两边算法必须使用相同的椭圆曲线和Hash算法&#xff0c;例如下面用例都是用的SHA256。…

3.stable-diffusion1.10.0精准控制图-ControlNet插件的安装

安装 Controlnet 插件 注&#xff1a;从网址安装可以保证插件的更新能在 WebUI 中自动显示&#xff0c;如果是下载压缩包文件放进根目录&#xff0c;就无法自动更新。下面执行网址安装。 打开 WebUI&#xff0c;点击“扩展”选项卡&#xff0c;选择“从网址安装”&#xff0c;…

详细分析Redisson分布式锁中的renewExpiration()方法

目录 一、Redisson分布式锁的续期 整体分析 具体步骤和逻辑分析 为什么需要递归调用&#xff1f; 定时任务的生命周期&#xff1f; 一、Redisson分布式锁的续期 Redisson是一个基于Redis的Java分布式锁实现。它允许多个进程或线程之间安全地共享资源。为了实现这一点&…

网站服务器监控:Apache指标解读

监控易是一款专业的IT监控软件&#xff0c;能够实时监控各类IT资源和应用的状态&#xff0c;确保系统的稳定运行。在网站服务器监控中&#xff0c;Apache作为广泛使用的Web服务器软件&#xff0c;其性能和稳定性对于网站的正常运行至关重要。下面&#xff0c;我们将对监控易中A…

【自动化】Java Access Bridge 使用说明

【自动化】Java Access Bridge 使用说明 Java Access Bridge是一项在Microsoft Windows动态链接库(DLL)中公开Java Accessibility API的技术,使实现Java Accessibility API的 Java应用程序对Microsoft Windows系统上的辅助技术可见。 开启jab服务 1 、首先获取java版本信…

Python速成笔记——知识:GUI自动化控制鼠标

图形用户界面自动化(GUI自动化):通过程序控制其他应用,向它们发送虚拟的按键和鼠标点击事件,模拟用户在计算机前进行操作。 功能:自动化解决需要大量机械式点击鼠标或填写表格的任务。 模块:pyautogui安装:pip install --user pyautoguiGUI自动化程序中断 将鼠标指针滑…