Bir Geliştiriciye Sorun: myDNA Kıdemli Yazılım Geliştiricisi Elliott Millar'a Braze'i Entegre Etme, AWS EventBridge'den Yararlanma ve Proje Öncesi Araştırmaya Öncelik Verme Konusunda Sorun

Yayınlanan: 2022-04-30

Geliştiriciler, müşterilerimizin pazarlama çabalarını desteklemek için sorunsuz bir şekilde entegre olabilmelerini ve Braze platformunun avantajlarından yararlanabilmelerini sağlamada kilit bir rol oynamaktadır. Geliştiricilerin Braze ile bağlantılı olarak yaptıkları ve deneyimlerinin nasıl olduğu hakkında daha fazla bilgi edinmek için önde gelen bir genetik sağlık markası olan myDNA'da Kıdemli Yazılım Geliştiricisi olan Elliott Millar ile görüştüm. İşte söylemek zorunda olduğu şey*:

Bize biraz myDNA'dan ve oradaki rolünüzden bahseder misiniz?

myDNA, Melbourne, Avustralya merkezli bir genetik sağlık şirketidir. İnsanlara genetik sonuçlarına göre tavsiyeler veriyoruz. Müşterilerimiz bize sadece yanak sürüntülerini gönderiyor ve biz de DNA sonuçlarını işliyoruz ve onlara genetikleriyle çalışmak için DNA içgörülerini ve önerilerini veriyoruz.

myDNA, sağlık pratisyenlerinin hastalarının ilaçlarını daha doğru reçete etmelerine yardımcı olabilecek farmakogenomik ürünlerle başladı ve bu, birçok yaşamda büyük bir fark yarattı. Şimdi genetiğin diyet, egzersiz, uyku ve cilt yaşlanması gibi sağlığımızı nasıl etkilediğini gösteren çok sayıda zengin DNA araştırması var - birkaçını sayarsak - myDNA'nın artık genel bir sağlıklı yaşam ürünü de var; bu ürün, myDNA Unlocked uygulamamız aracılığıyla insanlara DNA bilgileri ve önerilerinin yanı sıra genetik sonuçlarına dayalı kişiselleştirilmiş yemek ve fitness planları sunar. Braze burada devreye giriyor. Braze'i, bu kişiselleştirilmiş içeriği müşterilerimize uygulama aracılığıyla sunmak ve onların davranışlarını değiştirmelerine ve sağlık hedeflerine ulaşmalarına yardımcı olmak için kullanıyoruz.

myDNA'da Kıdemli Yazılım Geliştiricisiyim. Ekim ayından beri bu görevdeyim ve yönettiğim ilk projelerden biri Braze'i myDNA Unlocked'a entegre etmekti. Tam kapsamlı bir geliştiriciyim, bu nedenle yazılım paketimizdeki hemen hemen her şey üzerinde çalışabilirim, ister bir SQL veritabanına girmek, .net arka uçumuzu kurmak, React Native ile bir şeyler yapmak veya Objective-C ile uğraşmak olsun. Gerçekten önemli değil - beni herhangi bir yere bırakın.

Braze'i entegre etmenin myDNA'daki ilk projelerinizden biri olduğundan bahsetmiştiniz - bu projenin zaman çizelgesinin nasıl olduğundan bahsedebilir misiniz?

Şey, Kasım ayında aldım ve süreç kış tatilleri hariç üç ay ve biraz uzun sürdü. Bu, proje benim elimdeyken başlıyor. Ben dahil olmadan önce, Braze ile hangi özel olayların ve özel niteliklerin toplandığını ayarlamak için çalıştıkları bir işe alım süreci vardı, böylece tüm bu şeyler biz başladığımızda hazırlanacaktı. Sanırım bu, projeye başlamadan yaklaşık altı ya da sekiz hafta önceydi.

Braze entegrasyon projesine başlamadan önce herhangi bir araştırma yaptınız mı?

Çılgınca bir araştırma yaptım. LAB [Learning at Braze]'de 20 saat gibi bir video izledim ve pek çok dokümantasyon sayfasını okudum—inanılmaz miktarda var—çünkü bu yazılım parçası hakkında her şeyi bilmem gerekiyordu; çalışıp çalışmadığını veya ne yapması gerektiğini başka nasıl bilebilirim? Ayrıca Braze'e öncelikle onlar sahip olacağından, müşteri deneyimi (CX) ekibimizin bakış açısından da her şeyi bilmem gerekiyordu. Aslında onu nasıl kullanacağız? iOS ve Android ile nasıl çalışır? Başlangıçta, bu projede kimin yer alacağından gerçekten emin değildim ve bir projeye liderlik ediyorsam, neler olup bittiği hakkında her şeyi bilmem gerekiyor, böylece iş atayabilir, her şeyi çözebilir ve uygun tahminler alın.

Bu yüzden Liquid kişiselleştirme, Bağlantılı İçerik, özel nitelikler ve özel olaylar, nasıl entegre edileceği, IP ısınmasının ne olduğu ve nasıl yapılacağı, push prime'a nasıl yaklaşılacağı, bu tür şeyler hakkındaki eğiticilere baktım. Bağlantılı İçerik ile, sistemlerinizde bir şeyler oluyor diye 450 milyon veri noktasını çiğnemek yerine, kendi API'lerinizi parçalama riski veya deltaları nasıl kullanmanız gerektiği gibi dikkat edilmesi gereken birçok farklı şey öğrendim. Ve belgelerde, web kancalarınızı nasıl kuracağınızdan Braze API'lerinin ve SDK'ların nasıl çalıştığına kadar her şey var.

Ve işim bittiğinde, Braze'den aldığım tüm bu bilgileri diğer geliştiriciler için güzel bir sarf malzemesi formatına temelde filtrelemek için Confluence'da bir bölüm oluşturdum. Bu şekilde, 24 saat içinde hızlanmaları gerekse bile, ihtiyaç duydukları tüm bilgiler tek bir merkezi konumda bulunuyordu. Yaptığım tüm araştırmalara dayanarak her zaman Braze ile entegrasyonumuzu gösteren büyük bir belge oluşturdum. Bu yüzden bunu yapma zamanı geldiğinde kendimi hazır hissettim.

Braze'i entegre etme kararının neden verildiğinden biraz bahseder misiniz?

Braze ile, iş vakası ve her şey benim myDNA'daki zamanımdan çok önce yapıldı. Ancak benim açımdan, CX ekibimize dizginleri vermenin ve onların müşterilerle herhangi bir geliştirici etkileşimi veya müdahalesi olmadan doğrudan etkileşim kurmalarına gerçekten izin vermenin gerçekten büyük bir faydası var. Eski yaklaşımımız, uygulamak ve yeni özelliklerin kullanıma sunulmasına izin vermek için çok fazla geliştirme çalışması gerektirmişti, bu da CX ekibinin kullanıcılara hangi etkileşimlerin ve içeriğin gönderildiğini kontrol etmesini zorlaştırıyordu.

Bu sürecin bir parçası olarak, Braze'den yararlanmaya gelince çözmemiz gereken üç ana temas noktası olduğunu gördük:

  • CX ekibinin mesajlaşma üzerindeki kontrolünü desteklemek için SDK'yı mobil uygulamamıza yükleme

  • Braze'i AWS EventBridge'e bağlayarak hızlı hareket eden, zamana duyarlı verileri yönetme

  • Braze'i Hightouch, FiveTran ve diğer teknolojilerle birlikte kullanarak daha az acil olan verileri işleme

SDK ve mesajlaşma ile ilgili ilk temas noktasında bize rehberlik edebilir misiniz?

Braze'i mobil uygulamamıza entegre etmeden önce, uygulamamızı sarmak ve Apple'ın App Store ve Google Play'de dağıtmak için kullandığımız bir araç olan Expo'yu kullanıyorduk. Braze Expo'yu desteklemiyor, bu yüzden Braze ile entegre olmadan önce Expo'yu çıkarmamız ve çıplak bir iş akışı kullanmaya başlamamız gerekiyordu. Bu, yeni bir inşa hattı kurmak gibi, üstesinden gelmemiz gereken makul miktarda teknik borç anlamına geliyordu. Ayrıca, bizim durumumuzda, işleri başlatmak ve çalıştırmak için iOS için Objective-C ve Android için Java ile React Native'i entegre etmemiz gerekiyordu. Bu büyük bir iş parçasıydı, ancak dahili olarak yardımcı olacak ve her şeyin gerçekleşmesini sağlayacak harika bir ekibimiz vardı. [ Not: Braze, sırasıyla Swift ve Kotlin'den yararlanmak için iOS ve Android SDK'larımızı yakın zamanda güncelledi.]

Mobil uygulamayı devreye aldık ve her şey işe yaradı, drama yok, bu harikaydı. Braze SDK'yı mobil uygulamamızda çalıştırdığımızda, bu, onu orada gerçekleşen tüm kullanıcı etkileşimini yakalamak için kullanabileceğimiz anlamına geliyordu. Bu nedenle, kullanıcılar sistemle etkileşime girdiğinde özel olayları tetikliyor ve ayrıca CX ekibinin kullandığı push bildirimleri, uygulama içi mesajlar, İçerik Kartları gibi tüm farklı mesajlaşma kanallarını bilgilendirmek ve güçlendirmek için açıkça yardım alıyor. o güzel şeylerden.

Bu noktada, içgörü sonrası yolculuğumuzu Braze'e taşıyabildik. Müşterilerimizden birinin DNA sonuçlarını aldıktan sonra gerçekleşen akışa biz buna diyoruz. CX ekibimizin bu müşterilerle etkileşime girebilmesini, yemek planlamalarında, antrenman planlamalarında ve tüm bu güzel şeylerde iyi bir iş çıkardıklarında onları gerçekten tebrik etmelerini istiyoruz. CX ekibi, anında iletme, uygulama içi mesajlar, İçerik Kartları ve e-postalar arasında farklı kullanıcı yolculuklarını başlatmak için bazı harika Kanvaslar oluşturuyor.

İlk başta, Expo çıkarmayla ilgili olarak push bildirimleriyle ilgili bazı sorunlarımız oldu, ancak AWS EventBridge'i kullanarak bunları ele almanın gerçekten harika bir yolunu bulmayı başardık. Bu nedenle, Expo aracılığıyla push bildirimlerini başlatmak yerine, EventBridge ardışık düzenimize boru gönderdik, bu nedenle Braze gittiğinde, hey, Push'umuzla göndermek için özel bir etkinliğim var, mesaj dinamik içerikle gönderiliyor. Bu, Expo ile ilgili sorunu atladı, çünkü bir kullanıcı ilgili bir güncellemeye sahip olur olmaz, Braze push jetonunu alacak ve gidecekler. Ancak bu Öngörü ve Öngörü Sonrası yolculuklar Braze'e taşınmadan önce, her şey CRM aracılığıyla olduğu gibi çalışmaya devam edebiliyordu.

EventBridge'den bahsetmişken, bunu Braze ile bağlantılı olarak nasıl kullandığınızdan biraz bahseder misiniz?

Her şey Braze söz konusu olduğunda ne tür verilere ihtiyaç duyacağımızı düşünürken başladı. Özünde, çözmemiz gereken iki farklı veri alt kümesi var. En kısa sürede Braze'e girmesi gereken gerçekten kritik şeyler var; bunlar sizin zamanında, hızlı hareket eden verileriniz. Öte yandan, gerçekten zamana duyarlı olmayan, ancak yine de Braze'e taşınması gereken ek veriler de var. Yavaş hareket eden şeyler için, daha sonra geleceğim Hightouch veri senkronizasyonumuzdan geçebilir. Ancak hızlı hareket eden veriler için EventBridge'den yararlanmaya karar verdik.

Hızlı hareket eden veriler nedir? Biri ürünümüz için kaydolduğunda, mümkün olan en kısa sürede Braze'den bir hoş geldin e-postası almalarını istiyoruz. Kayıt olan yeni bir kullanıcı için etkinleştirilebilecek farklı şeylerden oluşan bu boru hattının tamamını işleyen bir kayıt adımı fonksiyonumuz var. Bunun bir parçası olarak, kullanıcı CRM'imizde kurulduğunda, kullanıcının hoş geldiniz e-postası gibi içerik almaya başlayabilmesi için tüm bu bilgilere Braze'e gitmemiz gerekir. Bu yüzden bu verileri karşıya geçirmenin bir yolunu bulmalıyız.

Görünen o ki, EventBridge bu kullanım durumu için gerçekten iyi çalışıyor. Bu AWS mimarisini barındıran yeni bir olay deposu oluşturduk ve tüm kurulum ve dağıtımımız için AWS CDK [Bulut Geliştirme Kiti] kullandığımız için bunu yapmak çok kolaydı. AWS'de az önce bir myDNA olay veri yolu oluşturduk ve buna abone olmak istiyorsanız, tek yapmanız gereken, çalıştırdığınız belirli hizmet için CDK'nize yeni bir kural yazmak, onu bu veriyoluna bağlamak dedik. , ve sonra o veriyoluna çarpan herhangi bir şey için standart desen eşlemesini yapacağız.

Bu yaklaşımla, çalışan bir Braze hizmetimiz var, hey, sipariş güncellemeleri, müşteri kayıtları ve bir dizi başka özel şey gibi önemli kullanıcı olaylarını dinlemek istiyorum ve bu verilerin Braze'e iletilmesini istiyorum - ancak tüm bu farklı mikro hizmetler Braze'e bağlı olmadan. EventBridge bunu mümkün kılar. Ayrıca, çift yönlü bir caddemiz var. Bu nedenle, ister Braze'e veri taşıyalım, ister Braze'den tetiklenen web kancaları olsun, hepsi ana EventBridge mimarisinden geçebilir.

Bir Braze web kancası tarafından kullanılan Braze için, EventBridge'e bir olay gönderen ve "hey, bu kullanıcı için bu belirli olayı bu parametrelerle başlatmak istiyorum" diyen belirli bir giriş noktamız var. Ve sonra orada oturduğumuz hizmetler ne olursa olsun, onu dinleyebilir, sonra abone olabilir ve sonra istediklerini başlatabilir.

Şimdi, Braze'e diğer her şeyden ayrıştırılmış şeyler gönderebileceğimiz harika bir mimariye sahibiz. Böylece kayıt adımı fonksiyonumuz devreye girecek ve hey, yeni bir kullanıcı oluşturdum ve Braze servisimiz bunu alacak. Ve hey, XYZ yapmaya gideceğim ve sonra onu Braze'e göndereceğim diyen bir adım işlevi çalıştırıyor. Bunun bir parçası olarak, bir geri arama modelimiz var - sonuçta, Braze kurulumu başarısız olursa, bu kritik bir hatadır, çünkü Braze bu kullanıcıyı oluşturmadan kaydı başarıyla tamamlayamayız. Bu şekilde, Braze görevi başarısız olursa, genel kayıt için adım işlevi başarısız olur. Ve bunların hepsi kaputun altında AWS tarafından hallediliyor, ki bu harika.

Bahsetmediğim bir şey, Braze için bir giriş noktasına ihtiyacımız olduğuydu. Uygulamamızda hangi eylemlerin gerçekleştirildiğini kontrol edebilmeleri için anahtarları CX ekibine teslim etmek istiyorduk. Bu eylemlerden biri, içgörüleri serbest bırakmaktı. Bu yolculuk gerçekten CRM'imize bağlıydı - temelde, işte etkileşim etkinliklerimiz, bu gün bu içgörüyü yayınlayın, üç gün sonra bu içgörüyü yayınlayın vb. Ve bu yolculuğu kullanıcılar için daha dinamik olacak şekilde değiştirmek istedik. .

Bunu bir Braze kampanyasının veya Canvas'ın bir parçası olarak gerçekleştirmek için, içgörüleri kullanıcılara bireysel olarak gösterebilmemiz gerekiyordu ve bu, hizmetimizde doğru bilgileri taşımak için bir uç noktaya ulaşmanın bir yolunu bulmak anlamına geliyordu. Neyse ki Braze, bunu gerçekleştirmek için iki harika özelliğe sahip: web kancaları ve Bağlantılı İçerik.

Entegrasyon sırasında, nasıl yapacağımızı bulmaya çalışarak ortalıkta dolaşıyorduk. Ve AWS'den gelen ve kelimenin tam anlamıyla bizim tam kullanım durumumuz olan bu videoyu tesadüfen buldum - EventBridge'e bir olayı tetikleyecek harici bir hizmetten bir web kancasını nasıl tetiklersiniz. Sonunda, API ağ geçidini nasıl oluşturacağınız ve doğru eşleme şablonunu nasıl kuracağınız konusunda tam anlamıyla size yol gösteren adım adım bir video eğitimi oldu. Ve eğer onu takip ederseniz, bu yaklaşım gövde girdisini almanıza, onu bir EventBridge detay nesnesiyle eşleştirmenize ve ardından onu otobüsünüze göndermenize izin verecektir ve hepsi bu kadar; artık bir API anahtarıyla güçlü bir şekilde güvence altına alınmıştır. Artık herkesin o auth ile istediğiniz formatta veri gönderebileceği bir giriş noktanız var ve bu, olay veri yolunuza ateşlenecek. Biz de “Bu mükemmel” dedik.

Üçüncü temas noktası ve Braze ile Hightouch veri senkronizasyonunuzu nasıl kullandığınız hakkında bize ne söyleyebilirsiniz?

Üçüncü temas noktası çok basittir. Diğer konumlardan veri toplamak, onu güzel bir veri ambarı uyumlu biçime dönüştürmek ve ardından bunu sürekli olarak Braze'e aktarmak için Hightouch, Fivetran ve diğer bazı teknolojileri kullanıyor.

Bu gerçekten daha önce bahsettiğim yavaş hareket eden veriler için tasarlanmıştır; yani, ya sahip olunması önemli olan ama zamanla daha az önemli hale gelmeyen şeyler ya da bir noktada kullanılacak, ancak o anda gerekli olmayan ek meta veriler (bir kullanıcının yaş grubu gibi). Bilgiler acil olmadığı için, senkronizasyon başlayacak ve temelde bir şey değişti mi diye soracak şekilde ayarladık. Evet? Harika, işte deltalar. Numara? O zaman hiçbir şey yapma.

Son düşünceler

Braze platformunun teknik yönünü daha derinlemesine incelemekle ilgileniyor musunuz? Building Braze ürün blogunda doğrudan ürün, tasarım ve mühendislik (PDE) organizasyonumuzdan özel hikayeler, bilgiler ve bilgiler edinin ve Braze belgeleriyle ürünümüzün tüm ayrıntılarını keşfedin .

*Bu dönüşüm, uzunluk ve netlik için düzenlendi.