Desain Detail Sistem CRM 2.0

1. Ikhtisar Sistem dan Filosofi Desain

1.1 Posisi Sistem

Sistem ini adalah platform manajemen penjualan CRM 2.0 yang dibangun berdasarkan platform no-code NocoBase. Tujuan utamanya adalah:

Membiarkan tenaga penjualan fokus membangun hubungan dengan Pelanggan, bukan input data dan analisis berulang

Sistem menangani tugas rutin secara otomatis melalui Workflow, dan dengan bantuan AI menyelesaikan pekerjaan seperti skoring Lead, analisis Peluang, untuk membantu tim penjualan meningkatkan efisiensi.

1.2 Filosofi Desain

Filosofi Satu: Sales Funnel Lengkap

Alur penjualan end-to-end: design-2026-02-24-00-05-26

Mengapa dirancang seperti ini?

Cara TradisionalCRM Terintegrasi
Tahap berbeda menggunakan beberapa sistemSistem tunggal mencakup seluruh siklus hidup
Transfer data manual antar sistemAliran dan konversi data otomatis
Tampilan Pelanggan tidak konsistenTampilan 360 derajat Pelanggan yang terpadu
Analisis data terpisah-pisahAnalisis sales pipeline end-to-end

Filosofi Dua: Sales Pipeline yang Dapat Dikonfigurasi

design-2026-02-24-00-06-04

Industri yang berbeda dapat menyesuaikan tahap sales pipeline tanpa perlu memodifikasi kode.

Filosofi Tiga: Desain Modular

  • Modul inti (Pelanggan + Peluang) wajib, modul lain dapat diaktifkan sesuai kebutuhan
  • Modul yang dinonaktifkan tidak perlu memodifikasi kode, cukup dikonfigurasi melalui antarmuka NocoBase
  • Setiap modul dirancang independen, mengurangi kopling

2. Arsitektur Modul dan Kustomisasi

2.1 Ikhtisar Modul

Sistem CRM mengadopsi desain arsitektur modular — setiap modul dapat diaktifkan atau dinonaktifkan secara independen sesuai kebutuhan bisnis. design-2026-02-24-00-06-14

2.2 Hubungan Ketergantungan Modul

ModulApakah WajibDependensiKondisi Disable
Manajemen PelangganYa-Tidak dapat dinonaktifkan (inti)
Manajemen PeluangYaManajemen PelangganTidak dapat dinonaktifkan (inti)
Manajemen LeadOpsional-Tidak butuh akuisisi Lead
Manajemen PenawaranOpsionalPeluang, ProdukTransaksi sederhana tidak butuh Penawaran formal
Manajemen PesananOpsionalPeluang (atau Penawaran)Tidak butuh pelacakan Pesanan/pembayaran
Manajemen ProdukOpsional-Tidak butuh katalog Produk
Integrasi EmailOpsionalPelanggan, KontakMenggunakan sistem email eksternal

2.3 Versi Pre-Konfigurasi

VersiModul yang DisertakanSkenario PenggunaanJumlah Tabel Data
Versi RinganPelanggan + PeluangPelacakan transaksi sederhana6
Versi StandardVersi Ringan + Lead + Penawaran + Pesanan + ProdukSiklus penjualan lengkap15
Versi EnterpriseVersi Standard + Integrasi EmailFungsi lengkap dengan email17

2.4 Pemetaan Modul-Tabel Data

Tabel Data Modul Inti (Selalu Wajib)

Tabel DataModulDeskripsi
nb_crm_customersManajemen PelangganRecord Pelanggan/Perusahaan
nb_crm_contactsManajemen PelangganKontak
nb_crm_customer_sharesManajemen PelangganIzin berbagi Pelanggan
nb_crm_opportunitiesManajemen PeluangPeluang penjualan
nb_crm_opportunity_stagesManajemen PeluangKonfigurasi tahap
nb_crm_opportunity_usersManajemen PeluangKolaborator Peluang
nb_crm_activitiesManajemen AktivitasRiwayat aktivitas
nb_crm_commentsManajemen AktivitasKomentar/catatan
nb_crm_tagsIntiTag yang dibagikan
nb_cbo_currenciesData DasarKamus mata uang
nb_cbo_regionsData DasarKamus negara/wilayah

2.5 Cara Menonaktifkan Modul

Cukup sembunyikan entry menu modul tersebut di backend admin NocoBase, tanpa perlu memodifikasi kode atau menghapus tabel data.


3. Entitas Inti dan Model Data

3.1 Ikhtisar Hubungan Entitas

design-2026-02-24-00-06-40

3.2 Detail Tabel Data Inti

3.2.1 Tabel Lead (nb_crm_leads)

Manajemen Lead dengan Workflow 4-tahap yang disederhanakan.

Alur tahap:

Baru → Sedang Follow-up → Tervalidasi → Konversi ke Pelanggan/Peluang
         ↓          ↓
     Tidak Memenuhi Syarat

Field Kunci:

FieldTipeDeskripsi
idBIGINTPrimary key
lead_noVARCHARNomor Lead (auto-generated)
nameVARCHARNama Kontak
companyVARCHARNama perusahaan
titleVARCHARJabatan
emailVARCHAREmail
phoneVARCHARTelepon
mobile_phoneVARCHARHP
websiteTEXTWebsite
addressTEXTAlamat
sourceVARCHARSumber Lead: website/ads/referral/exhibition/telemarketing/email/social
industryVARCHARIndustri
annual_revenueVARCHARSkala pendapatan tahunan
number_of_employeesVARCHARSkala jumlah karyawan
statusVARCHARStatus: new/working/qualified/unqualified
ratingVARCHARRating: hot/warm/cold
owner_idBIGINTPenanggung jawab (FK → users)
ai_scoreINTEGERSkor kualitas AI 0-100
ai_convert_probDECIMALProbabilitas konversi AI
ai_best_contact_timeVARCHARWaktu kontak yang direkomendasikan AI
ai_tagsJSONBTag yang dihasilkan AI
ai_scored_atTIMESTAMPWaktu skoring AI
ai_next_best_actionTEXTRekomendasi langkah terbaik berikutnya dari AI
ai_nba_generated_atTIMESTAMPWaktu rekomendasi AI dihasilkan
is_convertedBOOLEANPenanda sudah dikonversi
converted_atTIMESTAMPWaktu konversi
converted_customer_idBIGINTID Pelanggan hasil konversi
converted_contact_idBIGINTID Kontak hasil konversi
converted_opportunity_idBIGINTID Peluang hasil konversi
lost_reasonTEXTAlasan kehilangan
disqualification_reasonTEXTAlasan tidak memenuhi syarat
descriptionTEXTDeskripsi

3.2.2 Tabel Pelanggan (nb_crm_customers)

Manajemen Pelanggan/Perusahaan yang mendukung bisnis ekspor.

Field Kunci:

FieldTipeDeskripsi
idBIGINTPrimary key
nameVARCHARNama Pelanggan (wajib)
account_numberVARCHARNomor Pelanggan (auto-generated, unique)
phoneVARCHARTelepon
websiteTEXTWebsite
addressTEXTAlamat
industryVARCHARIndustri
typeVARCHARTipe: prospect/customer/partner/competitor
number_of_employeesVARCHARSkala jumlah karyawan
annual_revenueVARCHARSkala pendapatan tahunan
levelVARCHARLevel: normal/important/vip
statusVARCHARStatus: potential/active/dormant/churned
countryVARCHARNegara
region_idBIGINTWilayah (FK → nb_cbo_regions)
preferred_currencyVARCHARMata uang preferensi: CNY/USD/EUR
owner_idBIGINTPenanggung jawab (FK → users)
parent_idBIGINTPerusahaan induk (FK → self)
source_lead_idBIGINTID Lead asal
ai_health_scoreINTEGERSkor kesehatan AI 0-100
ai_health_gradeVARCHARTingkat kesehatan AI: A/B/C/D
ai_churn_riskDECIMALRisiko churn AI 0-100%
ai_churn_risk_levelVARCHARTingkat risiko churn AI: low/medium/high
ai_health_dimensionsJSONBSkor setiap dimensi kesehatan AI
ai_recommendationsJSONBDaftar rekomendasi AI
ai_health_assessed_atTIMESTAMPWaktu penilaian kesehatan AI
ai_tagsJSONBTag yang dihasilkan AI
ai_best_contact_timeVARCHARWaktu kontak yang direkomendasikan AI
ai_next_best_actionTEXTRekomendasi langkah terbaik berikutnya dari AI
ai_nba_generated_atTIMESTAMPWaktu rekomendasi AI dihasilkan
descriptionTEXTDeskripsi
is_deletedBOOLEANPenanda soft delete

3.2.3 Tabel Peluang (nb_crm_opportunities)

Manajemen Peluang penjualan dengan tahap sales pipeline yang dapat dikonfigurasi.

Field Kunci:

FieldTipeDeskripsi
idBIGINTPrimary key
opportunity_noVARCHARNomor Peluang (auto-generated, unique)
nameVARCHARNama Peluang (wajib)
amountDECIMALJumlah yang diharapkan
currencyVARCHARMata uang
exchange_rateDECIMALNilai tukar
amount_usdDECIMALJumlah ekuivalen USD
customer_idBIGINTPelanggan (FK)
contact_idBIGINTKontak utama (FK)
stageVARCHARKode tahap (FK → stages.code)
stage_sortINTEGERUrutan tahap (redundan, untuk pengurutan)
stage_entered_atTIMESTAMPWaktu masuk tahap saat ini
days_in_stageINTEGERHari di tahap saat ini
win_probabilityDECIMALProbabilitas menang manual
ai_win_probabilityDECIMALPrediksi probabilitas menang AI
ai_analyzed_atTIMESTAMPWaktu analisis AI
ai_confidenceDECIMALTingkat kepercayaan prediksi AI
ai_trendVARCHARTren prediksi AI: up/stable/down
ai_risk_factorsJSONBFaktor risiko yang diidentifikasi AI
ai_recommendationsJSONBDaftar rekomendasi AI
ai_predicted_closeDATETanggal closing prediksi AI
ai_next_best_actionTEXTRekomendasi langkah terbaik berikutnya dari AI
ai_nba_generated_atTIMESTAMPWaktu rekomendasi AI dihasilkan
expected_close_dateDATETanggal closing yang diharapkan
actual_close_dateDATETanggal closing aktual
owner_idBIGINTPenanggung jawab (FK → users)
last_activity_atTIMESTAMPWaktu aktivitas terakhir
stagnant_daysINTEGERHari tanpa aktivitas
loss_reasonTEXTAlasan kalah
competitor_idBIGINTKompetitor (FK)
lead_sourceVARCHARSumber Lead
campaign_idBIGINTID kampanye marketing
expected_revenueDECIMALPendapatan diharapkan = amount × probability
descriptionTEXTDeskripsi

3.2.4 Tabel Penawaran (nb_crm_quotations)

Manajemen Penawaran dengan dukungan multi-mata uang dan alur persetujuan.

Alur status:

Draft → Menunggu Persetujuan → Disetujui → Terkirim → Diterima/Ditolak/Kedaluwarsa

       Ditolak → Direvisi → Draft

Field Kunci:

FieldTipeDeskripsi
idBIGINTPrimary key
quotation_noVARCHARNomor Penawaran (auto-generated, unique)
nameVARCHARNama Penawaran
versionINTEGERNomor versi
opportunity_idBIGINTPeluang (FK, wajib)
customer_idBIGINTPelanggan (FK)
contact_idBIGINTKontak (FK)
owner_idBIGINTPenanggung jawab (FK → users)
currency_idBIGINTMata uang (FK → nb_cbo_currencies)
exchange_rateDECIMALNilai tukar
subtotalDECIMALSubtotal
discount_rateDECIMALPersentase diskon
discount_amountDECIMALJumlah diskon
shipping_handlingDECIMALPengiriman/biaya handling
tax_rateDECIMALTarif pajak
tax_amountDECIMALJumlah pajak
total_amountDECIMALTotal
total_amount_usdDECIMALTotal ekuivalen USD
statusVARCHARStatus: draft/pending_approval/approved/sent/accepted/rejected/expired
submitted_atTIMESTAMPWaktu submit
approved_byBIGINTApprover (FK → users)
approved_atTIMESTAMPWaktu disetujui
rejected_atTIMESTAMPWaktu ditolak
sent_atTIMESTAMPWaktu dikirim
customer_response_atTIMESTAMPWaktu respons Pelanggan
expired_atTIMESTAMPWaktu kedaluwarsa
valid_untilDATEBerlaku hingga
payment_termsTEXTSyarat pembayaran
terms_conditionTEXTSyarat dan ketentuan
addressTEXTAlamat pengiriman
descriptionTEXTDeskripsi

3.2.5 Tabel Pesanan (nb_crm_orders)

Manajemen Pesanan dengan pelacakan pembayaran.

Field Kunci:

FieldTipeDeskripsi
idBIGINTPrimary key
order_noVARCHARNomor Pesanan (auto-generated, unique)
customer_idBIGINTPelanggan (FK)
contact_idBIGINTKontak (FK)
opportunity_idBIGINTPeluang (FK)
quotation_idBIGINTPenawaran (FK)
owner_idBIGINTPenanggung jawab (FK → users)
currencyVARCHARMata uang
exchange_rateDECIMALNilai tukar
order_amountDECIMALJumlah Pesanan
paid_amountDECIMALJumlah dibayar
unpaid_amountDECIMALJumlah belum dibayar
statusVARCHARStatus: pending/confirmed/in_progress/shipped/delivered/completed/cancelled
payment_statusVARCHARStatus pembayaran: unpaid/partial/paid
order_dateDATETanggal Pesanan
delivery_dateDATEEstimasi tanggal pengiriman
actual_delivery_dateDATETanggal pengiriman aktual
shipping_addressTEXTAlamat pengiriman
logistics_companyVARCHARPerusahaan logistik
tracking_noVARCHARNomor pelacakan
terms_conditionTEXTSyarat dan ketentuan
descriptionTEXTDeskripsi

3.3 Ringkasan Tabel Data

Tabel Bisnis CRM

No.Nama TabelDeskripsiTipe
1nb_crm_leadsManajemen LeadBisnis
2nb_crm_customersPelanggan/PerusahaanBisnis
3nb_crm_contactsKontakBisnis
4nb_crm_opportunitiesPeluang penjualanBisnis
5nb_crm_opportunity_stagesKonfigurasi tahapKonfigurasi
6nb_crm_opportunity_usersKolaborator Peluang (tim sales)Asosiasi
7nb_crm_quotationsPenawaranBisnis
8nb_crm_quotation_itemsDetail PenawaranBisnis
9nb_crm_quotation_approvalsRiwayat persetujuanBisnis
10nb_crm_ordersPesananBisnis
11nb_crm_order_itemsDetail PesananBisnis
12nb_crm_paymentsRiwayat pembayaranBisnis
13nb_crm_productsKatalog ProdukBisnis
14nb_crm_product_categoriesKategori ProdukKonfigurasi
15nb_crm_price_tiersHarga bertingkatKonfigurasi
16nb_crm_activitiesRiwayat aktivitasBisnis
17nb_crm_commentsKomentar/catatanBisnis
18nb_crm_competitorsKompetitorBisnis
19nb_crm_tagsTagKonfigurasi
20nb_crm_lead_tagsAsosiasi Lead-TagAsosiasi
21nb_crm_contact_tagsAsosiasi Kontak-TagAsosiasi
22nb_crm_customer_sharesIzin berbagi PelangganAsosiasi
23nb_crm_exchange_ratesRiwayat nilai tukarKonfigurasi

Tabel Data Dasar (Modul Publik)

No.Nama TabelDeskripsiTipe
1nb_cbo_currenciesKamus mata uangKonfigurasi
2nb_cbo_regionsKamus negara/wilayahKonfigurasi

3.4 Tabel Pendukung

3.4.1 Tabel Komentar (nb_crm_comments)

Tabel komentar/catatan umum, dapat dikaitkan dengan berbagai objek bisnis.

FieldTipeDeskripsi
idBIGINTPrimary key
contentTEXTKonten komentar
lead_idBIGINTLead terkait (FK)
customer_idBIGINTPelanggan terkait (FK)
opportunity_idBIGINTPeluang terkait (FK)
order_idBIGINTPesanan terkait (FK)

3.4.2 Tabel Berbagi Pelanggan (nb_crm_customer_shares)

Mengimplementasikan kolaborasi multi-user dan berbagi izin Pelanggan.

FieldTipeDeskripsi
idBIGINTPrimary key
customer_idBIGINTPelanggan (FK, wajib)
shared_with_user_idBIGINTUser yang dibagi (FK, wajib)
shared_by_user_idBIGINTPemberi share (FK)
permission_levelVARCHARLevel izin: read/write/full
shared_atTIMESTAMPWaktu berbagi

3.4.3 Tabel Kolaborator Peluang (nb_crm_opportunity_users)

Mendukung kolaborasi tim sales pada Peluang.

FieldTipeDeskripsi
opportunity_idBIGINTPeluang (FK, composite primary key)
user_idBIGINTUser (FK, composite primary key)
roleVARCHARRole: owner/collaborator/viewer

3.4.4 Tabel Wilayah (nb_cbo_regions)

Kamus data dasar negara/wilayah.

FieldTipeDeskripsi
idBIGINTPrimary key
code_alpha2VARCHARKode 2 huruf ISO 3166-1 (unique)
code_alpha3VARCHARKode 3 huruf ISO 3166-1 (unique)
code_numericVARCHARKode numerik ISO 3166-1
nameVARCHARNama negara/wilayah
is_activeBOOLEANApakah aktif
sort_orderINTEGERUrutan

4. Siklus Hidup Lead

Manajemen Lead menggunakan Workflow 4-tahap yang disederhanakan, saat Lead baru dibuat dapat memicu skoring AI otomatis melalui Workflow, membantu sales mengidentifikasi Lead berkualitas tinggi dengan cepat.

4.1 Definisi Status

StatusNamaDeskripsi
newBaruBaru dibuat, menunggu kontak
workingSedang Follow-upSedang aktif di-follow up
qualifiedTervalidasiSiap dikonversi
unqualifiedTidak Memenuhi SyaratTidak cocok

4.2 Diagram Alur Status

design-2026-02-24-00-25-32

4.3 Alur Konversi Lead

Antarmuka konversi menyediakan tiga opsi sekaligus, pengguna dapat memilih untuk membuat atau menghubungkan:

  • Pelanggan: Buat Pelanggan baru atau hubungkan ke Pelanggan yang ada
  • Kontak: Buat Kontak baru (dihubungkan ke Pelanggan)
  • Peluang: Wajib membuat Peluang design-2026-02-24-00-25-22

Record setelah konversi:

  • converted_customer_id: ID Pelanggan terkait
  • converted_contact_id: ID Kontak terkait
  • converted_opportunity_id: ID Peluang yang dibuat

5. Siklus Hidup Peluang

Manajemen Peluang menggunakan tahap sales pipeline yang dapat dikonfigurasi. Saat tahap Peluang berubah, dapat secara otomatis memicu prediksi probabilitas menang AI, membantu sales mengidentifikasi risiko dan peluang.

5.1 Tahap yang Dapat Dikonfigurasi

Tahap disimpan di tabel nb_crm_opportunity_stages, dapat dikustomisasi:

KodeNamaUrutanProbabilitas Menang Default
prospectingKontak Awal110%
analysisAnalisis Kebutuhan230%
proposalPengajuan Proposal360%
negotiationNegosiasi Bisnis480%
wonBerhasil Menang5100%
lostKalah60%

5.2 Alur Pipeline

design-2026-02-24-00-20-31

5.3 Deteksi Stagnan

Peluang tanpa aktivitas akan ditandai:

Hari Tanpa AktivitasTindakan
7 hariPeringatan kuning
14 hariPeringatan oranye ke penanggung jawab
30 hariPeringatan merah ke manajer
-- Hitung hari stagnan
UPDATE nb_crm_opportunities
SET stagnant_days = EXTRACT(DAY FROM NOW() - last_activity_at)
WHERE stage NOT IN ('won', 'lost');

5.4 Pemrosesan Menang/Kalah

Saat menang:

  1. Update tahap menjadi 'won'
  2. Catat tanggal closing aktual
  3. Update status Pelanggan menjadi 'active'
  4. Picu pembuatan Pesanan (jika Penawaran diterima)

Saat kalah:

  1. Update tahap menjadi 'lost'
  2. Catat alasan kalah
  3. Catat ID kompetitor (jika kalah ke kompetitor)
  4. Beritahu manajer

6. Siklus Hidup Penawaran

6.1 Definisi Status

StatusNamaDeskripsi
draftDraftSedang disiapkan
pending_approvalMenunggu PersetujuanMenunggu approval
approvedDisetujuiDapat dikirim
sentTerkirimSudah dikirim ke Pelanggan
acceptedDiterimaPelanggan sudah menerima
rejectedDitolakPelanggan menolak
expiredKedaluwarsaMelewati masa berlaku

6.2 Aturan Persetujuan (Akan Disempurnakan)

Alur persetujuan dipicu berdasarkan kondisi berikut:

KondisiLevel Persetujuan
Diskon > 10%Manajer Penjualan
Diskon > 20%Direktur Penjualan
Jumlah > $100KKeuangan + Direktur Utama

6.3 Dukungan Multi-Mata Uang

Filosofi Desain

Menggunakan USD sebagai mata uang dasar terpadu untuk semua laporan dan analisis. Setiap record jumlah menyimpan:

  • Mata uang dan jumlah asli (yang dilihat Pelanggan)
  • Nilai tukar saat transaksi
  • Jumlah ekuivalen USD (untuk perbandingan internal)

Tabel Kamus Mata Uang (nb_cbo_currencies)

Konfigurasi mata uang menggunakan tabel data dasar publik, mendukung manajemen dinamis. Field current_rate menyimpan nilai tukar saat ini, di-sync update oleh scheduled task dari record terbaru di nb_crm_exchange_rates.

FieldTipeDeskripsi
idBIGINTPrimary key
codeVARCHARKode mata uang (unique): USD/CNY/EUR/GBP/JPY
nameVARCHARNama mata uang
symbolVARCHARSimbol mata uang
decimal_placesINTEGERJumlah desimal
current_rateDECIMALNilai tukar saat ini terhadap USD (di-sync terjadwal dari tabel riwayat nilai tukar)
is_activeBOOLEANApakah aktif
sort_orderINTEGERUrutan

Tabel Riwayat Nilai Tukar (nb_crm_exchange_rates)

Mencatat data nilai tukar historis, scheduled task akan men-sync nilai tukar terbaru ke nb_cbo_currencies.current_rate.

FieldTipeDeskripsi
idBIGINTPrimary key
currency_codeVARCHARKode mata uang (CNY/EUR/GBP/JPY)
rate_to_usdDECIMAL(10,6)Nilai tukar terhadap USD
effective_dateDATETanggal berlaku
sourceVARCHARSumber nilai tukar: manual/api
createdAtTIMESTAMPWaktu dibuat

Catatan: Penawaran dihubungkan ke tabel nb_cbo_currencies melalui foreign key currency_id, nilai tukar diambil langsung dari field current_rate. Peluang dan Pesanan menggunakan field VARCHAR currency untuk menyimpan kode mata uang.

Pola Field Jumlah

Tabel yang berisi jumlah mengikuti pola ini:

FieldTipeDeskripsi
currencyVARCHARMata uang transaksi
amountDECIMALJumlah mata uang asli
exchange_rateDECIMALNilai tukar terhadap USD saat transaksi
amount_usdDECIMALEkuivalen USD (dihitung)

Diterapkan pada:

  • nb_crm_opportunities.amountamount_usd
  • nb_crm_quotations.total_amounttotal_amount_usd

Integrasi Workflow

design-2026-02-24-00-21-00

Logika Pengambilan Nilai Tukar:

  1. Saat operasi bisnis, ambil nilai tukar langsung dari nb_cbo_currencies.current_rate
  2. Transaksi USD: nilai tukar = 1.0, tanpa perlu lookup
  3. current_rate di-sync oleh scheduled task dari record terbaru nb_crm_exchange_rates

6.4 Manajemen Versi

Saat Penawaran ditolak atau kedaluwarsa, dapat disalin sebagai versi baru:

QT-20260119-001 v1 → Ditolak
QT-20260119-001 v2 → Terkirim
QT-20260119-001 v3 → Diterima

7. Siklus Hidup Pesanan

7.1 Ikhtisar Pesanan

Pesanan dibuat saat Penawaran diterima, mewakili komitmen bisnis yang sudah dikonfirmasi. design-2026-02-24-00-21-21

7.2 Definisi Status Pesanan

StatusKodeDeskripsiOperasi yang Diizinkan
DraftdraftPesanan dibuat, belum dikonfirmasiEdit, konfirmasi, batal
DikonfirmasiconfirmedPesanan dikonfirmasi, menunggu fulfillmentMulai fulfillment, batal
Sedang Diprosesin_progressPesanan sedang diproses/produksiUpdate progress, kirim, batal (perlu approval)
TerkirimshippedProduk sudah dikirim ke PelangganTandai diterima
DiterimadeliveredPelanggan sudah menerimaSelesaikan Pesanan
SelesaicompletedPesanan benar-benar selesaiTidak ada
DibatalkancancelledPesanan dibatalkanTidak ada

7.3 Model Data Pesanan

nb_crm_orders

FieldTipeDeskripsi
idBIGINTPrimary key
order_noVARCHARNomor Pesanan (auto-generated, unique)
customer_idBIGINTPelanggan (FK)
contact_idBIGINTKontak (FK)
opportunity_idBIGINTPeluang (FK)
quotation_idBIGINTPenawaran (FK)
owner_idBIGINTPenanggung jawab (FK → users)
statusVARCHARStatus Pesanan
payment_statusVARCHARStatus pembayaran: unpaid/partial/paid
order_dateDATETanggal Pesanan
delivery_dateDATEEstimasi tanggal pengiriman
actual_delivery_dateDATETanggal pengiriman aktual
currencyVARCHARMata uang Pesanan
exchange_rateDECIMALNilai tukar terhadap USD
order_amountDECIMALTotal Pesanan
paid_amountDECIMALJumlah dibayar
unpaid_amountDECIMALJumlah belum dibayar
shipping_addressTEXTAlamat pengiriman
logistics_companyVARCHARPerusahaan logistik
tracking_noVARCHARNomor pelacakan
terms_conditionTEXTSyarat dan ketentuan
descriptionTEXTDeskripsi

nb_crm_order_items

FieldTipeDeskripsi
idBIGINTPrimary key
order_idFKParent Pesanan
product_idFKReferensi Produk
product_nameVARCHARSnapshot nama Produk
quantityINTJumlah dipesan
unit_priceDECIMALHarga satuan
discount_percentDECIMALPersentase diskon
line_totalDECIMALTotal per item
notesTEXTCatatan item

7.4 Pelacakan Pembayaran

nb_crm_payments

FieldTipeDeskripsi
idBIGINTPrimary key
order_idBIGINTPesanan terkait (FK, wajib)
customer_idBIGINTPelanggan (FK)
payment_noVARCHARNomor pembayaran (auto-generated, unique)
amountDECIMALJumlah pembayaran (wajib)
currencyVARCHARMata uang pembayaran
payment_methodVARCHARMetode pembayaran: transfer/check/cash/credit_card/lc
payment_dateDATETanggal pembayaran
bank_accountVARCHARNomor rekening bank
bank_nameVARCHARNama bank
notesTEXTCatatan pembayaran

8. Siklus Hidup Pelanggan

8.1 Ikhtisar Pelanggan

Pelanggan dibuat saat Lead dikonversi atau Peluang dimenangkan. Sistem melacak siklus hidup lengkap dari akuisisi hingga advocate. design-2026-02-24-00-21-34

8.2 Definisi Status Pelanggan

StatusKodeKesehatanDeskripsi
ProspekprospectTidak adaLead yang dikonversi, belum ada Pesanan
Aktifactive≥70Pelanggan berbayar, interaksi baik
Berkembanggrowing≥80Pelanggan dengan peluang ekspansi
Berisikoat_risk<50Pelanggan menunjukkan tanda churn
ChurnchurnedTidak adaPelanggan tidak lagi aktif
Win-backwin_backTidak adaMantan Pelanggan yang sedang diaktifkan kembali
Advocateadvocate≥90Kepuasan tinggi, memberikan referral

8.3 Skor Kesehatan Pelanggan

Hitung kesehatan Pelanggan berdasarkan beberapa faktor:

FaktorBobotIndikator
Recency Pembelian25%Hari sejak Pesanan terakhir
Frekuensi Pembelian20%Jumlah Pesanan per periode
Nilai Moneter20%Total dan rata-rata Pesanan
Tingkat Interaksi15%Open rate email, partisipasi meeting
Kesehatan Support10%Volume Ticket dan tingkat resolusi
Penggunaan Produk10%Indikator penggunaan aktif (jika berlaku)

Threshold Kesehatan:

if (health_score >= 90) status = 'advocate';
else if (health_score >= 70) status = 'active';
else if (health_score >= 50) status = 'growing';
else status = 'at_risk';

8.4 Segmentasi Pelanggan

Segmentasi Otomatis

SegmenKondisiTindakan yang Disarankan
VIPLifetime value > $100KLayanan VIP, sponsor eksekutif
EnterpriseSkala perusahaan > 500 orangAccount manager khusus
Mid-sizeSkala perusahaan 50-500 orangVisit berkala, support skala
StartupSkala perusahaan < 50 orangSumber daya self-service, komunitas
Dorman90+ hari tanpa aktivitasMarketing reaktivasi

9. Integrasi Email

9.1 Ikhtisar

NocoBase menyediakan plugin integrasi email bawaan, mendukung Gmail dan Outlook. Setelah email disinkronisasi ke sistem, dapat memicu analisis sentimen dan intent email AI secara otomatis melalui Workflow, membantu sales memahami sikap Pelanggan dengan cepat.

9.2 Sinkronisasi Email

Email yang Didukung:

  • Gmail (melalui OAuth 2.0)
  • Outlook/Microsoft 365 (melalui OAuth 2.0)

Perilaku Sinkronisasi:

  • Sinkronisasi dua arah email kirim dan terima
  • Otomatis menghubungkan email ke record CRM (Lead, Kontak, Peluang)
  • Lampiran disimpan di file system NocoBase

9.3 Asosiasi Email-CRM (Akan Disempurnakan)

design-2026-02-24-00-21-51

9.4 Template Email

Sales dapat menggunakan Template pre-built:

Kategori TemplateContoh
Outreach AwalCold email, perkenalan hangat, follow-up event
Follow-upFollow-up meeting, follow-up proposal, reminder tanpa balasan
PenawaranPenawaran terlampir, revisi Penawaran, Penawaran akan kedaluwarsa
PesananKonfirmasi Pesanan, notifikasi pengiriman, konfirmasi diterima
Customer SuccessWelcome, follow-up berkala, permintaan review

10. Kemampuan Bantuan AI

10.1 Tim AI Employee

Sistem CRM mengintegrasikan plugin AI NocoBase, menggunakan ulang AI Employee bawaan berikut, dan mengonfigurasi tugas khusus untuk skenario CRM:

IDNamaPosisi BawaanKemampuan CRM yang Diperluas
vizVizAnalis DataAnalisis data penjualan, prediksi pipeline
daraDaraAhli ChartVisualisasi data, pengembangan chart laporan, desain dashboard
ellisEllisEditorPenyusunan balasan email, ringkasan komunikasi, penyusunan email bisnis
lexiLexiPenerjemahKomunikasi Pelanggan multi-bahasa, terjemahan konten
orinOrinOrganizerPrioritas harian, rekomendasi langkah berikutnya, rencana follow-up

10.2 Daftar Tugas AI

Kemampuan AI dibagi menjadi dua kategori, saling independen:

Satu, AI Employee (dipicu oleh Block frontend)

Melalui Block AI Employee frontend, pengguna berinteraksi langsung dengan AI dalam percakapan, mendapatkan analisis dan rekomendasi.

EmployeeTugasDeskripsi
VizAnalisis data penjualanAnalisis tren pipeline, conversion rate
VizPrediksi pipelinePrediksi pendapatan berdasarkan pipeline berbobot
DaraGenerate chartGenerate chart laporan penjualan
DaraDesain dashboardDesain layout dashboard data
EllisPenyusunan balasanGenerate balasan email profesional
EllisRingkasan komunikasiRingkas thread email
EllisPenyusunan email bisnisEmail undangan meeting, follow-up, ucapan terima kasih, dll.
OrinPrioritas harianGenerate daftar tugas prioritas hari ini
OrinRekomendasi langkah berikutnyaRekomendasi tindakan berikutnya untuk setiap Peluang
LexiTerjemahan kontenTerjemahkan materi marketing, proposal, email

Dua, Node LLM Workflow (eksekusi otomatis backend)

Node LLM yang ter-nest dalam Workflow, dipicu otomatis melalui event tabel data, event Action, scheduled task, dll., tidak terkait dengan AI Employee.

TugasCara PemicuDeskripsiField Tulis
Skoring LeadEvent tabel data (create/update)Evaluasi kualitas Leadai_score, ai_convert_prob
Prediksi probabilitas menangEvent tabel data (perubahan tahap)Prediksi kemungkinan sukses Peluangai_win_probability, ai_risk_factors

Catatan: Node LLM Workflow menggunakan prompt dan Schema untuk output JSON terstruktur, di-parse lalu ditulis ke field data bisnis, tanpa intervensi pengguna.

10.3 Field AI di Database

TabelField AIDeskripsi
nb_crm_leadsai_scoreSkor AI 0-100
ai_convert_probProbabilitas konversi
ai_best_contact_timeWaktu kontak terbaik
ai_tagsTag yang dihasilkan AI (JSONB)
ai_scored_atWaktu skoring
ai_next_best_actionRekomendasi langkah terbaik berikutnya
ai_nba_generated_atWaktu rekomendasi dihasilkan
nb_crm_opportunitiesai_win_probabilityPrediksi probabilitas menang AI
ai_analyzed_atWaktu analisis
ai_confidenceTingkat kepercayaan prediksi
ai_trendTren: up/stable/down
ai_risk_factorsFaktor risiko (JSONB)
ai_recommendationsDaftar rekomendasi (JSONB)
ai_predicted_closeTanggal closing prediksi
ai_next_best_actionRekomendasi langkah terbaik berikutnya
ai_nba_generated_atWaktu rekomendasi dihasilkan
nb_crm_customersai_health_scoreSkor kesehatan 0-100
ai_health_gradeTingkat kesehatan: A/B/C/D
ai_churn_riskRisiko churn 0-100%
ai_churn_risk_levelTingkat risiko churn: low/medium/high
ai_health_dimensionsSkor setiap dimensi (JSONB)
ai_recommendationsDaftar rekomendasi (JSONB)
ai_health_assessed_atWaktu penilaian kesehatan
ai_tagsTag yang dihasilkan AI (JSONB)
ai_best_contact_timeWaktu kontak terbaik
ai_next_best_actionRekomendasi langkah terbaik berikutnya
ai_nba_generated_atWaktu rekomendasi dihasilkan

11. Engine Workflow

11.1 Workflow yang Sudah Diimplementasikan

Nama WorkflowTipe TriggerStatusDeskripsi
Leads CreatedEvent tabel dataAktifDipicu saat Lead dibuat
CRM Overall AnalyticsEvent AI EmployeeAktifAnalisis data CRM keseluruhan
Lead ConversionEvent setelah ActionAktifAlur konversi Lead
Lead AssignmentEvent tabel dataAktifPenugasan Lead otomatis
Lead ScoringEvent tabel dataDisableSkoring Lead (akan disempurnakan)
Follow-up ReminderScheduled taskDisableReminder follow-up (akan disempurnakan)

11.2 Workflow yang Akan Diimplementasikan

WorkflowTipe TriggerDeskripsi
Peningkatan tahap PeluangEvent tabel dataUpdate probabilitas menang dan catat waktu saat tahap berubah
Deteksi stagnasi PeluangScheduled taskMendeteksi Peluang tanpa aktivitas, kirim reminder
Persetujuan PenawaranEvent setelah ActionAlur persetujuan multi-level
Generate PesananEvent setelah ActionGenerate Pesanan otomatis setelah Penawaran diterima

12. Desain Menu dan Antarmuka

12.1 Struktur Backend Admin

MenuTipeDeskripsi
DashboardsGroupDashboard
- DashboardPageDashboard default
- SalesManagerPageTampilan Manajer Penjualan
- SalesRepPageTampilan Tenaga Penjualan
- ExecutivePageTampilan Eksekutif
LeadsPageManajemen Lead
CustomersPageManajemen Pelanggan
OpportunitiesPageManajemen Peluang
- TableTabDaftar Peluang
ProductsPageManajemen Produk
- CategoriesTabKategori Produk
OrdersPageManajemen Pesanan
SettingsGroupPengaturan
- Stage SettingsPageKonfigurasi tahap Peluang
- Exchange RatePagePengaturan nilai tukar
- ActivityPageRiwayat aktivitas
- EmailsPageManajemen email
- ContactsPageManajemen Kontak
- Data AnalysisPageAnalisis data

12.2 Tampilan Dashboard

Tampilan Manajer Penjualan

KomponenTipeData
Nilai PipelineKPI CardTotal pipeline per tahap
Leaderboard TimTabelRanking performa rep
Peringatan RisikoDaftar PeringatanPeluang risiko tinggi
Tren Probabilitas MenangLine ChartProbabilitas menang bulanan
Transaksi StagnanDaftarTransaksi yang perlu perhatian

Tampilan Tenaga Penjualan

KomponenTipeData
Progress Quota SayaProgress BarAktual bulanan vs Quota
Peluang PendingKPI CardJumlah Peluang pending saya
Akan Closing Minggu IniDaftarTransaksi yang akan closing
Aktivitas Lewat TenggatPeringatanTugas overdue
Action CepatTombolCatat aktivitas, buat Peluang

Tampilan Eksekutif

KomponenTipeData
Pendapatan TahunanKPI CardPendapatan year-to-date
Nilai PipelineKPI CardTotal pipeline
Win RateKPI CardWin rate keseluruhan
Kesehatan PelangganDistribution ChartDistribusi skor kesehatan
ForecastChartPrediksi pendapatan bulanan

Versi dokumen: v2.0 | Tanggal pembaruan: 2026-02-06