clickSomo
Bukak ClickSomo

Funnel & pemicu

Funnel yaiku grafik. Run yaiku baris. Wait yaiku wektu.

Iku kabeh modelé, lan saben sipit angèl sing diduwèni produk iki metu saka telung ukara kasebut. Ngganti funnel sing urip aman amarga saka iku. Retry ora bisa kirim kaping pindho amarga saka iku. Wong sing milih metu ing Selasa ora nampa apa-apa ing Kemis amarga saka iku.

Apa sing bener-bener kedadeyan nalika mlaku

Nerbikaké funnel nulis versi sing ora bisa diowahi. Ana wong mlebu, lan baris muncul: siji run, kanggo kontak iki, disandhèraké ing versi kasebut, nyimpen node saiki, wektu tangi, lan konteksé dhéwé.

Worker nyewa runs sing wektu tanginé wis liwat, ngklaim nganggo SKIP LOCKED supaya loro worker ora bisa njupuk sing padha. Nglakokaké node nganti tekan wait utawa terminal, banjur nulis wektu tangi sabanjuré lan ngeculaké.

Node yaiku fungsi murni saka run, kontak, lan node — lan efeké di-commit ing transaksi sing padha karo kemajuan runé dhéwé. Sifat tunggal iku sing nggawe retry aman. Worker sing mati ing setengah detik antara "kirim" lan "maju" ninggalaké loro-loroné utawa ora kaloro, ora tau siji.

Lan amarga aplikasi sing menehi wektu, dudu database, baris sing ditulis saiki wis jatuh tempo saiki. Kolom penjadwalan sing standaré jam database durung jatuh tempo ing wektu ditulis, lan kelepasan tick sing nggawé — bug sing katon kaya ora ana apa-apa nganti pesen telat sepuluh jam.

Siji tick saka workerEksekusi
  • 1Nyewawake_at <= now(), FOR UPDATE SKIP LOCKED. Antrean tanpa nyewa kirim kaping pindho kanthi gawan.
  • 2NglakokakéNode kanthi urutan nganti wait utawa terminal. Saben siji nulis langkah: apa sing diputusaké, apa sing diwetokaké.
  • 3KomitEfek lan maju, siji transaksi. Iku kabeh triké.
  • 4Turuwake_at sabanjuré ditulis. Durung ana baris hilir, lan ora perlu.

Siji run per kontak per versi

Patbelas pemicu

Apa sing bisa miwiti run

Sawetara iki perkara sing koklakoni. Akèh-akèhé perkara sing dilakoni pelangganmu, utawa ora dilakoni — lan ora ana tumindak iku pemicu sing apik kaya tumindaké dhéwé.

Wong teka

form_submit, list_join, contact_created, tag_added lan segment_enter. Segment yaiku predikat urip, dadi "mlebu segment" nyakup saben "wis dadi" sing bisa kokungkapaké — telung pesenan, sepi sangang puluh dina, belanja ngluwihi wates.

Wong nindakaké sesuatu

page_visit saka snippet situs, message_opened, link_clicked, booking_made lan payment_made. Pesen sing dibukak iku dhéwé acara ing kontak, dadi siji funnel bisa nunggu reaksi marang barang pungkasan sing dikirim.

Wektu, utawa awakmu

date_field karo offset — ulang tahun, pambaruan, "setaun wiwit", pitung dina sadurungé utawa telung dina sawisé. schedule kanggo sing bola-bali. manual kanggo pangumuman sing kokirim amarga kokputusaké.

Aplikasimu dhéwé

api_event yaiku acara khusus sing kokirim saka kodemu dhéwé karo tokenmu dhéwé. Apa wae sing dingertèni produkmu dadi pemicu: aktif, ngajak kanca, kena wates, mbatalaké, ngekspor. Iki sing ngowahi alat kirim layang dadi bagean saka produkmu.

Mlebu maneh, diputusaké sepisan

Funnel bisa mlebu maneh utawa ora, lan database sing ngamanat: siji run per kontak per funnel kajaba kokandhakaké liya. Pemicu sing padha murub kaping pindho ing detik sing padha ora bisa nggawe loro run kanthi ora sengaja.

Syarat mlebu

Pemicu murub lan spesifikasi mlebu mutusaké apa kontak iki layak — predikat segment ing ngarep lawang. Luwih murah tinimbang node syarat ing langkah pisanan, lan njaga grafik babagan apa sing kedadeyan, dudu babagan sapa sing kena mlebu.

Patbelas barang bisa miwiti. Nembelas barang bisa kedadeyan sabanjuré.

Nembelas aksi lan pitung node alur

Apa sing bisa dilakoni funnel, lan kepiyé ngputusaké

Kirim sesuatu

send_email, send_sms, send_push, send_letter — papat saluran, siji grafik — plus notify_team nalika wong sing kudu ngerti makarya ing panggonanmu.

Owahi kontaké

add_tag, remove_tag, add_to_list, remove_from_list, set_field. Nandhani wong nalika lewat iku sing nggawe segment funnel sabanjuré dadi gampang.

Nyang njaba

http_request menyang apa wae sing koksenengi, create_payment marang akun sing disambungaké dhéwé, lan book_slot marang sumber booking. Sing mbayar tetep duwému; ora ana sing dadi pelanggané kita.

Pindhah antarane corong

enter_funnel lan exit_funnel. Gawe siji urutan sambutan lan menahe saka papat panggon, tinimbang ngopi papat salinan sing dadi beda-beda ing sasi Maret.

Digawe nalika wektu ngirim

ai_generate ngisi variabel merge saben kontak, diukur marang kuotamu lan disimpen ing cache miturut hash kreatif lan atribut kontak — utawa sampeyan bakal mbayar saben panampa ing saben pangiriman.

Nunggu, nyabang, misah, gabung

wait nampa durasi, tanggal-jam, dina lan wektu, utawa kolom tanggal kanthi selisih. condition yaiku predikat segmen kanthi ya lan ora. split yaiku A/B/n kanthi bobot. join nggabungake maneh cabang-cabang.

goal — sing paling penting

Goal mungkasi eksekusi kanggo sapa wae sing tekan. Dheweke wis mesen, wis tuku, wis bales: sisa urutan dibatalake khusus kanggo dheweke. Ora ana sing nampa "kangen kowe" sedina sawise bali, lan iki node sing nyegah iku.

throttle lan quiet_hours

Throttle ngatur laju ledakan supaya kothak layang kanthi wates tarif cendhek ora dibedil nganti disuspen. Quiet hours nyimpen pesen nganti wektu sing layak — ditrapake ing lapisan pesen, ora disalin menyang saben cabang grafik.

Dipriksa sadurunge bisa mlaku

Validator nolak bab sing padha kanggo sampeyan lan kanggo AI

Grafik dipriksa sadurunge bisa diterbitake, lan pemeriksaan iku dudu mung saran. Iku jalur kode sing padha apa manungsa sing nggambar corong utawa model sing nggawe, lan mung iku alesan corong gawean model bisa dipercaya.

Persis siji mlebu

Loro node mlebu yaiku ambiguitas sing ora ana sing sadari nganti setengah daftar sing salah nampa urutan sing salah.

Saben node bisa diayahi

Cabang sing yatim yaiku kesalahan utawa pesen sing sampeyan kira metu nanging ora. Kalorone worth diandharake.

Siklus kudu ngemot wait

Loop tanpa wait yaiku loop tanpa wates kanthi pangiriman ing tengah. Aturan iki bedane antarane corong lan insiden.

Saben pangiriman duwe kreatife

Node send_email tanpa kreatif lan subyek ora bisa diterbitake. Pesen kanthi subyek sing bener nanging awak kosong yaiku mode gagalan nyata; ditolak ing kene.

Saben variabel dikenal

Variabel merge divalidasi nalika terbit. {{frist_name}} yaiku salah tik sing sampeyan deleng nalika nyunting, dudu "Sugeng ," sing tekan ing patang puluh ewu kothak layang.

Banjur simulasi

Dry-run kontak nyata liwat kabeh grafik lan waca maneh dalan sing dilewati lan saben pesen sing bakal dikirim, karo dinane. Ora ana sing metu saka gedung.

Kasus sing angel

Pitu bab sing ngrusak mesin naif

Saben siji iki yaiku tes kanthi jam deterministik ing mburine, amarga saben siji ngrusak implementasi sing katon sampurna bener nganti ketemu kenyataan.

Apa sing dadi bahan tes mesinFalsifikasi
  • 1Corong sing ngulang menyang awake dheweSah, umum, lan ora apa-apa — anggere sikluse ngemot wait, sing diwajibake validator.
  • 2Ana sing mbusak langganan ing tengah dalanSuppresi dipriksa nalika ngirim, dudu nalika nglebokake antrean. Priksa nalika nglebokake antrean bakal ngirim layang menyang wong-wong sing lunga nalika nunggu.
  • 3Corong disunting nalika sepuluh ewu wong ana ing njeroDheweke terus nganggo versi sing dhaulebokake, nganti rampung. Pangunjung anyar nganggo versi anyar.
  • 4Pemicu sing padha murub kaping pindho ing sakdetoneSiji eksekusi, amarga keunikan dadi indeks, dudu pemeriksaan sing disusul insert.
  • 5Kontak dibusak ing tengah eksekusiEksekusi rampung. Pambusakan sing ninggalake urutan isih ditujokake marang wong dudu pambusakan.
  • 6Wejangan sing ngliwati owah-orehan wektu musim panas"Telung dina jam sangang esuk" ateges jam sangang esuk ing loro-lorone sisih owah-orehan jam.
  • 7Panggarap mati ing antarane ngirim lan majuEfek lan maju iku siji transaksi. Utawa loro-lorone kelakon, utawa ora kelakon kabeh.

Jam sing bisa ditemtokakeSaben tes ngrusak sawijining implementasi sing katon masuk akal

Kampanye yaiku setengah liyane

Corong iku nanggepi. Kampanye yaiku siaran sapisanan: audiens, jadwal, pangatur ambalan, lan pangiriman. Iku wujud bab sing beda lan sengaja dipisahake, ora digawe-gawe dadi corong mung siji simpul.

Ana rong aturan sing nggawe aman. Audiens diwujudake sepisan lan nolak lumaku ping pindho — mbalekake maneh bakal diam-diam nambah kabeh wong sing gabung sawise pangiriman miwiti, lan indeks deduplikasi bakal ndhelikake kanthi nyegah duplikat sing dheweke gawe. Lan cacahé dihitung maneh saka acara pangiriman, ora ditambah ing panggonan, supaya webhook sing diulang ora bisa nggawe laporan dadi gedhe.

Sing endi sing dienggo: yen kelakon amarga bab sing ditindakake wong kasebut, iku corong. Yen kelakon amarga kaputusan sampeyan ing dina Selasa, iku kampanye. Akeh banget otomatisasi pemasaran sing salah amarga meksa sing kapindho menyang wujud sing pertama.