Tanya Pengembang: Pengembang Perangkat Lunak Senior myDNA Elliott Millar tentang Mengintegrasikan Braze, Memanfaatkan AWS EventBridge, dan Memprioritaskan Riset Pra-Proyek
Diterbitkan: 2022-04-30Pengembang memainkan peran kunci dalam memastikan bahwa pelanggan kami dapat dengan lancar mengintegrasikan dan memanfaatkan platform Braze untuk mendukung upaya pemasaran mereka. Untuk mempelajari lebih lanjut tentang pekerjaan yang dilakukan pengembang sehubungan dengan Braze dan seperti apa pengalaman mereka, saya duduk bersama Elliott Millar, Pengembang Perangkat Lunak Senior di myDNA, merek kesehatan genetik terkemuka. Inilah yang dia katakan *:
Bisakah Anda ceritakan sedikit tentang myDNA dan peran Anda di sana?
myDNA adalah perusahaan kesehatan genetik yang berbasis di Melbourne, Australia. Kami memberikan saran kepada orang-orang berdasarkan hasil genetik mereka. Pelanggan kami cukup mengirimkan usap pipi mereka dan kami memproses hasil DNA mereka dan memberi mereka wawasan dan rekomendasi DNA mereka untuk bekerja dengan genetika mereka.
myDNA dimulai dengan produk farmakogenomik, yang dapat membantu praktisi kesehatan meresepkan obat pasien mereka dengan lebih akurat, dan ini telah membuat perbedaan besar bagi banyak kehidupan. Sekarang ada banyak penelitian DNA kaya yang menunjukkan bagaimana genetika memengaruhi aspek kesehatan kita seperti diet, olahraga, tidur, dan penuaan kulit—untuk beberapa nama—jadi myDNA sekarang juga memiliki produk kesehatan umum; produk itu memberi orang wawasan dan rekomendasi DNA mereka, ditambah rencana makan dan kebugaran yang dipersonalisasi berdasarkan hasil genetik mereka melalui aplikasi myDNA Unlocked kami. Di sinilah Braze masuk. Kami menggunakan Braze untuk menyajikan konten yang dipersonalisasi ini kepada pelanggan kami melalui aplikasi untuk membantu mereka mengubah perilaku mereka dan mencapai tujuan kesehatan mereka.
Saya Pengembang Perangkat Lunak Senior di myDNA. Saya telah berperan sejak Oktober dan salah satu proyek pertama yang saya pimpin adalah mengintegrasikan Braze ke myDNA Unlocked. Saya seorang full-stack developer, jadi saya bisa mengerjakan hampir semua hal di software suite kami, apakah itu mengenai database SQL, menyiapkan .net backend kami, melakukan sesuatu dengan React Native, atau berurusan dengan Objective-C. Itu tidak terlalu penting—turunkan aku di mana pun.
Anda menyebutkan bahwa mengintegrasikan Braze adalah salah satu proyek pertama Anda di myDNA—dapatkah Anda berbicara tentang seperti apa garis waktu proyek itu?
Yah, saya mengambilnya pada bulan November dan prosesnya akhirnya memakan waktu tiga bulan dan sedikit, tidak termasuk liburan musim dingin. Itu dimulai setelah proyek ada di tangan saya. Sebelum saya terlibat, ada proses orientasi di mana mereka bekerja untuk mengatur acara khusus dan atribut khusus apa yang dikumpulkan dengan Braze, jadi semua hal itu akan disiapkan saat kami mulai. Saya pikir itu sekitar enam atau delapan minggu sebelum saya memulai proyek.
Apakah Anda melakukan riset sebelum memulai proyek integrasi Braze?
Saya melakukan penelitian yang gila-gilaan. Saya menonton sekitar 20 jam video di LAB [Learning at Braze] dan membaca begitu banyak halaman dokumentasi—ada jumlah yang luar biasa—karena saya perlu mengetahui segalanya tentang perangkat lunak ini; bagaimana lagi saya tahu apakah itu berfungsi, atau apa yang seharusnya dilakukan? Saya juga perlu mengetahui segalanya dari sudut pandang tim pengalaman pelanggan (CX) kami, karena merekalah yang terutama akan memiliki Braze. Bagaimana sebenarnya kita akan menggunakannya? Bagaimana cara kerjanya dengan iOS dan Android? Pada awalnya, saya tidak begitu yakin siapa yang akan mengambil bagian dalam proyek ini, dan jika saya memimpin sebuah proyek, saya perlu tahu segalanya tentang apa yang terjadi sehingga saya dapat menugaskan pekerjaan, mencari tahu semuanya, dan mendapatkan perkiraan yang tepat.
Jadi saya melihat tutorial tentang Personalisasi Cair, Konten Terhubung, atribut khusus dan acara khusus, cara mengintegrasikan, apa itu pemanasan IP dan bagaimana melakukannya, cara mendekati push priming, hal-hal semacam itu. Mempelajari banyak hal berbeda yang harus diperhatikan dengan Konten Terhubung, seperti risiko menghancurkan API Anda sendiri, atau bagaimana Anda harus menggunakan delta, daripada mengunyah 450 juta titik data hanya karena hal-hal terjadi di sistem Anda. Dan dalam dokumentasi, ada segalanya mulai dari cara menyiapkan webhook hingga cara kerja Braze API dan SDK.
Dan ketika saya selesai, saya pergi dan membuat bagian di Confluence kami untuk menyaring semua info yang saya dapatkan dari Braze ke dalam format konsumsi yang bagus untuk pengembang lain. Dengan begitu, bahkan jika mereka perlu mempercepat dalam 24 jam, semua informasi yang mereka butuhkan ada di satu lokasi pusat. Saya selalu membuat dokumen besar yang menggambarkan integrasi kami dengan Braze, berdasarkan semua penelitian yang telah saya lakukan. Jadi ketika saatnya tiba untuk melakukannya, saya merasa siap.
Bisakah Anda berbicara sedikit tentang mengapa keputusan dibuat untuk mengintegrasikan Braze?
Dengan Braze, kasus bisnis dan semuanya dilakukan jauh sebelum waktu saya di myDNA. Tetapi dari sudut pandang saya, ada manfaat yang sangat besar dalam memberikan kendali kepada tim CX kami dan benar-benar memungkinkan mereka untuk berinteraksi dengan pelanggan secara langsung, tanpa interaksi atau intervensi pengembang. Pendekatan lama kami membutuhkan banyak pekerjaan pengembangan untuk diterapkan dan memungkinkan fitur baru diluncurkan, yang mempersulit tim CX untuk mengontrol interaksi dan konten apa yang akan diberikan kepada pengguna.
Sebagai bagian dari proses itu, pada dasarnya kami menemukan bahwa ada tiga titik kontak utama yang harus kami ketahui saat memanfaatkan Braze:
Memasang SDK ke dalam aplikasi seluler kami untuk mendukung kontrol tim CX atas pengiriman pesan
Mengelola data yang bergerak cepat dan sensitif terhadap waktu dengan menghubungkan Braze ke AWS EventBridge
Menangani data yang kurang mendesak dengan menggunakan Braze bersama dengan Hightouch, FiveTran, dan teknologi lainnya
Bisakah Anda memandu kami melalui titik kontak pertama itu, yang terkait dengan SDK dan perpesanan?
Nah, sebelum kami mengintegrasikan Braze ke dalam aplikasi seluler kami, kami telah menggunakan Expo, yang merupakan alat yang kami gunakan untuk membungkus aplikasi kami dan menyebarkannya ke App Store Apple dan Google Play. Braze tidak mendukung Expo, jadi sebelum kami dapat berintegrasi dengan Braze, kami harus mengeluarkan Expo dan mulai menggunakan alur kerja kosong. Itu berarti jumlah utang teknologi yang layak yang harus kami tangani, seperti menyiapkan jalur pembangunan baru. Plus, dalam kasus kami, kami harus mengintegrasikan Objective-C untuk iOS dan Java untuk Android, serta React Native, untuk menyiapkan dan menjalankan semuanya. Itu adalah pekerjaan besar, tetapi kami memiliki tim internal yang hebat untuk membantu dan mewujudkan semuanya. [ Catatan: Braze baru-baru ini memperbarui SDK iOS dan Android kami untuk masing-masing memanfaatkan Swift dan Kotlin.]
Kami menerapkan aplikasi seluler dan semuanya berfungsi, tidak ada drama, yang luar biasa. Dan begitu kami menjalankan Braze SDK di aplikasi seluler kami, itu berarti kami dapat menggunakannya untuk menangkap semua interaksi pengguna yang terjadi di sana. Jadi, ini memicu peristiwa khusus saat pengguna berinteraksi dengan sistem, dan juga jelas menerima bantuan untuk menginformasikan dan memberi daya pada semua saluran perpesanan berbeda yang digunakan tim CX, seperti pemberitahuan push, pesan dalam aplikasi, Kartu Konten, semua dari barang bagus itu.
Pada saat itu, kami dapat memindahkan perjalanan pasca-wawasan kami ke Braze. Itulah yang kami sebut aliran yang terjadi setelah salah satu pelanggan kami mendapatkan hasil DNA mereka. Kami ingin tim CX kami dapat berinteraksi dengan pelanggan tersebut, untuk benar-benar memberi selamat kepada mereka ketika mereka melakukan pekerjaan dengan baik dalam perencanaan makan mereka, perencanaan latihan mereka, semua hal bagus itu. Tim CX sedang membangun beberapa Kanvas luar biasa untuk memulai perjalanan pengguna yang berbeda di seluruh push, pesan dalam aplikasi, Kartu Konten, dan email.
Kami memang memiliki beberapa masalah dengan pemberitahuan push pada awalnya, terkait dengan penolakan Expo, tetapi kami berhasil menemukan cara yang sangat mengagumkan untuk mengatasinya menggunakan AWS EventBridge. Jadi, alih-alih menembakkan pemberitahuan push melalui Expo, kami hanya menyalurkan ke saluran EventBridge kami, jadi ketika Braze pergi, hei, saya memiliki acara khusus untuk dikirim dengan push kami, pesan dikirim dengan konten dinamis. Itu melewati masalah yang terkait dengan Expo, karena segera setelah pengguna memiliki pembaruan yang relevan, Braze akan mengambil token push dan pergi. Namun sebelum perjalanan Pra dan Pasca Wawasan tersebut dimigrasikan ke Braze, semuanya dapat tetap berfungsi sebagaimana adanya melalui CRM.
Berbicara tentang EventBridge, dapatkah Anda berbicara sedikit tentang bagaimana Anda menggunakannya sehubungan dengan Braze?
Yah, semuanya dimulai ketika saya memikirkan jenis data apa yang perlu kami tarik ketika datang ke Braze. Intinya, ada dua himpunan bagian data yang berbeda yang harus kami cari tahu. Ada hal-hal yang sangat penting yang perlu masuk ke Braze ASAP—yaitu data Anda yang bergerak cepat dan tepat waktu. Di sisi lain, ada juga data tambahan yang sebenarnya tidak terlalu sensitif terhadap waktu, tetapi masih perlu di-porting ke Braze. Untuk hal-hal yang bergerak lambat, itu bisa melalui sinkronisasi data Hightouch kami, yang akan saya bahas nanti. Namun untuk data yang bergerak cepat, kami memutuskan untuk memanfaatkan EventBridge.
Apa itu data yang bergerak cepat? Nah, ketika seseorang mendaftar untuk produk kami, kami membutuhkan mereka untuk menerima email selamat datang dari Braze sesegera mungkin. Kami memiliki fungsi langkah pendaftaran yang menangani keseluruhan saluran ini dari berbagai hal yang dapat diaktifkan untuk pengguna baru yang mendaftar. Sebagai bagian dari itu, ketika pengguna diatur di CRM kami, kami memerlukan semua informasi itu untuk pergi ke Braze, sehingga pengguna dapat mulai menerima konten, seperti email selamat datang. Jadi kita harus mencari cara untuk menyampaikan data itu.
Ternyata, EventBridge bekerja sangat baik untuk kasus penggunaan itu. Kami membuat repositori peristiwa baru yang menghosting arsitektur AWS itu, dan karena kami menggunakan AWS CDK [Cloud Development Kit] untuk semua penyiapan dan penerapan kami, melakukannya sangat mudah. Kami baru saja membuat bus acara myDNA di AWS, dan kami mengatakan bahwa jika Anda ingin berlangganan, yang harus Anda lakukan hanyalah menulis aturan baru di CDK Anda untuk layanan tertentu yang Anda jalankan, pasangkan ke bus itu , lalu untuk apa pun yang mengenai bus itu, kami akan melakukan pemetaan pola standar.
Dengan pendekatan ini, kami menjalankan layanan Braze yang mengatakan, hei, saya ingin mendengarkan peristiwa pengguna utama seperti pembaruan pesanan, pendaftaran pelanggan, dan beberapa hal spesifik lainnya, dan saya ingin data itu diteruskan ke Braze—tetapi tanpa semua layanan mikro yang berbeda itu diikat ke Braze. EventBridge memungkinkan hal itu. Plus, kami memiliki jalan dua arah. Jadi, apakah kita memindahkan data ke Braze atau membuat webhook diaktifkan dari Braze, semuanya dapat melalui arsitektur EventBridge utama.
Kami memiliki titik masuk khusus untuk Braze yang digunakan oleh webhook Braze, yang baru saja mengirimkan acara ke EventBridge dan berkata, hei, saya ingin memulai acara khusus ini untuk pengguna ini dengan parameter ini. Dan kemudian layanan apa pun yang kami miliki di sana dapat mendengarkannya, kemudian berlangganan dan kemudian memulai apa yang mereka inginkan.
Jadi sekarang kami memiliki arsitektur yang luar biasa yang diatur di mana kami dapat mengirim barang ke Braze yang dipisahkan dari yang lainnya. Jadi fungsi langkah pendaftaran kami akan menyala dan berkata, hei, saya membuat pengguna baru, dan layanan Braze kami akan menerimanya. Dan itu menjalankan fungsi langkah yang mengatakan, hei, saya akan melakukan XYZ dan kemudian mengirimkannya ke Braze. Sebagai bagian dari itu, kami memiliki pola panggilan balik—setelah semua, jika pengaturan Braze gagal, itu adalah kegagalan kritis, karena kami tidak dapat berhasil menyelesaikan pendaftaran tanpa Braze membuat pengguna itu. Dengan cara ini, jika tugas Braze gagal, maka fungsi langkah untuk pendaftaran keseluruhan gagal. Dan itu semua ditangani oleh AWS, yang sangat bagus.
Sesuatu yang belum saya sebutkan adalah bahwa kami membutuhkan titik masuk untuk Braze. Kami ingin menyerahkan kunci ke tim CX sehingga mereka dapat mengontrol tindakan apa yang dilakukan di aplikasi kami. Salah satu tindakan itu adalah melepaskan wawasan. Perjalanan itu benar-benar terkait dengan CRM kami—pada dasarnya, inilah acara keterlibatan kami, pada hari ini rilis wawasan ini, tiga hari kemudian rilis wawasan ini, dll. Dan kami ingin mengubah perjalanan itu menjadi lebih dinamis bagi pengguna .
Untuk mewujudkannya sebagai bagian dari kampanye Braze atau Canvas, kami harus dapat menampilkan wawasan secara individual kepada pengguna, dan itu berarti menemukan cara untuk mencapai titik akhir dalam layanan kami untuk memasukkan informasi yang tepat. Untungnya, Braze memiliki dua fitur luar biasa untuk mewujudkannya—webhook dan Konten Terhubung.
Selama integrasi, kami mencoret-coret, mencoba mencari cara untuk melakukannya. Dan saya menemukan video ini dari AWS yang benar-benar merupakan kasus penggunaan kami yang sebenarnya—bagaimana cara mengaktifkan webhook dari layanan eksternal yang akan memicu peristiwa ke EventBridge. Itu akhirnya menjadi tutorial video langkah-demi-langkah yang benar-benar memandu Anda melalui cara membuat gateway API dan menyiapkan template pemetaan yang tepat. Dan jika Anda mengikutinya, pendekatan ini akan membiarkan Anda mengambil input tubuh, memetakannya ke objek detail EventBridge dan kemudian mengirimkannya ke bus Anda dan hanya itu; sekarang sangat diamankan dengan kunci API. Anda sekarang memiliki titik masuk tempat siapa pun dapat mengirim data dalam format yang Anda inginkan dengan auth itu, dan itu akan diaktifkan ke bus acara Anda. Dan kami seperti, "Ini sempurna."
Apa yang dapat Anda ceritakan kepada kami tentang titik sentuh tiga dan bagaimana Anda menggunakan Braze dan sinkronisasi data Hightouch Anda?
Titik kontak ketiga sangat sederhana. Ini hanya menggunakan Hightouch, Fivetran, dan beberapa teknologi lain untuk mengumpulkan data dari lokasi lain, mengubahnya menjadi format yang kompatibel dengan gudang data, dan kemudian menyalurkannya ke Braze secara berkelanjutan.
Ini benar-benar ditujukan untuk data yang bergerak lambat yang saya bicarakan sebelumnya; yaitu, hal-hal yang penting untuk dimiliki tetapi tidak menjadi kurang penting untuk dimiliki seiring waktu, atau metadata tambahan—Anda tahu, seperti kelompok usia pengguna—yang akan digunakan pada titik tertentu tetapi tidak diperlukan pada saat itu. Karena informasinya tidak mendesak, kami telah menyiapkannya sehingga sinkronisasi dimulai dan hanya bertanya, pada dasarnya, apakah ada yang berubah? Ya? Bagus, ini delta-nya. Tidak? Kemudian tidak melakukan apa-apa.
Pikiran Akhir
Tertarik untuk menggali lebih dalam sisi teknis platform Braze? Dapatkan cerita, pembelajaran, dan wawasan eksklusif langsung dari organisasi produk, desain, dan teknik (PDE) kami di blog produk Building Braze dan jelajahi seluk beluk produk kami dengan dokumentasi Braze .
*Konversi ini telah diedit agar panjang dan jelas.