Zapytaj programistę: starszy programista myDNA Elliott Millar o zintegrowanie Braze, wykorzystanie AWS EventBridge i ustalenie priorytetów badań przedprojektowych

Opublikowany: 2022-04-30

Deweloperzy odgrywają kluczową rolę w zapewnianiu naszym klientom możliwości płynnej integracji i korzystania z platformy Braze w celu wspierania ich działań marketingowych. Aby dowiedzieć się więcej o pracy, jaką programiści wykonują w związku z Braze i jakie są ich doświadczenia, usiadłem z Elliottem Millarem, starszym programistą w myDNA, wiodącej marce genetycznego wellness. Oto, co miał do powiedzenia*:

Czy możesz opowiedzieć nam trochę o myDNA i swojej roli w tym systemie?

myDNA to firma zajmująca się genetycznym zdrowiem z siedzibą w Melbourne w Australii. Udzielamy ludziom porad na podstawie ich wyników genetycznych. Nasi klienci po prostu wysyłają nam wymaz z policzka, a my przetwarzamy ich wyniki DNA i przekazujemy im wgląd w DNA i zalecenia dotyczące pracy z ich genetyką.

myDNA rozpoczęło działalność od produktów farmakogenomicznych, które mogą pomóc lekarzom w dokładniejszym przepisywaniu leków swoim pacjentom, co znacznie zmieniło życie wielu osób. Obecnie istnieje wiele bogatych badań DNA pokazujących, w jaki sposób genetyka wpływa na aspekty naszego dobrego samopoczucia, takie jak dieta, ćwiczenia, sen i starzenie się skóry – żeby wymienić tylko kilka – więc myDNA ma teraz również ogólny produkt zdrowotny; ten produkt zapewnia ludziom wgląd w DNA i rekomendacje, a także spersonalizowane plany posiłków i fitness oparte na ich wynikach genetycznych za pośrednictwem naszej aplikacji myDNA Unlocked. W tym miejscu wkracza Braze. Używamy Braze, aby dostarczać spersonalizowane treści naszym klientom za pośrednictwem aplikacji, aby pomóc im zmienić swoje zachowania i osiągnąć cele zdrowotne.

Jestem starszym programistą w myDNA. Jestem w tej roli od października i jednym z pierwszych projektów, które prowadziłem, było zintegrowanie Braze z myDNA Unlocked. Jestem programistą full-stack, więc mogę pracować nad praktycznie wszystkim w naszym pakiecie oprogramowania, niezależnie od tego, czy chodzi o dostęp do bazy danych SQL, konfigurowanie naszego backendu .net, robienie rzeczy z React Native lub radzenie sobie z Objective-C. To naprawdę nie ma znaczenia – wrzuć mnie gdziekolwiek.

Wspomniałeś, że integracja Braze była jednym z twoich pierwszych projektów w myDNA – czy możesz opowiedzieć o harmonogramie tego projektu?

Cóż, odebrałem go w listopadzie i cały proces zajął trzy miesiące i trochę, nie licząc ferii zimowych. To zaczyna się, gdy projekt znalazł się w moich rękach. Zanim się zaangażowałem, był proces onboardingu, w którym pracowali nad konfiguracją niestandardowych zdarzeń i niestandardowych atrybutów gromadzonych za pomocą Braze, aby wszystkie te rzeczy były przygotowywane, gdy zaczynaliśmy. Myślę, że to było około sześciu lub ośmiu tygodni przed rozpoczęciem projektu.

Czy przeprowadziłeś jakieś badania przed rozpoczęciem projektu integracyjnego Braze?

Zrobiłem szaloną ilość badań. Obejrzałem około 20 godzin filmów na LAB [Learning at Braze] i przeczytałem tak wiele stron z dokumentacją — jest ich niesamowita ilość — ponieważ musiałem wiedzieć wszystko o tym oprogramowaniu; skąd inaczej mam wiedzieć, czy to działa lub co ma robić? Musiałem również wiedzieć wszystko z perspektywy naszego zespołu ds. obsługi klienta (CX), ponieważ to oni będą głównie właścicielami Braze. Jak właściwie zamierzamy go używać? Jak to działa z iOS i Androidem? Na początku nie byłem pewien, kto będzie brał udział w tym projekcie, a jeśli prowadzę projekt, muszę wiedzieć wszystko o tym, co się dzieje, abym mógł przydzielić pracę, wszystko wymyślić i uzyskać właściwe szacunki.

Sprawdziłem więc tutoriale na temat personalizacji Liquid, Connected Content, niestandardowych atrybutów i niestandardowych zdarzeń, jak zintegrować, czym jest ocieplenie IP i jak to zrobić, jak podejść do push priming, tego typu rzeczy. Nauczyłeś się wielu różnych rzeczy, o których należy pamiętać dzięki Connected Content, takich jak ryzyko zniszczenia własnych interfejsów API lub tego, jak powinieneś używać delt, zamiast przeżuwać 450 milionów punktów danych tylko dlatego, że coś dzieje się w twoich systemach. W dokumentacji jest wszystko, od konfiguracji webhooków po działanie interfejsów API i SDK Braze.

A kiedy skończyłem, poszedłem i stworzyłem sekcję w naszym Confluence, aby w zasadzie przefiltrować wszystkie informacje, które otrzymywałem od Braze, do przyjemnego formatu dla innych deweloperów. W ten sposób, nawet jeśli musieli przyspieszyć działanie w ciągu 24 godzin, wszystkie potrzebne informacje znajdowały się w jednym centralnym miejscu. Zawsze tworzyłem ogromny dokument, który przedstawiał schemat naszej integracji z Braze, na podstawie wszystkich badań, które przeprowadziłem. Więc kiedy nadszedł czas, aby to zrobić, poczułem się przygotowany.

Czy możesz opowiedzieć trochę o tym, dlaczego podjęto decyzję o integracji Braze?

Z Braze, uzasadnienie biznesowe i wszystko zostało zrobione na długo przed moim pobytem w myDNA. Ale z mojego punktu widzenia jest naprawdę duża korzyść w daniu naszemu zespołowi CX wodzy i umożliwieniu im bezpośredniej interakcji z klientami, bez jakiejkolwiek interakcji lub interwencji programistów. Nasze stare podejście wymagało dużo pracy programistycznej w celu wdrożenia i udostępnienia nowych funkcji, co utrudniło zespołowi CX kontrolowanie interakcji i treści przekazywanych użytkownikom.

W ramach tego procesu odkryliśmy, że istnieją trzy główne punkty kontaktowe, które musieliśmy ustalić, jeśli chodzi o wykorzystanie Braze:

  • Instalacja SDK w naszej aplikacji mobilnej w celu wsparcia kontroli zespołu CX nad przesyłaniem wiadomości

  • Zarządzanie szybko przemieszczającymi się, wrażliwymi na czas danymi poprzez połączenie Braze z AWS EventBridge

  • Obsługa mniej pilnych danych za pomocą Braze razem z Hightouch, FiveTran i innymi technologiami

Czy możesz przeprowadzić nas przez pierwszy punkt kontaktu, ten związany z pakietem SDK i wiadomościami?

Cóż, zanim zintegrowaliśmy Braze z naszą aplikacją mobilną, korzystaliśmy z Expo, które jest narzędziem, którego używaliśmy do pakowania naszej aplikacji i wdrażania jej w Apple App Store i Google Play. Braze nie obsługuje Expo, więc zanim mogliśmy zintegrować się z Braze, musieliśmy wysunąć Expo i zacząć używać zwykłego przepływu pracy. Oznaczało to przyzwoitą kwotę długu technologicznego, z którym musieliśmy się uporać, jak na przykład tworzenie nowego potoku budowy. Ponadto w naszym przypadku musieliśmy zintegrować Objective-C dla iOS i Javę dla Androida, a także React Native, aby wszystko działało. To była duża robota, ale mieliśmy świetny zespół wewnętrznie, który mógł pomóc i sprawić, by to wszystko się urzeczywistniło. [ Uwaga: firma Braze niedawno zaktualizowała nasze pakiety SDK dla systemów iOS i Android, aby wykorzystać odpowiednio Swift i Kotlin.]

Wdrożyliśmy aplikację mobilną i wszystko działało, bez dramatu, co było świetne. A kiedy już uruchomiliśmy Braze SDK w naszej aplikacji mobilnej, oznaczało to, że możemy go użyć do uchwycenia całego zaangażowania użytkowników, które się tam dzieje. Tak więc uruchamia niestandardowe zdarzenia, gdy użytkownicy wchodzą w interakcję z systemem, a także oczywiście otrzymuje pomoc w informowaniu i zasilaniu wszystkich różnych kanałów wiadomości, z których korzysta zespół CX, takich jak powiadomienia push, wiadomości w aplikacji, karty treści, wszystkie tych dobrych rzeczy.

W tym momencie mogliśmy przenieść naszą podróż po wglądzie do Braze. To właśnie nazywamy przepływem, który ma miejsce po tym, jak jeden z naszych klientów otrzyma wyniki DNA. Chcemy, aby nasz zespół CX był w stanie wchodzić w interakcje z tymi klientami, aby naprawdę gratulować im, gdy wykonują dobrą robotę w zakresie planowania posiłków, planowania treningu, wszystkich tych dobrych rzeczy. Zespół CX opracowuje niesamowite kanwy, aby rozpocząć różne podróże użytkowników poprzez push, wiadomości w aplikacji, karty treści i e-maile.

Na początku mieliśmy pewne problemy z powiadomieniami push, związanymi z wyrzucaniem Expo, ale udało nam się wymyślić naprawdę świetny sposób na ich rozwiązanie za pomocą AWS EventBridge. Tak więc, zamiast wysyłać powiadomienia wypychane przez Expo, po prostu podłączyliśmy potok do naszego potoku EventBridge, więc kiedy Braze odejdzie, hej, mam niestandardowe zdarzenie do wysłania za pomocą naszego wypychania, wiadomość jest wysyłana z dynamiczną zawartością. To ominęło problem związany z Expo, ponieważ gdy tylko użytkownik otrzyma odpowiednią aktualizację, Braze odbierze token push i odejdzie. Ale zanim te podróże Pre- i Post-Insight zostały przeniesione do Braze, wszystko było w stanie po prostu dalej działać tak, jak to było za pośrednictwem CRM.

Mówiąc o EventBridge, czy możesz trochę opowiedzieć o tym, jak używasz tego w połączeniu z Braze?

Cóż, wszystko zaczęło się, gdy zastanawiałem się, jakie dane będziemy musieli zebrać, jeśli chodzi o Braze. Zasadniczo istnieją dwa różne podzbiory danych, które musieliśmy rozgryźć. Są naprawdę krytyczne rzeczy, które muszą się dostać do Braze JAK NAJSZYBCIEJ — to Twoje aktualne, szybko przemieszczające się dane. Z drugiej strony istnieją również dodatkowe dane, które tak naprawdę nie są tak wrażliwe na czas, ale nadal muszą zostać przeniesione do Braze. W przypadku powolnych rzeczy może przejść przez naszą synchronizację danych Hightouch, do której przejdę później. Ale w przypadku szybko zmieniających się danych zdecydowaliśmy się wykorzystać EventBridge.

Czym są szybko przesyłane dane? Cóż, jeśli ktoś zarejestruje się w naszym produkcie, potrzebujemy jak najszybciej otrzymać powitalnego e-maila od Braze. Mamy funkcję kroku rejestracji, która obsługuje cały ten potok różnych rzeczy, które można aktywować dla nowego użytkownika, który się rejestruje. W ramach tego, gdy użytkownik jest skonfigurowany w naszym CRM, potrzebujemy wszystkich tych informacji, aby przejść do Braze, aby użytkownik mógł zacząć otrzymywać treści, takie jak ten powitalny e-mail. Musimy więc wymyślić sposób na przekazanie tych danych.

Jak się okazało, EventBridge działa naprawdę dobrze w tym przypadku użycia. Stworzyliśmy nowe repozytorium wydarzeń hostujące architekturę AWS, a ponieważ używamy AWS CDK [Cloud Development Kit] do całej naszej konfiguracji i wdrażania, zrobienie tego było bardzo łatwe. Właśnie utworzyliśmy magistralę zdarzeń myDNA w AWS i powiedzieliśmy, że jeśli chcesz ją zasubskrybować, wystarczy, że napiszesz nową regułę w swoim CDK dla konkretnej usługi, z której korzystasz, i dołącz ją do tej magistrali , a następnie dla wszystkiego, co trafi na tę magistralę, wykonamy standardowe mapowanie wzorców.

Dzięki takiemu podejściu mamy uruchomioną usługę Braze, która mówi: hej, chcę słuchać kluczowych zdarzeń użytkowników, takich jak aktualizacje zamówień, rejestracje klientów i kilka innych konkretnych rzeczy, i chcę, aby te dane trafiły do ​​Braze — ale bez tych wszystkich mikroserwisów powiązanych z Braze. EventBridge to umożliwia. Dodatkowo mamy dwukierunkową ulicę. Niezależnie od tego, czy przenosimy dane do Braze, czy uruchamiamy webhooki z Braze, wszystkie mogą przejść przez główną architekturę EventBridge.

Mamy określony punkt wejścia dla Braze używany przez webhook Braze, który po prostu wysyła zdarzenie do EventBridge i mówi: hej, chcę rozpocząć to konkretne zdarzenie dla tego użytkownika z tymi parametrami. A potem jakiekolwiek usługi, które tam mamy, mogą tego słuchać, a następnie subskrybować, a następnie rozpocząć to, czego chcą.

Więc teraz mamy tę niesamowitą architekturę, w której możemy wysyłać rzeczy do Braze, które są oddzielone od wszystkiego innego. Więc nasza funkcja kroku rejestracji zostanie uruchomiona i powie, hej, stworzyłem nowego użytkownika, a nasza usługa Braze to otrzyma. I uruchamia funkcję kroku, która mówi, hej, zrobię XYZ, a następnie wyślę to do Braze. W ramach tego mamy wzorzec wywołań zwrotnych — w końcu, jeśli konfiguracja Braze nie powiedzie się, jest to krytyczna awaria, ponieważ nie możemy pomyślnie zakończyć rejestracji bez utworzenia tego użytkownika przez Braze. W ten sposób, jeśli zadanie Braze nie powiedzie się, funkcja kroku dla ogólnej rejestracji nie powiedzie się. A to wszystko po prostu załatwione pod maską przez AWS, co jest świetne.

Coś, o czym nie wspomniałem, to to, że potrzebowaliśmy punktu wejścia dla Braze. Chcieliśmy przekazać klucze zespołowi CX, aby mogli mieć kontrolę nad tym, jakie działania są uruchamiane w naszej aplikacji. Jednym z tych działań było uwolnienie spostrzeżeń. Ta podróż była naprawdę powiązana z naszym CRM – można by powiedzieć, że tutaj są nasze wydarzenia związane z zaangażowaniem, tego dnia udostępnij ten wgląd, trzy dni później udostępnij ten wgląd itd. Chcieliśmy zmienić tę podróż, aby była bardziej dynamiczna dla użytkowników .

Aby było to możliwe w ramach kampanii Braze lub Canvas, musieliśmy być w stanie zaprezentować użytkownikom szczegółowe informacje indywidualnie, a to oznaczało znalezienie sposobu na trafienie w jakiś punkt końcowy w naszej usłudze w celu przekazania właściwych informacji. Na szczęście Braze ma dwie niesamowite funkcje, które to umożliwiają — webhooki i połączoną zawartość.

Podczas integracji gryzmoliliśmy się, próbując wymyślić, jak to zrobić. I natknąłem się na ten film z AWS, który był dosłownie naszym dokładnym przypadkiem użycia — jak uruchomić webhook z usługi zewnętrznej, który wyzwoli zdarzenie w EventBridge. Skończyło się na tym, że był to samouczek wideo krok po kroku, który dosłownie poprowadzi Cię przez proces tworzenia bramy API i konfigurowania odpowiedniego szablonu mapowania. A jeśli to zrobisz, to podejście pozwoli ci pobrać dane wejściowe treści, zmapować je na obiekt szczegółu EventBridge, a następnie wysłać je do autobusu i to wszystko; jest teraz mocno zabezpieczony kluczem API. Masz teraz punkt wejścia, do którego każdy może wysyłać dane w formacie, który chcesz za pomocą tego uwierzytelnienia, i zostanie on uruchomiony w Twojej magistrali zdarzeń. A my powiedzieliśmy: „To jest idealne”.

Co możesz nam powiedzieć o trzecim punkcie styku i sposobie korzystania z Braze i synchronizacji danych Hightouch?

Trzeci punkt styku jest bardzo prosty. Po prostu używa Hightouch, Fivetran i kilku innych technologii do zbierania danych z innych lokalizacji, przekształcania ich w ładny format zgodny z hurtownią danych, a następnie przesyłania ich na bieżąco do Braze.

Jest to naprawdę przeznaczone dla wolno zmieniających się danych, o których mówiłem wcześniej; to znaczy rzeczy, które są albo ważne, ale z czasem nie stają się mniej ważne, lub dodatkowe metadane — wiesz, takie jak grupa wiekowa użytkownika — które będą używane w pewnym momencie, ale nie są potrzebne w tej chwili. Ponieważ informacje nie są pilne, ustawiliśmy je tak, aby synchronizacja rozpoczęła się i po prostu zapytała, czy coś się zmieniło? TAk? Świetnie, oto delty. Nie? Wtedy nic nie rób.

Końcowe przemyślenia

Chcesz zagłębić się w techniczną stronę platformy Braze? Zapoznaj się z wyjątkowymi historiami, naukami i spostrzeżeniami bezpośrednio z naszej organizacji zajmującej się produktami, projektowaniem i inżynierią (PDE) na blogu produktu Building Braze i poznaj tajniki naszego produktu dzięki dokumentacji Braze .

*Ta konwersja została zredagowana pod kątem długości i przejrzystości.