Kustomisasi: Bidang & Modul
Flash dibentuk untuk setiap merek dengan dua cara, keduanya pada satu basis kode bersama — tidak pernah bercabang. Bidang kustom menambahkan data Anda sendiri ke catatan anggota dan diatur melalui v2 REST API. Modul adalah kemampuan opsional yang diaktifkan per ruang kerja dan diberlakukan oleh server. Panduan ini mencakup keduanya.
Bidang dideklarasikan sebelum diatur
Pemilik atau admin membuat bidang di bawah Pengaturan → Bidang Kustom. Setiap bidang memiliki kunci (nama mesinnya, misalnya cf_membership_no), tipe, dan — untuk tipe tertentu — daftar opsi. Kunci dan tipe tetap setelah dibuat. API tidak pernah membuat bidang; Ini hanya menetapkan nilai untuk bidang yang sudah ada, dan menolak kunci yang tidak dikenal — tabel definisi adalah daftar yang diizinkan.
Lewatkan customAttributes saat membuat atau memperbarui
Baik POST /api/v2/members (buat) dan PATCH /api/v2/members/{id} (perbarui) menerima customAttributes object yang dikunci oleh kunci bidang Anda. Otentikasi dengan kunci Bearer fl_live_ yang memiliki cakupan members:write.
curl -X POST https://flash.socialhub.ai/api/v2/members \
-H "Authorization: Bearer fl_live_..." \
-H "Content-Type: application/json" \
-d '{
"email": "ada@example.com",
"fullName": "Ada Lovelace",
"customAttributes": {
"cf_membership_no": "A-10023",
"cf_preferred_store": "flagship",
"cf_child_birthday": "2018-05-01"
}
}'Saat pembaruan, kirim hanya kunci yang ingin Anda ubah. Mengatur kunci ke null akan menghapusnya.
curl -X PATCH https://flash.socialhub.ai/api/v2/members/{id} \
-H "Authorization: Bearer fl_live_..." \
-H "Content-Type: application/json" \
-d '{ "customAttributes": { "cf_preferred_store": "airport" } }'Apa yang diterima setiap jenis bidang
| Tipe | Contoh nilai JSON | Menerima |
|---|---|---|
text | "A-10023" | string |
number | 42 | number (atau numerik string) |
date | "2018-05-01" | Tanggal ISO (YYYY-MM-DD) |
boolean | true | benar / salah |
enum | "flagship" | salah satu opsi bidang |
list | ["running","tennis"] | subset dari opsi bidang |
Validasi sangat ketat: nilai harus sesuai dengan tipe bidangnya, nilai enum/list harus salah satu opsi yang ditentukan, dan kunci yang tidak dikenal ditolak dengan 400. Bidang untuk data pribadi sensitif (PII) belum diterima — pertahankan atribut khusus untuk nilai bisnis yang tidak sensitif.
Satu nilai, digunakan di seluruh platform
Segmen
Memfilter anggota berdasarkan bidang kustom apa pun dengan operator yang sesuai dengan tipenya — bidang yang sama yang Anda tetapkan di API.
Personalisasi Email
Referensikan nilai dalam salinan sebagai {{cf_membership_no}} atau {{member.cf_membership_no}}.
Anggota membaca
Nilai khusus dikembalikan pada anggota object di bawah customAttributes.
Kemampuan opsional, diaktifkan per ruang kerja
Jika sebuah field kustom menambahkan sebuah nilai, sebuah modul menambahkan keseluruhan kemampuan — misalnya modul tiket layanan, janji temu, atau log perbaikan. Modul dinonaktifkan secara default dan diaktifkan per ruang kerja. Setiap ruang kerja menjalankan basis kode yang sama; status modul aktif atau nonaktif adalah data (hak akses), bukan build pribadi.
Diterapkan oleh server, di satu tempat
Setiap modul memiliki kunci tetap (misalnya tickets). Apakah suatu ruang kerja dapat menggunakannya adalah saklar tunggal per ruang kerja, diperiksa pada satu titik penilaian dan diterapkan di mana pun modul tersebut muncul — fail-closed: jika saklar tidak aktif, kemampuan tersebut tidak ada.
API
Endpoint modul yang dinonaktifkan menolak panggilan dengan 403. Akses tidak pernah dibiarkan begitu saja di UI.
Navigasi & halaman
Entri menu dan halaman modul hanya muncul saat diaktifkan untuk ruang kerja — dan menghilang dengan bersih saat dimatikan.
Terisolasi oleh penyewa
Hak akses berlaku per ruang kerja. Modul dan data satu merek tidak pernah terlihat oleh merek lain.
Bagaimana modul baru diperkenalkan
Ketika suatu kemampuan benar-benar dapat digunakan kembali, kemampuan tersebut dibangun sekali sebagai modul — terdaftar dalam katalog modul di bawah kuncinya, dengan datanya sendiri, API yang diatur hak aksesnya sendiri, dan halamannya sendiri. Ruang kerja pertama yang membutuhkannya akan segera dibangun; Yang berikutnya hanya membalik sakelar. Inilah inti dari model ini: perbedaan pelanggan diekspresikan sebagai pengaturan, sehingga satu peningkatan atau perbaikan menjangkau setiap ruang kerja sekaligus.
- Modul tersebut terdaftar dalam katalog dengan kunci dan deskripsi yang stabil.
- Data dan rute API-nya dibatasi oleh kunci tersebut (fail-closed).
- Navigasi dan halamannya hanya ditampilkan saat kunci diaktifkan.
- Pemilik mengaktifkannya untuk ruang kerja; ruang kerja kedua adalah saklar, bukan pembangunan ulang.
Aktifkan atau nonaktifkan modul
Pemilik ruang kerja mengelola modul dari Pengaturan → Modul. Setiap tombol akan langsung berlaku di API dan UI.
Aturan pengambilan keputusan: gunakan konfigurasi terlebih dahulu; tambahkan kolom kustom jika Anda perlu menyimpan nilai; buat modul jika suatu kemampuan benar-benar dapat digunakan kembali — dan jangan pernah melakukan fork produk untuk satu pelanggan saja.
Membutuhkan jenis catatan yang sama sekali baru, bukan hanya bidang tambahan? Lihat Objek Kustom — bangun bisnis object tanpa kode Anda sendiri, lalu telusuri catatan dan segmentasikan berdasarkan catatan tersebut. Untuk menjaga agar sisa tumpukan Anda tetap sinkron, lihat Konektor & Notifikasi.