開発者に質問する:myDNAシニアソフトウェア開発者のElliott Millarが、Brazeの統合、AWS EventBridgeの活用、プロジェクト前の調査の優先順位付けについて

公開: 2022-04-30

開発者は、お客様がBrazeプラットフォームをスムーズに統合して活用し、マーケティング活動をサポートできるようにする上で重要な役割を果たします。 開発者がBrazeに関連して行う作業とその経験について詳しく知るために、私は、主要な遺伝子ウェルネスブランドであるmyDNAのシニアソフトウェア開発者であるElliottMillarと話をしました。 これが彼が言わなければならなかったことです*:

myDNAとそこでのあなたの役割について少し教えてください。

myDNAは、オーストラリアのメルボルンを拠点とする遺伝子ウェルネス企業です。 遺伝的結果に基づいてアドバイスを提供します。 お客様は、頬スワブを送っていただくだけで、DNAの結果を処理し、DNAの洞察と遺伝学を扱うための推奨事項を提供します。

myDNAは、医療従事者が患者の薬をより正確に処方するのに役立つ薬理ゲノミクス製品から始まりました。これは、多くの生活に大きな違いをもたらしました。 現在、遺伝学がダイエット、運動、睡眠、皮膚の老化などの健康の側面にどのように影響するかを示す豊富なDNA研究がたくさんあります。そのため、myDNAには一般的な健康製品もあります。 その製品は、人々にDNAの洞察と推奨事項に加えて、myDNAUnlockedアプリを介した遺伝子の結果に基づいたパーソナライズされた食事とフィットネスの計画を提供します。 そこでBrazeが登場します。Brazeを使用して、このパーソナライズされたコンテンツをアプリを介して顧客に提供し、顧客の行動を変えて健康目標を達成できるようにします。

私はmyDNAのシニアソフトウェア開発者です。 私は10月からこの役職に就いており、私が主導した最初のプロジェクトの1つは、BrazeをmyDNAUnlockedに統合することでした。 私はフルスタック開発者なので、SQLデータベースへのアクセス、.netバックエンドのセットアップ、React Nativeでの処理、Objective-Cの処理など、ソフトウェアスイートのほとんどすべてに取り組むことができます。 それは本当に重要ではありません—どこにでも私を落としてください。

Brazeの統合はmyDNAでの最初のプロジェクトの1つであるとおっしゃいましたが、そのプロジェクトのタイムラインについてお話しいただけますか?

さて、11月に受け取りましたが、冬休みを除いて3ヶ月と少し時間がかかりました。 それは、プロジェクトが私の手に渡ったときに始まります。 私が参加する前は、Brazeで収集されるカスタムイベントとカスタム属性を設定するためのオンボーディングプロセスがありました。そのため、開始時にすべての準備が整いました。 プロジェクトを始める前の6、8週間くらいだったと思います。

Braze統合プロジェクトを開始する前に何か調査をしましたか?

私はとてつもない量の研究をしました。 私はLAB[Learningat Braze]で20時間のビデオのようなものを見て、このソフトウェアについてすべてを知る必要があったので、非常に多くのドキュメントページを読みました。 それが機能しているかどうか、またはそれが何をすることになっているのかを他にどのように知ることができますか? また、主にBrazeを所有するのはカスタマーエクスペリエンス(CX)チームであるため、カスタマーエクスペリエンス(CX)チームの観点からすべてを知る必要がありました。 実際にどのように使用するのでしょうか。 iOSとAndroidではどのように機能しますか? 最初は、誰がこのプロジェクトに参加するのかよくわかりませんでした。プロジェクトを主導している場合は、作業を割り当て、すべてを把握し、すべてを把握できるように、何が起こっているのかをすべて知る必要があります。適切な見積もりを取得します。

そこで、Liquidのパーソナライズ、接続されたコンテンツ、カスタム属性とカスタムイベント、統合方法、IPウォーミングとは何か、その方法、プッシュプライミングへのアプローチ方法などに関するチュートリアルを確認しました。 システムで何かが起こっているという理由だけで4億5000万のデータポイントをかみ砕くのではなく、独自のAPIを破壊するリスクや、デルタの使用方法など、ConnectedContentで知っておくべきさまざまなことを学びました。 また、ドキュメントには、Webhookの設定方法から、BrazeAPIとSDKの動作まですべてが含まれています。

そして、完了したら、Confluenceにセクションを作成して、Brazeから取得したこの情報をすべて、他の開発者向けの優れた消費可能な形式に基本的にフィルタリングしました。 そうすれば、24時間以内にスピードを上げる必要がある場合でも、必要なすべての情報が1か所に集中していました。 私は常に、私が行ったすべての調査に基づいて、Brazeとの統合を図解した大規模なドキュメントを作成しました。 それで、それをする時が来たとき、私は準備ができていると感じました。

Brazeを統合することが決定された理由について少し話していただけますか?

Brazeを使用すると、ビジネスケースとすべてがmyDNAに入るずっと前に行われました。 しかし、私の観点からは、CXチームに手綱を与え、開発者の介入や介入なしに顧客と直接対話できるようにすることには、非常に大きなメリットがあります。 私たちの古いアプローチでは、新しい機能を実装して公開するために多くの開発作業が必要でした。そのため、CXチームは、ユーザーに送信するインタラクションとコンテンツを制御することが困難でした。

そのプロセスの一環として、基本的に、ブレイズを利用する際に理解しなければならない3つの主要なタッチポイントがあることがわかりました。

  • SDKをモバイルアプリにインストールして、CXチームによるメッセージングの制御をサポートします

  • BrazeをAWSEventBridgeに接続することにより、動きの速い、時間に敏感なデータを管理する

  • BrazeをHightouch、FiveTran、およびその他のテクノロジーと組み合わせて使用​​することにより、緊急性の低いデータを処理する

SDKとメッセージングに関連する最初のタッチポイントについて説明していただけますか?

さて、Brazeをモバイルアプリに統合する前は、Expoを使用していました。これは、アプリをラップしてAppleのAppStoreとGooglePlayにデプロイするために使用したツールです。 BrazeはExpoをサポートしていないため、Brazeと統合する前に、Expoを取り出して、ベアワークフローの使用を開始する必要がありました。 これは、新しいビルドパイプラインを設定するなど、処理しなければならないかなりの量の技術的負債を意味しました。 さらに、私たちの場合、iOS用のObjective-CとAndroid用のJava、そしてReact Nativeを統合して、物事を稼働させる必要がありました。 それは大変な作業でしたが、すべてを実現するために社内に素晴らしいチームがありました。 [注:Brazeは最近iOSとAndroidのSDKを更新して、それぞれSwiftとKotlinを活用しました。]

私たちはモバイルアプリを展開しましたが、それはすべて機能しました。ドラマはありませんでした。これは素晴らしいことでした。 また、モバイルアプリでBraze SDKを実行すると、そこで発生するすべてのユーザーエンゲージメントをキャプチャするために使用できるようになります。 そのため、ユーザーがシステムを操作しているときにカスタムイベントが発生します。また、プッシュ通知、アプリ内メッセージ、コンテンツカードなど、CXチームが使用しているさまざまなメッセージングチャネルすべてに情報を提供し、電力を供給するための支援も受けていることは明らかです。その良いものの。

その時点で、洞察後の旅をブレイズに移すことができました。 これが、お客様の1人がDNAの結果を取得した後に発生するフローと呼ばれるものです。 私たちは、CXチームがそれらの顧客と対話できるようにし、彼らが食事の計画、トレーニングの計画、その他すべての良いことで良い仕事をしているときに本当に祝福することを望んでいます。 CXチームは、プッシュ、アプリ内メッセージ、コンテンツカード、および電子メールにわたるさまざまなユーザージャーニーを開始するために、いくつかのすばらしいキャンバスを構築しています。

Expoの排出に関連して、最初はプッシュ通知にいくつかの問題がありましたが、AWSEventBridgeを使用してそれらに対処するための本当に素晴らしい方法を思いつくことができました。 つまり、Expoを介してプッシュ通知を発行する代わりに、EventBridgeパイプラインにパイプするだけなので、Brazeが実行されると、プッシュで送信するカスタムイベントがあり、メッセージは動的コンテンツで送信されます。 これにより、Expoに関連する問題が回避されました。これは、ユーザーが関連する更新を取得するとすぐに、Brazeがプッシュトークンを取得して離れてしまうためです。 しかし、これらのインサイト前とインサイト後の旅がBrazeに移行される前は、CRMを介した場合と同じようにすべてが機能し続けることができました。

EventBridgeと言えば、Brazeとの関連でそれをどのように使用しているかについて少し話していただけますか?

さて、それはすべて、Brazeに関してどのような種類のデータを取得する必要があるかを考えていたときに始まりました。 本質的に、私たちが理解しなければならなかったデータの2つの異なるサブセットがあります。 Braze ASAPに入る必要のある本当に重要なものがあります。それは、タイムリーで動きの速いデータです。 一方、実際には時間に敏感ではないが、それでもBrazeに移植する必要がある追加のデータもあります。 動きの遅いものについては、後で説明するHightouchデータ同期を通過できます。 ただし、動きの速いデータについては、EventBridgeを利用することにしました。

動きの速いデータとは何ですか? さて、誰かが私たちの製品に登録するとき、私たちは彼らにできるだけ早くブレイズからウェルカムメールを受け取る必要があります。 登録する新しいユーザーに対してアクティブ化できるさまざまなもののパイプライン全体を処理する登録ステップ関数があります。 その一環として、ユーザーがCRMで設定されたときに、ユーザーがウェルカムメールなどのコンテンツの受信を開始できるように、すべての情報をBrazeに転送する必要があります。 したがって、そのデータを伝達する方法を理解する必要があります。

結局のところ、EventBridgeはそのユースケースで非常にうまく機能します。 そのAWSアーキテクチャをホストする新しいイベントリポジトリを作成しました。すべてのセットアップとデプロイにAWSCDK[Cloud Development Kit]を使用しているため、これを行うのは非常に簡単でした。 AWSでmyDNAイベントバスを作成しました。サブスクライブする場合は、実行している特定のサービスのCDKに新しいルールを記述し、そのバスに接続するだけです。 、次に、そのバスにヒットするものについては、標準のパターンマッピングを実行します。

このアプローチでは、Brazeサービスを実行しています。つまり、注文の更新、顧客登録、その他のいくつかの特定のイベントなどの主要なユーザーイベントをリッスンしたいのですが、そのデータをBrazeに渡してもらいたいのですが。これらのさまざまなマイクロサービスがすべてBrazeに関連付けられることはありません。 EventBridgeはそれを可能にします。 さらに、双方向の道があります。 したがって、データをBrazeに移動する場合でも、BrazeからWebhookを起動する場合でも、それらはすべてメインのEventBridgeアーキテクチャを通過できます。

Braze Webhookで使用されるBrazeの特定のエントリポイントがあります。これは、イベントをEventBridgeに送信し、これらのパラメーターを使用してこのユーザーのこの特定のイベントを開始したいと言います。 そして、私たちがそこに座っているサービスが何であれ、それを聞いて、サブスクライブして、彼らが望むものを開始することができます。

これで、他のすべてから切り離されたものをBrazeに送信できる、この素晴らしいアーキテクチャがセットアップされました。 したがって、登録ステップ関数が起動し、「ねえ、私は新しいユーザーを作成しました」と言い、Brazeサービスがそれを受け取ります。 そして、それは、「ねえ、私はXYZを実行し、それをBrazeに送信する」というステップ関数を実行します。 その一部として、コールバックパターンがあります。結局、Brazeのセットアップが失敗した場合、Brazeがそのユーザーを作成しないと登録を正常に完了できないため、これは重大な失敗です。 このように、ブレイズタスクが失敗すると、全体的な登録のステップ関数が失敗します。 そして、それはすべてAWSによって内部で処理されているだけです。これは素晴らしいことです。

私が言及していないことは、Brazeのエントリポイントが必要だったということです。 私たちは、CXチームにキーを渡して、アプリで実行されるアクションを制御できるようにすることを検討していました。 それらのアクションの1つは、洞察を解放することでした。 その旅は本当に私たちのCRMに結びついていました。つまり、基本的に、これが私たちのエンゲージメントイベントであり、この日にこの洞察をリリースし、3日後にこの洞察をリリースするなどです。そして私たちはその旅をユーザーにとってよりダイナミックになるように変更したかったのです。

BrazeキャンペーンまたはCanvasの一部としてそれを実現するには、ユーザーに個別に洞察を示すことができる必要がありました。つまり、サービスのエンドポイントに到達して適切な情報を移植する方法を見つける必要がありました。 ありがたいことに、Brazeにはそれを実現するための2つの素晴らしい機能があります。WebhookとConnectedContentです。

統合中、私たちはそれを行う方法を見つけようとしていたずら書きをしていました。 そして、私はAWSからのこのビデオに出くわしました。これは、文字通り私たちの正確なユースケースでした。EventBridgeへのイベントをトリガーする外部サービスからWebhookをどのように起動しますか。 最終的には、APIゲートウェイを作成し、適切なマッピングテンプレートを設定する方法を文字通り説明するステップバイステップのビデオチュートリアルになりました。 そして、それに従うと、このアプローチでは、ボディ入力を取得し、それをEventBridge詳細オブジェクトにマップしてから、バスに送信することができます。これで完了です。 APIキーで強力に保護されるようになりました。 これで、誰でもその認証を使用して必要な形式でデータを送信できるエントリポイントが作成され、イベントバスが起動します。 そして、私たちは「これは完璧だ」と思っていました。

タッチポイント3について、またBrazeとHightouchデータ同期をどのように使用しているかについて教えてください。

3番目のタッチポイントは非常にシンプルです。 Hightouch、Fivetran、およびその他のテクノロジーを使用して、他の場所からデータを収集し、それを優れたデータウェアハウス互換形式に変換し、それを継続的にBrazeにパイプします。

これは、前に説明した動きの遅いデータを対象としています。 つまり、持つことが重要であるが、時間の経過とともにそれほど重要ではなくなることのないもの、またはある時点で使用されるが現時点では必要とされない追加のメタデータ(ユーザーの年齢層など)。 情報は緊急ではないので、同期が開始され、基本的に何か変更があったかどうかを尋ねるだけの設定になっています。 はい? 素晴らしい、ここにデルタがあります。 いいえ? その後、何もしません。

最終的な考え

Brazeプラットフォームの技術的な側面を深く掘り下げることに興味がありますか? Building Braze製品ブログで製品、設計、エンジニアリング(PDE)組織から直接、独占的なストーリー、学習、洞察を入手し、 Brazeドキュメントを使用して製品の詳細を調べてください

*この変換は、長さと明確さのために編集されています。