Lewati ke konten utama

Prodantix

Sekilas

Kategori
Platform pengembang
Situs web
prodantix.com
Konsol
app.prodantix.com
Dokumentasi
prodantix.com/en/docs/overview
API GraphQL
api.prodantix.com/graphql
Penerimaan event
eu.api.prodantix.com/v1/events
Real-time
eu.ws.prodantix.com
Antarmuka MCP
eu.mcp.prodantix.com/mcp
Pemutaran ulang sesi
eu.replay.prodantix.com

Prodantix dibuat untuk orang-orang yang membangun perangkat lunak. Setiap tim produk menanyakan tiga hal yang sama: apa sebenarnya yang dilakukan orang di dalam aplikasi kami, siapa yang boleh melihat bagian mana, dan kapan saat yang tepat untuk menyampaikan sesuatu kepada mereka.

Kebanyakan perusahaan membeli alat yang berbeda untuk masing-masing pekerjaan itu, dan di situlah masalah dimulai. Setiap alat menyimpan catatannya sendiri tentang siapa pengguna Anda, dan catatan-catatan itu perlahan menjauh satu sama lain. Alat yang satu mengira seorang pelanggan sudah selesai menyiapkan akunnya. Yang lain belum menyusul, jadi ia mengirimkan petunjuk untuk langkah yang sudah pelanggan itu selesaikan minggu lalu. Tidak ada yang menyadarinya sampai pelanggan mengeluh, atau sampai dua dasbor menampilkan angka yang berbeda.

Bagaimana mesin ini disusun

Empat primitif menyusun mesin ini, dan segala hal lain dibangun di atasnya. Sebaiknya diikuti berurutan, karena masing-masing memberi masukan bagi yang berikutnya. Rujukan konsep membahasnya selengkapnya.

Event

Satu hal yang dilakukan pengguna, direkam saat terjadi: pendaftaran yang selesai, halaman yang dibuka, formulir yang ditinggalkan separuh jalan. Event adalah sinyal mentah, dan satu-satunya hal yang masuk ke sistem dari luar. Selebihnya diturunkan dari sana.

State pengguna

Proyeksi hidup dan dapat dikueri dari segala hal yang diketahui tentang seorang pengguna, diturunkan dari event-nya dan diperbarui begitu ada yang baru masuk. Inilah sumber kebenaran yang dibaca oleh analitik, feature flag, dan pesan. Ini bukan rollup semalam, dan bukan salinan yang dijaga selaras oleh suatu job. Hanya ada satu.

Keputusan

Aturan yang dievaluasi terhadap state pengguna: siapa masuk suatu kohort, siapa mendapat flag, siapa memenuhi syarat sebuah pesan. Karena keputusan membaca state hidup pada saat ia ditanyakan, ia tidak mungkin menjawab dari gambaran yang usang.

Tindakan

Apa yang dilakukan mesin ketika sebuah keputusan berjalan: membuka fitur, mengirim pesan, memulai alur kerja. Tindakan itu sendiri dicatat sebagai event, dan itulah yang menutup lingkarnya: apa yang mesin lakukan menjadi bagian dari apa yang ia ketahui.

Analitik adalah membaca state

Analitik di Prodantix bukan penyimpanan terpisah yang memegang salinan penggunanya sendiri. Ia membaca state pengguna secara langsung. Funnel, retensi dan kohort adalah kueri atas proyeksi hidup yang sama, yang juga menjadi tempat kerja bagian mesin lainnya, sehingga tidak ada perjalanan SQL ke gudang data dan tidak perlu menunggu rollup semalam: state sudah berbentuk sesuai pertanyaannya. Kohort di sini adalah objek kelas satu: bernama, ditentukan oleh klausa, dan keanggotaannya tetap mutakhir seiring orang memenuhi atau berhenti memenuhi syarat.

Menyimpan pertanyaan yang akan Anda ajukan lagi

Dasbor adalah sekumpulan ubin yang diberi nama, dan sebuah ubin adalah kueri yang sudah pernah Anda jalankan beserta cara Anda ingin ia digambar. Kueri itu disimpan persis seperti yang dikirim penjelajah, jadi ubin memegang pertanyaannya, bukan gambar jawabannya: membukanya menjalankan kueri lagi dan mengembalikan Anda ke penjelajah pada kueri yang sama, bebas menggeser jendela waktu atau mengubah pemecahannya. Karena itu dasbor tidak pernah menjadi ekspor basi. Ia sekumpulan pertanyaan yang dijawab mesin dari state yang hidup setiap kali Anda melihat.

Ketika sebuah angka bergerak sendiri

Tak ada yang mengawasi setiap grafik. Bagian mengawasi itu dikerjakan Prodantix: ia membaca sebuah deret bagian demi bagian, menghitung garis dasar dan sebaran deret itu, lalu menandai bagian-bagian yang duduk terlalu jauh darinya, ke dua arah sekaligus. Penurunan maupun lonjakan sama-sama dilaporkan, masing-masing dengan garis dasar yang ditinggalkannya dan seberapa jauh ia berada, sehingga Anda bisa membedakan patahan sungguhan dari derau biasa. Kepekaannya adalah setelan, bukan aturan mati, dan pendeteksinya menolak menebak: deret yang nyaris datar, atau yang masih terlalu pendek untuk punya bentuk, tidak menghasilkan apa pun alih-alih memberi alarm palsu.

Orang-orang yang diwakili state

State pengguna adalah sebuah proyeksi, dan direktori orang adalah tempat Anda membacanya satu orang setiap kali. Konsol mendaftar semua yang pernah dilihat proyek, yang paling baru aktif lebih dulu, dengan kotak pencarian dan daftar yang terus memuat selagi Anda menelusuri. Setiap baris membawa apa yang telah dikumpulkan mesin tentang orang itu: berapa peristiwa, berapa sesi yang berbeda, kapan ia pertama dan terakhir terlihat, apa yang terakhir ia lakukan, termasuk kelompok mana saja, serta sifat-sifat khusus (nama, surel, telepon, avatar) yang diangkat ke kolomnya sendiri. Membuka sebuah baris menampilkan tabel properti selengkapnya, yang berisi apa pun yang ditaruh peristiwa Anda di sana, bukan sekumpulan bidang tetap. Kelompok punya tab dan properti sendiri, karena sebuah perusahaan atau ruang kerja adalah hal yang berdiri sendiri dan faktanya milik dirinya, bukan milik tiap anggotanya.

Satu orang, beberapa id

Seorang pengunjung datang sebelum Anda tahu siapa dia. SDK memberinya sebuah id, ia membaca tiga halaman, dan baru sesudah itu mendaftar. Sampai ada yang memberi tahu mesin siapa dia, profil itu memang tidak bernama, dan direktori mengatakannya apa adanya alih-alih menebak. Ketika pendaftaran terjadi, id-id itu dirangkai menjadi rantai yang bermuara pada satu identitas kanonis, sehingga jejak anonim melipat masuk ke akun bernama alih-alih membuka profil kedua. Setiap baris menunjukkan berapa id yang bermuara padanya, dan profilnya mendaftar semuanya. Di tempat mesin tidak bisa memastikan sendiri, Anda dapat menggabungkan dua profil secara manual: Anda memilih identitas mana yang bertahan, propertinya menang bila ada bentrokan, dan angkanya dijumlahkan. Yang itu tidak terurai lagi. Profil sebagaimana adanya sebelum penggabungan tersimpan dalam jejak audit, jadi apa yang dikatakannya masih bisa diambil kembali, tetapi kedua orang itu tidak bisa dipisahkan lagi setelah disatukan.

Menonton ulang satu sesi

Analitik memberi tahu Anda bahwa kemarin sebelas orang meninggalkan formulir yang sama di tengah jalan. Ia tidak bisa memberi tahu mengapa. Pemutaran ulang sesi merekam halamannya sendiri: SDK peramban menangkap dokumen beserta setiap perubahan padanya selagi orang itu bekerja, mengumpulkan perubahan tersebut menjadi potongan-potongan berurutan dan mengirimnya ke perekam, lalu konsol memutar sesi itu persis seperti yang terjadi. Setiap rekaman tersimpan di bawah distinct id yang sama dengan yang dipakai bagian mesin lainnya, sehingga sebuah sesi milik orang yang sudah bisa Anda cari, bukan milik id pengunjung yang hanya ada di dalam alat terpisah.

Apa yang boleh disimpan sebuah rekaman

Penyamaran sudah aktif sebelum Anda mengatur apa pun. Setiap karakter yang diketik ke sebuah bidang diganti dengan tanda bintang di dalam peramban, sebelum potongan diunggah, sehingga apa yang sampai ke perekam tidak pernah memuat isinya: panjang dan batas kata tetap ada, yang membuat pemutaran ulang tetap terlihat seperti halamannya, sedangkan kata-katanya sendiri hilang. Bidang kata sandi, surel dan telepon disamarkan baik penyamaran menyala maupun mati, jadi mematikannya tidak bisa membuka bidang kredensial. Teks halaman yang terlihat tetap tersimpan kecuali Anda meminta agar itu ikut disamarkan. Setiap potongan mencatat apakah ia disamarkan dan konsol menandai sesi sesuai dengan itu, sehingga Anda selalu tahu yang mana dari keduanya sedang Anda tonton. Rekamannya berada di penyimpanan privat: konsol meminta tautan bertanda tangan berumur pendek untuk satu potongan setiap kali, dan tanpa itu tidak ada yang bisa dijangkau. Berapa lama sebuah sesi tetap tersedia setelahnya ditentukan oleh paket Anda.

Menampilkan hal berbeda kepada orang berbeda

Tim sering ingin merilis sesuatu yang baru kepada segelintir pengguna lebih dulu dan melihat hasilnya sebelum semua orang mendapatkannya. Prodantix menentukan siapa melihat apa dengan mengevaluasi kondisi terhadap state pengguna: sebuah atribut, sebuah operator dan sebuah nilai, diperiksa pada saat flag ditanyakan, bukan dicari dalam daftar tersimpan. Anda bisa memberikan fitur baru kepada dua persen pelanggan, mengamati cara mereka memakainya, lalu memperluas atau menariknya tanpa menunggu rilis berikutnya.

Pesan yang tiba saat masih berguna

Sebuah pesan hanya layak dikirim selama masih berguna. Prodantix bisa mengirimnya pada saat seseorang melakukan sesuatu, atau gagal melakukannya. Kalau seorang pelanggan mencapai batas paketnya, ia tahu saat itu juga, bukan keesokan paginya ketika ia sudah menyerah dan pindah ke tempat lain.

Ketika mereka membalas

Pesan berjalan satu arah sampai ada yang membalas, dan setelah itu ia menjadi utas dukungan. Prodantix membawa yang seperti itu juga, dan AI di dalamnya menyusun draf alih-alih mengirim. Model hanya diberi utas itu dan state orang itu sendiri, tidak lebih: bukan percakapan pelanggan lain, bukan sisa proyek Anda. Ia menulis balasan yang disarankan, dan balasan itu baru menjadi giliran dalam utas ketika agen Anda menekan kirim, jadi “sarankan, jangan kirim” adalah cara kodenya dibangun, bukan aturan yang harus diingat seseorang. Utas itu juga membawa kredensialnya sendiri. Kunci proyek menandai sebuah proyek dan ikut di dalam setiap halaman yang memasang SDK, jadi ia tidak bisa mewakili seseorang; tiap percakapan mendapat tokennya sendiri, terbatas pada satu utas itu saja, dan id di dalam badan permintaan tidak pernah menentukan dengan siapa Anda berbicara. Membuka percakapan adalah satu-satunya rute yang tak butuh apa pun selain kunci publik, karena itu ia dibatasi lajunya per proyek dan per pemanggil.

Merangkai urutannya sendiri

Sebagian tanggapan lebih dari satu langkah, dan Anda ingin menatanya sendiri. Alur kerja adalah graf kecil: ia dimulai secara manual, atau ketika seseorang masuk atau keluar dari sebuah kohor, lalu berjalan melewati simpul demi simpul. Simpul tindakan melakukan sesuatu (menulis satu baris log, memanggil webhook Anda). Simpul jeda menunggu, sampai tiga puluh hari. Simpul tunggu berhenti sampai sebuah sinyal bernama datang, dengan jalan keluarnya sendiri jika sinyal itu tak pernah tiba. Simpul cabang menguji kondisi terhadap state pengguna lalu mengambil jalur yang cocok, atau jalur cadangan. Jalannya maju satu simpul setiap kali, dan tiap langkah dicatat sebelum langkah berikutnya diambil, sehingga sebuah restart melanjutkan dari titik yang benar-benar sudah dicapai alih-alih memutar ulang dari awal. Webhook diperiksa sebelum dipanggil: sasarannya harus alamat https publik, permintaan pergi ke alamat-alamat yang telah diloloskan pemeriksaan itu, pengalihan tidak diikuti, dan panggilan yang menggantung diputus.

Orkestrasi AI, dan bagaimana lingkarnya menutup

Antarmuka di atas masih menyisakan pekerjaan merangkai langkah untuk Anda: memperhatikan sesuatu, mencari tahu kepada siapa itu berlaku, memutuskan apa yang harus dilakukan. Prodantix bisa menjalankan lingkar itu sendiri. Mesin mendeteksi momen penting dalam state hidup, memilih kohort yang terkena, dan menentukan tindakan. Yang membuatnya lebih dari otomatisasi biasa adalah bagian terakhir: tindakan itu dicatat sebagai event, sehingga melipat kembali ke state pengguna yang sama yang akan dibaca keputusan berikutnya. Perilaku sistem itu sendiri menjadi bagian dari apa yang ia ketahui tentang orang tersebut, bukan sesuatu yang terjadi padanya di pinggiran.

Sebuah usulan menunggu manusia

Mesin tidak bertindak atas kesimpulannya sendiri. Yang ia hasilkan adalah sebuah usulan, dan usulan adalah rencana yang tertulis: bendera-bendera ini, kohor-kohor ini, pesan ini. Sebelum bisa disetujui, setiap bendera, kohor dan percakapan yang disebutnya dicocokkan terhadap penyewa milik Anda sendiri, dan rujukan yang tidak ditemukan menggugurkan seluruh usulan alih-alih dibuang diam-diam, dan justru itulah yang menahan sebuah model yang telah membaca sesuatu yang jahat agar tidak menjangkau ke luar proyek Anda. Persetujuan adalah tindakan manusia, dan di situlah barulah sesuatu terjadi: eksekusinya melewati jalur bendera dan pesan yang sama dengan yang Anda pakai secara manual, sehingga izin, jejak audit dan batas paket Anda semuanya tetap berlaku. Menyetujui dua kali tidak melakukan apa pun pada kali kedua.

Memasukkan event

Semuanya dimulai dari sebuah event yang dikirim ke endpoint ingest, yang langsung dilipat mesin ke dalam state pengguna. SDK tersedia untuk web, seluler dan server. React satu-satunya pengecualian: siklus hidupnya butuh adaptor khusus, sebuah provider dan hook yang memasang klien sekali saja dan aman terhadap StrictMode. Panduan cepat menyambungkannya dalam beberapa baris.

Kunci dan lingkungan

Setiap panggilan SDK membawa kunci proyek yang berasal dari konsol. Membuat proyek menghasilkan dua lingkungan, live dan test, masing-masing dengan kuncinya sendiri: bangun dengan test, rilis dengan live. Kedua kunci ditampilkan tepat sekali, segera setelah dibuat, karena server hanya menyimpan hash dan tidak ada layar yang bisa menampilkannya lagi. Rotasi menerbitkan pengganti untuk lingkungan yang Anda pilih, dan Anda menentukan apakah kunci lama berhenti seketika atau setelah masa tenggang.

Empat cara berbicara dengannya

REST tersebar di tiga host: satu untuk flag dan pesan, satu untuk penerimaan event, dan satu untuk pemutaran ulang sesi, masing-masing menyajikan dokumen OpenAPI-nya sendiri di /openapi.json. Penerimaan menjawab 202, artinya event diterima untuk diproses dan bukan sudah disimpan: event yang cacat masih bisa dibuang di tahap berikutnya. GraphQL mencakup seluruh model aplikasi, termasuk proyek, flag, alur kerja, analitik, pesan, kohort dan penagihan. Antarmuka real-time menyiarkan perubahan flag, pesan dan jalannya alur kerja, serta memutus koneksi tak terautentikasi seketika. Antarmuka MCP memungkinkan agen membaca dan menulis lewat panggilan alat; ia bersifat mesin ke mesin dan menolak permintaan peramban.

Datanya tetap milik Anda

Anda bisa menjalankan Prodantix di server kami atau di server Anda sendiri, dan hasilnya sama saja. Semua yang Anda masukkan bisa Anda ambil kembali secara utuh, kapan pun Anda mau. Kami tidak menjual data Anda dan tidak memakainya untuk melatih model AI. Karena rancangannya, Prodantix akhirnya memegang catatan pelanggan Anda yang paling lengkap di antara semua yang Anda punya, jadi janji itu lebih berbobot di sini daripada di tempat lain.

Untuk siapa

Prodantix cocok untuk tim yang menjalankan dua atau tiga alat terpisah demi hal ini dan sudah lelah melihat alat-alat itu saling bertentangan. Ia paling berguna begitu pelanggan Anda cukup banyak sehingga Anda tak lagi bisa memantau apa yang mereka lakukan hanya dengan bertanya-tanya.

Kunjungi Prodantix: prodantix.com