询问开发人员:myDNA 高级软件开发人员 Elliott Millar 关于集成 Braze、利用 AWS EventBridge 和优先项目前研究

已发表: 2022-04-30

开发人员在确保我们的客户能够顺利集成和利用 Braze 平台来支持他们的营销工作方面发挥着关键作用。 为了详细了解开发人员在 Braze 方面所做的工作以及他们的体验如何,我与领先的基因健康品牌 myDNA 的高级软件开发人员 Elliott Millar 坐了下来。 这是他不得不说的*:

你能告诉我们一些关于 myDNA 和你在那里的角色吗?

myDNA 是一家位于澳大利亚墨尔本的基因健康公司。 我们根据人们的基因结果为他们提供建议。 我们的客户只需将他们的面颊拭子发送给我们,我们就会处理他们的 DNA 结果,并为他们提供 DNA 见解和建议,以处理他们的遗传学问题。

myDNA 从药物基因组学产品开始,它可以帮助医疗保健从业者更准确地为患者开药,这对许多人的生活产生了重大影响。 现在有很多丰富的 DNA 研究表明遗传学如何影响我们的健康方面,例如饮食、运动、睡眠和皮肤老化——仅举几例——所以 myDNA 现在也有一个通用的健康产品; 该产品通过我们的 myDNA Unlocked 应用程序为人们提供 DNA 见解和建议,以及基于他们的基因结果的个性化膳食和健身计划。 这就是 Braze 的用武之地。我们使用 Braze 通过应用程序向我们的客户提供这种个性化的内容,以帮助他们改变行为并实现他们的健康目标。

我是 myDNA 的高级软件开发人员。 自 10 月以来,我一直担任该职位,我领导的第一个项目是将 Braze 集成到 myDNA Unlocked 中。 我是一名全栈开发人员,所以我可以处理我们软件套件中的几乎任何事情,无论是访问 SQL 数据库、设置我们的 .net 后端、使用 React Native 做事,还是处理 Objective-C。 这并不重要——把我放在任何地方。

你提到集成 Braze 是你在 myDNA 的第一个项目之一——你能谈谈那个项目的时间表吗?

嗯,我是在 11 月拿到的,这个过程最终花了三个月多一点的时间,不包括寒假。 一旦项目在我手中,这就开始了。 在我参与之前,有一个入职流程,他们致力于设置使用 Braze 收集哪些自定义事件和自定义属性,所以当我们开始时,所有这些东西都会准备好。 我想那是在我开始这个项目之前大约六到八周。

在开始 Braze 集成项目之前,您是否进行过任何研究?

我做了很多疯狂的研究。 我在 LAB [Learning at Braze] 上观看了大约 20 小时的视频,并阅读了如此多的文档页面——数量惊人——因为我需要了解有关这款软件的所有信息; 我怎么知道它是否有效,或者它应该做什么? 我还需要从我们的客户体验 (CX) 团队的角度了解一切,因为他们将主要拥有 Braze。 我们将如何实际使用它? 它如何与 iOS 和 Android 配合使用? 一开始,我并不确定谁将参与这个项目,如果我正在领导一个项目,我需要了解正在发生的一切,这样我才能分配工作,弄清楚一切,然后得到适当的估计。

因此,我查看了有关 Liquid 个性化、连接内容、自定义属性和自定义事件、如何集成、什么是 IP 升温以及如何进行、如何处理推送启动等方面的教程。 学习了很多关于互联内容需要注意的不同事项,例如破坏您自己的 API 的风险,或者您应该如何使用增量,而不是仅仅因为您的系统中发生了一些事情而咀嚼 4.5 亿个数据点。 在文档中,从如何设置 webhook 到 Braze API 和 SDK 的工作方式,应有尽有。

完成后,我在 Confluence 中创建了一个部分,基本上将我从 Braze 获得的所有这些信息过滤为其他开发人员的一个很好的消耗格式。 这样一来,即使他们需要在 24 小时内赶上进度,他们需要的所有信息都集中在一个中心位置。 根据我所做的所有研究,我总是构建一个庞大的文档,以图解我们与 Braze 的集成。 所以到了做这件事的时候,我觉得已经做好了准备。

你能谈谈为什么决定整合 Braze 吗?

有了 Braze,商业案例和一切都在我加入 myDNA 之前很久就完成了。 但从我的角度来看,让我们的 CX 团队掌权并真正允许他们直接与客户互动,而无需任何开发人员互动或干预,这确实有很大的好处。 我们的旧方法需要大量的开发工作来实现和允许新功能发布,这使得 CX 团队更难控制向用户发布的交互和内容。

作为该过程的一部分,我们基本上发现,在利用 Braze 时,我们必须弄清楚三个主要接触点:

  • 将 SDK 安装到我们的移动应用程序中以支持 CX 团队对消息传递的控制

  • 通过将 Braze 连接到 AWS EventBridge 来管理快速移动、时间敏感的数据

  • 通过将 Braze 与 Hightouch、FiveTran 和其他技术结合使用来处理不太紧急的数据

您能否带我们了解第一个接触点,即与 SDK 和消息传递相关的接触点?

好吧,在我们将 Braze 集成到我们的移动应用程序之前,我们一直在使用 Expo,这是我们用来包装我们的应用程序并将其部署到 Apple 的 App Store 和 Google Play 的工具。 Braze 不支持 Expo,因此在我们与 Braze 集成之前,我们必须退出 Expo 并开始使用裸工作流。 这意味着我们必须处理大量的技术债务,比如建立一个新的构建管道。 另外,在我们的例子中,我们必须集成 iOS 的 Objective-C 和 Android 的 Java,以及 React Native,以便让一切正常运行。 这是一项很大的工作,但我们内部有一个很棒的团队来提供帮助并实现这一切。 [注意:Braze 最近更新了我们的 iOS 和 Android SDK 以分别利用 Swift 和 Kotlin。]

我们部署了移动应用程序,一切正常,没有戏剧性,这很棒。 一旦我们让 Braze SDK 在我们的移动应用程序中运行,这意味着我们可以使用它来捕获其中发生的所有用户参与。 因此,当用户与系统交互时,它会触发自定义事件,并且它显然还接受帮助来通知和支持 CX 团队正在使用的所有不同消息传递渠道,如推送通知、应用内消息、内容卡等等那些好东西。

那时,我们能够将洞察后的旅程转移到 Braze。 这就是我们所说的在我们的一位客户获得 DNA 结果后发生的流程。 我们希望我们的 CX 团队能够与这些客户进行互动,当他们在膳食计划、锻炼计划等所有方面做得很好时,向他们表示祝贺。 CX 团队正在构建一些令人惊叹的画布,以启动跨推送、应用内消息、内容卡和电子邮件的不同用户旅程。

起初,我们确实在推送通知方面遇到了一些问题,与世博会弹出有关,但我们设法想出了一个非常棒的方法来使用 AWS EventBridge 解决这些问题。 因此,我们没有通过 Expo 触发推送通知,而是通过管道传输到 EventBridge 管道中,所以当 Braze 运行时,嘿,我有一个自定义事件要与我们的推送一起发送,消息会以动态内容发送出去。 这绕过了与 Expo 相关的问题,因为一旦用户有相关更新,Braze 就会拿起推送令牌,然后他们就走了。 但在将这些洞察前和洞察后的旅程迁移到 Braze 之前,一切都能够像通过 CRM 一样继续工作。

说到 EventBridge,你能谈谈你是如何将它与 Braze 结合使用的吗?

好吧,这一切都始于我思考在 Braze 方面我们需要收集哪些类型的数据。 本质上,我们必须弄清楚两个不同的数据子集。 需要尽快进入 Braze 的真正关键的东西是您及时、快速移动的数据。 另一方面,还有其他数据确实不是时间敏感的,但仍需要移植到 Braze 中。 对于缓慢移动的东西,它可以通过我们的 Hightouch 数据同步,我稍后会介绍。 但对于快速移动的数据,我们决定利用 EventBridge。

什么是快速移动的数据? 好吧,当有人注册我们的产品时,我们需要他们尽快收到来自 Braze 的欢迎电子邮件。 我们有一个注册步骤函数,它处理可以为正在注册的新用户激活的不同事物的整个管道。 作为其中的一部分,当在我们的 CRM 中设置用户时,我们需要将所有信息传递给 Braze,以便用户可以开始接收内容,例如欢迎电子邮件。 所以我们必须想出一种方法来传递这些数据。

事实证明,EventBridge 非常适合该用例。 我们创建了一个托管该 AWS 架构的新事件存储库,并且因为我们使用 AWS CDK [云开发工具包] 进行所有设置和部署,所以这样做非常容易。 我们刚刚在 AWS 中创建了一个 myDNA 事件总线,我们说过如果您想订阅它,您所要做的就是在您的 CDK 中为您正在运行的特定服务编写一个新规则,将其附加到该总线,然后对于任何撞到该总线的东西,我们将进行标准模式映射。

通过这种方法,我们运行了一个 Braze 服务,它说,嘿,我想监听关键的用户事件,比如订单更新、客户注册和一些其他特定的事情,我希望这些数据传递给 Braze——但是没有将所有这些不同的微服务绑定到 Braze。 EventBridge 使这成为可能。 另外,我们有一条双向街道。 因此,无论我们是将数据移动到 Braze 还是从 Braze 触发 webhook,它们都可以通过主要的 EventBridge 架构。

我们有一个 Braze webhook 使用的特定 Braze 入口点,它只是向 EventBridge 发送一个事件并说,嘿,我想用这些参数为这个用户启动这个特定事件。 然后无论我们坐在那里的服务是什么,都可以收听,然后订阅,然后启动他们想要的。

所以现在我们已经建立了这个很棒的架构,我们可以将东西发送到与其他一切分离的 Braze。 所以我们的注册步骤函数会触发并说,嘿,我创建了一个新用户,我们的 Braze 服务将收到该用户。 它运行一个阶跃函数,说,嘿,我要去做 XYZ,然后把它发送给 Braze。 作为其中的一部分,我们有一个回调模式——毕竟,如果 Braze 设置失败,这是一个严重的失败,因为如果没有 Braze 创建该用户,我们就无法成功完成注册。 这样,如果 Braze 任务失败,则整体注册的 step 函数失败。 这一切都由 AWS 在后台处理,这很棒。

我没有提到的是我们需要一个 Braze 的入口点。 我们希望将密钥交给 CX 团队,以便他们可以控制在我们的应用程序中触发的操作。 其中一项行动是发布见解。 那段旅程与我们的 CRM 密切相关——基本上,这是我们的参与活动,在这一天发布此见解,三天后发布此见解,等等。我们希望改变该旅程,让用户更有活力.

为了在 Braze 活动或 Canvas 中实现这一点,我们需要能够向用户展示个人见解,这意味着要找到一种方法来击中我们服务中的某个端点以输入正确的信息。 值得庆幸的是,Braze 有两个很棒的功能可以实现这一目标——webhook 和 Connected Content。

在集成过程中,我们四处涂鸦,试图弄清楚如何去做。 我偶然发现了这个来自 AWS 的视频,这实际上是我们的确切用例——如何从外部服务触发 Webhook,它会触发 EventBridge 的事件。 它最终成为一个分步视频教程,从字面上引导您了解如何创建 API 网关并设置正确的映射模板。 如果您遵循它,这种方法将让您获取主体输入,将其映射到 EventBridge 详细信息对象,然后将其发送到您的总线,仅此而已; 它现在通过 API 密钥得到了强有力的保护。 您现在有一个入口点,任何人都可以使用该身份验证以您想要的格式发送数据,并且它将触发您的事件总线。 我们就像,“这太完美了。”

关于接触点三以及您如何使用 Braze 和您的 Hightouch 数据同步,您能告诉我们什么?

第三个接触点超级简单。 它只是使用 Hightouch、Fivetran 和其他一些技术从其他位置收集数据,将其转换为与数据仓库兼容的良好格式,然后持续通过管道将其导入 Braze。

这确实适用于我之前谈到的缓慢移动的数据; 也就是说,要么拥有很重要但随着时间的推移不会变得不那么重要的东西,或者额外的元数据——你知道,比如用户的年龄组——在某个时候会被使用,但现在不需要。 因为信息不紧急,所以我们设置了它,所以同步开始并只是询问,基本上,有什么变化吗? 是的? 太好了,这里是三角洲。 不? 然后什么都不做。

最后的想法

有兴趣深入挖掘 Braze 平台的技术方面吗?Building Braze 产品博客上直接从我们的产品、设计和工程 (PDE) 组织获取独家故事、学习和见解,并通过Braze 文档探索我们产品的细节

*此转换已针对长度和清晰度进行了编辑。