Întrebați un dezvoltator: dezvoltator de software senior myDNA Elliott Millar despre integrarea Braze, valorificarea AWS EventBridge și prioritizarea cercetării pre-proiect
Publicat: 2022-04-30Dezvoltatorii joacă un rol cheie în a se asigura că clienții noștri sunt capabili să se integreze fără probleme și să profite de platforma Braze pentru a-și sprijini eforturile de marketing. Pentru a afla mai multe despre munca pe care o fac dezvoltatorii în legătură cu Braze și despre cum sunt experiențele lor, m-am întâlnit cu Elliott Millar, dezvoltator senior de software la myDNA, un brand lider de sănătate genetică. Iată ce a avut de spus*:
Ne poți spune puțin despre myDNA și rolul tău acolo?
myDNA este o companie de sănătate genetică cu sediul în Melbourne, Australia. Oferim oamenilor sfaturi pe baza rezultatelor lor genetice. Clienții noștri ne trimit pur și simplu tamponul pe obraz, iar noi le procesăm rezultatele ADN și le oferim informații și recomandări despre ADN pentru a lucra cu genetica lor.
myDNA a început cu produse farmacogenomice, care pot ajuta practicienii din domeniul sănătății să prescrie medicamentele pacienților lor cu mai multă acuratețe, iar acest lucru a făcut o mare diferență pentru o mulțime de vieți. Acum există o mulțime de cercetări ADN bogate care arată modul în care genetica afectează aspecte ale stării noastre de sănătate, cum ar fi dieta, exercițiile fizice, somnul și îmbătrânirea pielii - pentru a numi câteva - așa că myDNA are acum și un produs de sănătate generală; acel produs oferă oamenilor informații și recomandări despre ADN, plus planuri personalizate de masă și fitness bazate pe rezultatele lor genetice prin aplicația noastră myDNA Unlocked. Aici intervine Braze. Folosim Braze pentru a oferi acest conținut personalizat clienților noștri prin intermediul aplicației, pentru a-i ajuta să-și schimbe comportamentele și să-și atingă obiectivele de bunăstare.
Sunt dezvoltator de software senior la myDNA. Sunt în acest rol din octombrie și unul dintre primele proiecte pe care le-am condus a fost integrarea Braze în myDNA Unlocked. Sunt un dezvoltator full-stack, așa că pot lucra la aproape orice din suita noastră de software, fie că este vorba de accesarea unei baze de date SQL, de configurarea backend-ului nostru .net, de a face lucruri cu React Native sau de a face față cu Objective-C. Nu contează cu adevărat — lasă-mă oriunde.
Ai menționat că integrarea lui Braze a fost unul dintre primele tale proiecte la myDNA — poți vorbi despre cum a fost cronologia acelui proiect?
Ei bine, l-am luat în noiembrie și procesul a ajuns să dureze trei luni și puțin, fără să includă sărbătorile de iarnă. Asta începe odată ce proiectul a fost în mâinile mele. Înainte să mă implic, a existat un proces de onboarding în care au lucrat pentru a stabili ce evenimente personalizate și atribute personalizate erau colectate cu Braze, astfel încât toate aceste lucruri să fie pregătite când am început. Cred că asta a fost cu aproximativ șase sau opt săptămâni înainte de a începe proiectul.
Ați făcut vreo cercetare înainte de a începe proiectul de integrare Braze?
Am făcut o cantitate nebună de cercetări. Am vizionat ceva de genul 20 de ore de videoclipuri pe LAB [Learning at Braze] și am citit atât de multe pagini de documentație — există o cantitate uimitoare — pentru că trebuia să știu totul despre acest software; de unde aș putea să știu dacă funcționează sau ce ar trebui să facă? De asemenea, trebuia să știu totul din perspectiva echipei noastre privind experiența clienților (CX), deoarece ei sunt cei care vor deține în primul rând Braze. Cum îl vom folosi de fapt? Cum funcționează cu iOS și Android? La început, nu eram foarte sigur cine avea să ia parte la acest proiect și, dacă conduc un proiect, trebuie să știu totul despre ceea ce se întâmplă, astfel încât să pot atribui munca, să-mi dau seama totul și obține estimări adecvate.
Așa că am consultat tutoriale despre personalizarea lichidului, conținutul conectat, atributele personalizate și evenimentele personalizate, cum să integrez, ce este încălzirea IP și cum să o faci, cum să abordezi amorsarea push, astfel de lucruri. Ați învățat o mulțime de lucruri diferite de care trebuie să fiți conștienți de conținutul conectat, cum ar fi riscul de a vă distruge propriile API-uri sau cum ar trebui să utilizați delte, în loc să explodați 450 de milioane de puncte de date doar pentru că se întâmplă lucruri în sistemele dvs. Și în documentație, există totul, de la cum să vă configurați webhook-urile la modul în care funcționează API-urile și SDK-urile Braze.
Și când am terminat, m-am dus și am creat o secțiune în Confluence pentru a filtra, practic, toate aceste informații pe care le primeam de la Braze într-un format consumabil frumos pentru ceilalți dezvoltatori. În acest fel, chiar dacă aveau nevoie să ajungă la curent în 24 de ore, toate informațiile de care aveau nevoie se aflau într-o singură locație centrală. Am creat întotdeauna un document masiv care descrie integrarea noastră cu Braze, pe baza tuturor cercetărilor pe care le-am făcut. Așa că, când a venit momentul să o fac, m-am simțit pregătită.
Puteți vorbi puțin despre motivul pentru care a fost luată decizia de a integra Braze?
Cu Braze, cazul de afaceri și totul a fost făcut cu mult înainte de a ajunge la myDNA. Dar, din perspectiva mea, există un beneficiu foarte mare în a oferi frâiele echipei noastre CX și a le permite să interacționeze direct cu clienții, fără nicio interacțiune sau intervenție a dezvoltatorilor. Vechea noastră abordare a necesitat multă muncă de dezvoltare pentru a implementa și a permite noi funcții să iasă, ceea ce a îngreunat echipa de CX să controleze interacțiunile și conținutul care se transmitea utilizatorilor.
Ca parte a acestui proces, practic am constatat că au fost trei puncte de contact principale pe care trebuia să le dăm seama când a venit să profităm de Braze:
Instalarea SDK-ului în aplicația noastră mobilă pentru a sprijini controlul echipei CX asupra mesageriei
Gestionarea datelor cu mișcare rapidă, sensibile la timp, conectând Braze la AWS EventBridge
Gestionarea datelor mai puțin urgente utilizând Braze împreună cu Hightouch, FiveTran și alte tehnologii
Ne puteți prezenta primul punct de contact, cel legat de SDK și mesagerie?
Ei bine, înainte de a integra Braze în aplicația noastră mobilă, am folosit Expo, care este un instrument pe care l-am folosit pentru a ne împacheta aplicația și a o implementa în App Store Apple și Google Play. Braze nu acceptă Expo, așa că înainte de a ne putea integra cu Braze, a trebuit să ejectăm Expo și să începem să folosim un flux de lucru simplu. Asta a însemnat o cantitate decentă de datorie tehnologică pe care a trebuit să le gestionăm, cum ar fi înființarea unei noi conducte. În plus, în cazul nostru, a trebuit să integrăm Objective-C pentru iOS și Java pentru Android, precum și React Native, pentru a pune lucrurile în funcțiune. A fost o mare parte de muncă, dar am avut o echipă grozavă în interior pentru a ajuta și a face totul să se întâmple. [ Notă: Braze a actualizat recent SDK-urile noastre pentru iOS și Android pentru a folosi Swift și, respectiv, Kotlin.]
Am implementat aplicația mobilă și totul a funcționat, fără drama, ceea ce a fost grozav. Și odată ce am rulat SDK-ul Braze în aplicația noastră mobilă, asta a însemnat că l-am putea folosi pentru a captura toată implicarea utilizatorilor care se întâmplă acolo. Deci, declanșează evenimente personalizate atunci când utilizatorii interacționează cu sistemul și, în mod evident, primește ajutor pentru a informa și a alimenta diferitele canale de mesagerie pe care echipa CX le folosește, cum ar fi notificări push, mesaje în aplicație, carduri de conținut, toate din acele lucruri bune.
În acel moment, am putut să ne mutăm călătoria post-perspectivă la Braze. Așa numim fluxul care are loc după ce unul dintre clienții noștri obține rezultatele ADN-ului. Ne dorim ca echipa noastră CX să poată interacționa cu acești clienți, să-i felicită cu adevărat atunci când fac o treabă bună în planificarea mesei, în planificarea antrenamentului și în toate acele lucruri bune. Echipa CX creează câteva pânze uimitoare pentru a începe diferite călătorii ale utilizatorilor prin push, mesaje în aplicație, carduri de conținut și e-mailuri.
Am avut câteva probleme cu notificările push la început, legate de ejectarea Expo, dar am reușit să găsim o modalitate cu adevărat minunată de a le rezolva folosind AWS EventBridge. Așadar, în loc să lansăm notificări push prin Expo, doar am introdus canalul nostru EventBridge, așa că atunci când Braze pleacă, hei, am un eveniment personalizat de trimis cu push, mesajul este trimis cu conținut dinamic. Acest lucru a ocolit problema legată de Expo, deoarece de îndată ce un utilizator are o actualizare relevantă, Braze va ridica jetonul push și va pleca. Dar înainte ca acele călătorii pre și post-Insight să fi fost migrate la Braze, totul a putut să continue să funcționeze așa cum era prin CRM.
Apropo de EventBridge, poți vorbi puțin despre cum îl folosești în legătură cu Braze?
Ei bine, totul a început când m-am gândit la ce fel de date va trebui să transmitem când era vorba de Braze. În esență, există două subseturi diferite de date pe care a trebuit să le dăm seama. Există lucrurile cu adevărat esențiale care trebuie să intre în Braze cât mai curând posibil - acestea sunt datele dvs. în timp util și care se mișcă rapid. Pe de altă parte, există și date suplimentare care într-adevăr nu sunt la fel de sensibile la timp, dar încă trebuie portate în Braze. Pentru lucrurile care se mișcă lentă, poate trece prin sincronizarea datelor Hightouch, la care voi ajunge mai târziu. Dar pentru datele care se mișcă rapid, am decis să folosim EventBridge.
Ce sunt datele cu mișcare rapidă? Ei bine, atunci când cineva se înregistrează pentru produsul nostru, avem nevoie să primească un e-mail de bun venit de la Braze cât mai curând posibil. Avem o funcție de pas de înregistrare care se ocupă de toată această conductă de lucruri diferite care ar putea fi activate pentru un utilizator nou care se înregistrează. Ca parte a acestuia, atunci când utilizatorul este configurat în CRM-ul nostru, avem nevoie de toate acele informații pentru a trece la Braze, astfel încât utilizatorul să poată începe să primească conținut, cum ar fi acel e-mail de bun venit. Deci trebuie să găsim o modalitate de a transmite aceste date.
După cum sa dovedit, EventBridge funcționează foarte bine pentru acel caz de utilizare. Am creat un nou depozit de evenimente care găzduiește acea arhitectură AWS și, pentru că folosim AWS CDK [Cloud Development Kit] pentru toată configurarea și implementarea noastră, acest lucru a fost foarte ușor. Tocmai am creat un magistral de evenimente myDNA în AWS și am spus că, dacă doriți să vă abonați la el, tot ce trebuie să faceți este să scrieți o nouă regulă în CDK-ul dvs. pentru serviciul pe care îl executați, să îl atașați la acel autobuz. , iar apoi pentru orice atinge acel autobuz, vom face maparea standard a modelului.
Cu această abordare, avem un serviciu Braze care rulează, care spune, hei, vreau să ascult evenimentele cheie ale utilizatorilor, cum ar fi actualizările comenzilor, înregistrările clienților și o mână de alte lucruri specifice și vreau ca aceste date să fie transmise la Braze - dar fără ca toate acele microservicii diferite să fie legate de Braze. EventBridge face acest lucru posibil. În plus, avem o stradă cu două sensuri. Deci, indiferent dacă mutăm date în Braze sau avem webhook-uri declanșate de la Braze, toate pot trece prin arhitectura principală EventBridge.
Avem un punct de intrare specific pentru Braze, folosit de un webhook Braze, care trimite doar un eveniment la EventBridge și spune, hei, vreau să demarez acest eveniment special pentru acest utilizator cu acești parametri. Și apoi, indiferent de serviciile pe care le avem acolo, pot asculta asta, apoi se abona și apoi începe ceea ce își doresc.
Așa că acum avem această arhitectură minunată configurată în care putem trimite lucruri la Braze care sunt decuplate de orice altceva. Deci, funcția noastră de pas de înregistrare se va declanșa și va spune, hei, am creat un nou utilizator, iar serviciul nostru Braze va primi asta. Și rulează o funcție de pas care spune, hei, o să fac XYZ și apoi o voi trimite la Braze. Ca parte a acestuia, avem un model de apel invers - la urma urmei, dacă configurarea Braze eșuează, acesta este un eșec critic, deoarece nu putem finaliza cu succes înregistrarea fără ca Braze să creeze acel utilizator. În acest fel, dacă sarcina Braze eșuează, atunci funcția pas pentru înregistrarea generală eșuează. Și totul este îngrijit sub capotă de AWS, ceea ce este grozav.
Ceva ce nu am menționat este că aveam nevoie de un punct de intrare pentru Braze. Căutăm să predăm cheile echipei CX, astfel încât să poată avea control asupra acțiunilor declanșate în aplicația noastră. Una dintre aceste acțiuni a fost eliberarea de perspective. Călătoria a fost într-adevăr legată de CRM-ul nostru – s-ar spune, practic, aici sunt evenimentele noastre de implicare, în această zi lansăm această perspectivă, trei zile mai târziu lansăm această informație etc. Și am vrut să schimbăm acea călătorie pentru a fi mai dinamică pentru utilizatori. .
Pentru ca acest lucru să se întâmple ca parte a unei campanii Braze sau Canvas, trebuia să fim capabili să prezentăm statistici la nivel individual utilizatorilor și asta însemna să găsim o modalitate de a atinge un punct final al serviciului nostru pentru a porta informațiile corecte. Din fericire, Braze are două funcții minunate pentru a face acest lucru să se întâmple — webhooks și Conținut conectat.
În timpul integrării, mâzgăleam, încercând să ne dăm seama cum să o facem. Și am dat peste acest videoclip de la AWS, care a fost literalmente cazul nostru de utilizare exact - cum declanșați un webhook de la un serviciu extern care va declanșa un eveniment la EventBridge. A ajuns să fie un tutorial video pas cu pas, care vă îndrumă literalmente prin cum să creați gateway-ul API și să configurați șablonul de mapare potrivit. Și dacă o urmați, această abordare vă va permite să luați intrarea corpului, să o mapați la un obiect de detaliu EventBridge și apoi să o trimiteți în autobuz și gata; acum este puternic securizat cu o cheie API. Acum aveți un punct de intrare către care oricine poate trimite date în formatul dorit cu acea autorizare și se va declanșa în magistrala dvs. de evenimente. Și ne-am spus: „Acesta este perfect”.
Ce ne puteți spune despre punctul de contact trei și despre cum folosiți Braze și sincronizarea datelor Hightouch?
Al treilea punct de contact este super simplu. Folosește doar Hightouch, Fivetran și alte tehnologii pentru a culege date din alte locații, pentru a le transforma într-un format frumos compatibil cu depozitul de date și apoi a le trimite în Braze în mod continuu.
Acest lucru este cu adevărat destinat datelor cu mișcare lentă despre care am vorbit mai devreme; adică lucruri care fie sunt importante, dar care nu devin mai puțin importante în timp, fie metadate suplimentare - știți, cum ar fi grupa de vârstă a unui utilizator - care vor fi folosite la un moment dat, dar nu sunt necesare în acest moment. Pentru că informațiile nu sunt urgente, le-am configurat astfel încât sincronizarea să pornească și doar întreabă, practic, s-a schimbat ceva? Da? Grozav, aici sunt deltele. Nu? Atunci nu faci nimic.
Gânduri finale
Vă interesează să aprofundați partea tehnică a platformei Braze? Obțineți povești, învățăminte și perspective exclusive direct de la organizația noastră de produse, design și inginerie (PDE) pe blogul de produse Building Braze și explorați dezavantajele produsului nostru cu documentația Braze .
*Această conversie a fost editată pentru lungime și claritate.