clickSomo

Infunnelak eta aktibatzaileak

Infunnela grafiko bat da. Exekuzio bat errenkada bat da. Itxaron bat denbora bat da.

Hori da eredu osoa, eta produktu honek dituen zailtasun guztiak hiru esaldi horietatik sortzen dira. Ziharreko infunnel bat editatzea segurua da horiengatik. Saiakera batek ezin du bikoiztu bidalketa horiengatik. Asteartean harpidetza utzi duen pertsonak ez du ezer entzuten ostegunean horiengatik.

Zer gertatzen den benetan exekutatzen denean

Infunnel bat argitaratzeak bertsio aldaezin bat idazten du. Norbait sartzen da, eta errenkada bat agertzen da: exekuzio bat, kontaktu honentzat, bertsio horri lotuta, uneko nodoa, esnatze-ordu bat eta bere testuingurua dituela.

Langile batek esnatze-ordua igarotako exekuzioak mailegatzen ditu, SKIP LOCKED erabiliz eskuratzen, bi langilek ez dezaten bera hartu. Nodoak exekutatzen ditu itxaron bat edo amaiera-puntu bat topatu arte, eta orduan hurrengo esnatze-ordua idatzi eta askatzen du.

Nodo bat exekuzioaren, kontaktuaren eta nodoaren funtzio puru bat da — eta bere efektuak transakzio berean egiten dute commit exekuzioaren aurrerapenarekin. Propietate bakar horrek egiten du saiakera bat segurua. "bidali" eta "aurreratu" arteko erdi segundoko tartean hil den langileak biak edo bata ere ez uzten du, inoiz bakarra.

Eta aplikazioak ematen duelako denbora, datu-baseak ez, orain idatzitako errenkada bat orain da exijitzekoa. Datu-basearen erlojura lehenesteko irizpidea duen programazio-zutabe bat ez da oraindik exijitzekoa idatzi den unean bertan, eta sortu zuen tiki bera galtzen du — mezu bat ordu bat berandu arte ezer diruditen akatsa.

Langilearen tiki batExekuzioa
  • 1Maileguawake_at <= now(), FOR UPDATE SKIP LOCKED. Mailegurik gabeko ilara bat lehenespenez bidalketa bikoiztuak egiten ditu.
  • 2ExekutatuNodoak ordenan, itxaron bat edo amaiera-puntu bat arte. Bakoitzak urrats bat idazten du: zer erabaki zuen, zer eman zuen.
  • 3Egin commitEfektuak eta aurrerapena, transakzio bakarrean. Hau da trikimailu osoa.
  • 4Lo egiten duHurrengo wake_at idatzita. Ez dago oraindik beherako errenkadarik, eta ez dago beharrik.

Exekuzio bat kontaktu eta bertsio bakoitzeko

Hamalau aktibatzaile

Zerrek abiarazi dezake exekuzio bat

Hauetako batzuk hi egiten dituzun gauzak dira. Gehienak bezeroak egiten ditu, edo ez du egiten — eta ekintza baten falta hura bera bezain aktibatzaile ona da.

Iristen dira

form_submit, list_join, contact_created, tag_added eta segment_enter. Segmentu bat predikatu bizi bat da, beraz "segmentuan sartzen da" esaldiak adierazi dezakezun "bihan da" bakoitza hartzen du — hiru eskaera, laurogeita hamar egun isilik, atalase batetik gorako gastua.

Zerbait egiten dute

Gunearen snippet-etik datorren page_visit, message_opened, link_clicked, booking_made eta payment_made. Mezu bat irekitzea bera kontaktuaren gertaera bat da, beraz infunnel batek bidali zuen azkenari emandako erantzunaren zain egon daiteke.

Denbora, edo hi bera

date_field desplazamendu batekin — urtebetetze bat, berritze bat, "duela urte bat", zazpi egun lehenago edo hiru egun geroago. schedule errepikakorrentzat. manual hi erabakitzen duzulako bidaltzen duzun iragarpenarentzat.

Hire aplikazioa

api_event hire kodetik hire tokenarekin argitaratzen duzun gertaera pertsonalizatu bat da. Hire produktuak dakien edozer aktibatzaile bihurtzen da: aktibatua, lankide bat gonbidatua, muga joa, ezeztatua, esportatua. Hau da posta-tresna bat hire produktuaren zati bihurtzen duena.

Berriz sartzea, behin erabakita

Infunnel bat berriz sartzekoa da edo ez da, eta datu-baseak betearazten du: exekuzio bat kontaktu eta infunnel bakoitzeko, bestela esan ezean. Trigger berak segundu berean bi aldiz jotzeak ezin du istripuz bi exekuzio sortu.

Sarrera-baldintzak

Aktibatzaile bat jotzen du eta sarrera-espekifikazioak erabakitzen du kontaktu partikular hau egokia den — ataren aurreko segmentu-predikatu bat. Lehen urratseko baldintza-nodo bat baino merkeagoa, eta grafikoa zer gertatzen denari buruz mantentzen du, nork sartu daitekeeni buruz izan beharrean.

Hamalau gauzak abiarazi dezakete. Hamasei gauza gerta daitezke ondoren.

Hamasei ekintza eta zazpi fluxu-nodo

Zer egin dezake infunnelak, eta nola erabakitzen duen

Zerbait bidali

send_email, send_sms, send_push, send_letter — lau kanal, grafiko bat — eta notify_team, jakinarazi behar zaiona hiretzat lan egiten duenean.

Aldatu kontaktua

add_tag, remove_tag, add_to_list, remove_from_list, set_field. Bidean norbait markatzea da hurrengo infunnelaren segmentua sinple bihurtzen duena.

Kanpoaldera iritsi

http_request nahi duzun edozeri, create_payment zure konektatutako kontuaren aurka, eta book_slot erreserba-baliabide baten aurka. Ordaintzailea zurea izaten jarraitzen du; inor ez da gure bezero bihurtzen.

Hodi batetik bestera igaro

enter_funnel eta exit_funnel. Ongietorri-sekuentzia bat eraiki eta lau lekutatik deitu, lau kopia mantendu behar izatea baino, martxora arte elkarrengandik urrunduko direnak.

Sortu bidaltze-unean

ai_generate kodeak batze-aldagaiak betetzen ditu kontaktu bakoitzeko, kuotaren arabera neurtuta eta sormenaren eta kontaktu-atributuen hasharen arabera cacheatuta — bestela, bidalketa bakoitzean hartzaile bakoitzagatik ordaindu beharko zenuke.

Itxaron, adarratu, banatu, elkartu

wait iraupen bat, data-ordu bat, astegun eta ordu bat, edo desplazamendudun data-eremu bat hartzen du. condition segmentu-predikatu bat da, bai eta ez erantzunekin. split A/B/n da, pisuekin. join adarrak berriro elkartzen ditu.

goal — garrantzitsuena

Helburu batek exekuzioa amaitzen du hura lortzen duen edonorrentzat. Erreserbatu dute, erosi dute, erantzun dute: sekuentziaren gainerakoa bertan behera uzten zaie haietaz besterik gabe. Inork ez du "zuri falta" mezurik jasotzen itzuli den egunaren hurrengoan, eta hori saihesten duen nodoa da hau.

throttle eta quiet_hours

Throttle-ak eztanda bat neurtzen du, tasa-muga baxua duen postontzi bat etete-egoerara eraman ez dezan. Isiluneek mezu bat zibilizatutako ordu batera arte atxikitzen dute — mezu-geruzan aplikatuta, ez grafoko adar bakoitzera kopiatuta.

Exekutatu aurretik egiaztatua

Balidatzaileak gauza berak ukatzen dizkizu eta AI-ari

Grafiko bat argitaratu aurretik egiaztatzen da, eta egiaztapena ez da aholkuzkoa. Bide kode berdina da funtzioa pertsona batek marraztu duen edo modelo batek sortu duen, eta horrexegatik da, hain justu, sortutako funtzioak fidagarriak.

Sarrera bakarra, hain zuzen

Sarrera-nodo biak anbiguotasun bat dira, inork ez duena nabarmentzen zerrenda baten erdi okerrak sekuentzia okerra jasotzen duen arte.

Nodo guztiak eskuragarri

Umezurtz geratutako adar bat akats bat da, edo bidalitzat jotzen duzun eta ez den mezu bat. Biak jakinarazi beharrekoak dira.

Ziklo batek itxaron bat izan behar du

Itxaronik gabeko begizta bat bidalketa bat erdian duen begizta infinitua da. Erregel honek funtzio baten eta istripu baten arteko aldea ezartzen du.

Bidalketa bakoitzak bere sormena du

Sormenik eta gairik gabeko send_email nodo bat ezin da argitaratu. Gai egokia eta gorputz hutsa duen mezua benetako hutsegite modu bat da; hemen ukatzen da.

Aldagai guztiak ezagunak dira

Batze-aldagaiak argitaratzean balidatzen dira. {{frist_name}} editatzen ari zaren bitartean ikusten duzun akats idazketa bat da, ez berrogei mila postontzitan iristen den "Kaixo ," bat.

Ondoren, simulatu

Egin kontaktu erreal baten proba grafiko osoan zehar eta irakurri jarraitutako bidea eta bidaliko liratekeen mezu guztiak, euren egunarekin. Ezer ez da kanpora ateratzen.

Kasu eragozgarriak

Motorra naiboki hausten duten zazpi gauza

Bakoitza erloju determinista duen proba bat da atzean, bakoitzak errealitatearekin topo egin arte erabat zuzen dirudien inplementazio bat hausten duelako.

Zerren aurka probatzen da motorraFaltsazioa
  • 1Bere burura itzultzen den funtzio batLegitimoa, ohikoa eta ondo dago — baldin eta zikloak itxaron bat badu, balidatzaileak eskatzen duena.
  • 2Norbait erdian baja ematen duEzabatzea bidaltzean egiaztatzen da, ez ilaran sartzean. Ilaran sartzean egiaztatzeak itxaronaldian alde egin duten pertsonei postaz bidaltzen die.
  • 3Funtzioa editatzen da hamar mila pertsona barruan daudelaHaiek sartu ziren bertsioan jarraitzen dute amaierara arte. Sarrera berriek berriaren ibilbidea egiten dute.
  • 4Trigger berdina segundu batean bi aldiz pizten daExekuzio bakarra, unikotasuna indize bat delako, eta ez egiaztapen bat eta ondoren txertaketa bat.
  • 5Kontaktu bat ezabatzen da exekuzioaren erdianExekuzioa amaitzen da. Norbaiti oraindik zuzendutako sekuentzia uzten duen ezabaketa ez da ezabaketa.
  • 6Itxaron batek ordu-aldaketa bat zeharkatzen du"Hiru egun goialde bederatzietan" esanak esan nahi du ordu-aldaketaren bi aldeetan goialde bederatziak direla.
  • 7Langile bat hiltzen da bidalketa eta aurreratzearen arteanEfektuak eta aurreratzea transakzio bakarra dira. Biak gertatu dira edo bietako bat ere ez.

Erloju deterministaProbak bakoitzak inplementazio sinesgarri bat hausten du

Kanpainak beste erdia dira

Inbutuak erantzuten du. Kanpaina aldi bakarreko igorpena da: publiko bat, ordutegi bat, etendura bat eta bidalketa bat. Forma desberdineko gauza da eta nahita bereizita mantentzen da, nodo bakarreko inbutu bat dela esatea itxarun beharrean.

Bi arauk seguru egiten dute. Publiko bat behin bakarrik materializatzen da eta bi aldiz exekutatzeari uko egiten dio — berriro ebazteak isilik gehituko lituzke bidalketa hasi zenetik batu diren guztiak, eta desbikidupazio-indizeak ezkutatuko lituzke sortutako bikoiztuak saihestuz. Eta zenbatzaileak entregatze-gertaeretatik birkalkulatzen dira, inoiz ez lekuan gehitzen, beraz, saiatutako webhook batek ezin du txosten bat puztu.

Zein erabili: pertsonak egin duen zerbaitengatik gertatzen bada, inbutu bat da. Astearte batean zuk erabaki duzun zerbaitengatik gertatzen bada, kanpaina bat da. Marketin-automatizazio asko gaizki doa bigarrena lehenengoaren formara behartuz.