Platform Analitik Retensi Pelanggan
Analisis retensi pelanggan berbasis AI — prediksi churn, analisis sentimen, dan rekomendasi aksi retensi otomatis dalam satu dashboard.
- Deskripsi Singkat Proyek
- Fitur Utama
- Tautan Model dan Sumber Daya
- Petunjuk Setup Environment
- Cara Menjalankan Aplikasi
- Petunjuk Penggunaan
- Struktur Proyek
- Tech Stack
- Pemecahan Masalah (Troubleshooting)
- Informasi Penting Lainnya
- Penutup
Custora adalah platform analitik retensi pelanggan yang ditenagai oleh kecerdasan buatan (AI). Platform ini dirancang untuk membantu bisnis dalam:
- Mengidentifikasi pelanggan yang berisiko tinggi melakukan churn (berhenti berlangganan).
- Memahami sentimen pelanggan berdasarkan ulasan dan umpan balik yang diberikan.
- Mendapatkan rekomendasi aksi retensi yang konkret dan dapat ditindaklanjuti, yang dihasilkan secara otomatis oleh AI.
Dengan Custora, tim bisnis dapat mengambil keputusan berbasis data untuk meningkatkan loyalitas pelanggan dan mengurangi tingkat churn secara efektif.
| Fitur | Deskripsi |
|---|---|
| 📊 Dashboard Analitik | Ringkasan metrik retensi pelanggan secara real-time dalam tampilan visual yang informatif. |
| Prediksi dan penilaian (scoring) terhadap pelanggan yang berpotensi churn menggunakan model Machine Learning. | |
| 💬 Analisis Sentimen | Analisis sentimen otomatis terhadap ulasan dan umpan balik pelanggan. |
| 🤖 Rekomendasi Retensi AI | Rekomendasi aksi retensi yang dihasilkan secara otomatis oleh LLM (Alibaba Cloud Qwen). |
| 🗂️ Pusat Data (Data Hub) | Unggah dan kelola dataset CSV pelanggan dengan mudah. |
| 📑 Laporan | Ekspor laporan dalam format PDF dan CSV untuk keperluan dokumentasi dan presentasi. |
| 🔐 Autentikasi | Sistem login dan manajemen pengguna yang aman menggunakan Supabase Auth. |
Custora menggunakan dua jenis model AI:
-
Model LLM (Qwen oleh Alibaba Cloud) — Digunakan untuk fitur rekomendasi retensi AI. Model ini diakses melalui Alibaba Cloud DashScope API, sehingga tidak perlu diunduh atau dijalankan secara lokal. Cukup buat API key di DashScope, lalu masukkan ke dalam berkas
.env.local. -
Model Churn Prediction (Machine Learning) — Proses scoring churn dijalankan melalui ML API yang sudah di-deploy di Azure Container Apps. Dokumentasi endpoint API tersedia pada tautan di bawah.
| Sumber Daya | Tautan |
|---|---|
| 📂 Notebook Pelatihan & Model Machine Learning | Google Drive |
📄 Dataset Masukan (maret500.csv) |
Google Drive |
| 🚀 Dokumentasi ML API | ML API Docs |
| 📖 Panduan Penggunaan Aplikasi | Google Drive |
| 🔬 Notebook Pelatihan Model Churn | Google Colab |
| 🧪 Notebook Pelatihan IndoBERT | Google Colab |
- Model LLM (Qwen): Tidak perlu mengunduh model secara manual. Cukup atur variabel
ALIBABA_CLOUD_API_KEYdi berkas.env.local, dan aplikasi akan otomatis terhubung ke API DashScope. - Model Churn Prediction: Model dijalankan melalui ML API yang sudah di-deploy. Atur variabel
ML_API_URLdi berkas.env.localagar mengarah ke endpoint API yang aktif. - Notebook Pelatihan: Jika ingin melatih ulang model, buka tautan Google Colab di atas dan ikuti instruksi di dalam notebook.
Pastikan perangkat lunak berikut sudah terpasang di komputer Anda:
- Node.js versi 18 atau lebih baru — Unduh di sini
- npm versi 9 atau lebih baru (sudah termasuk saat memasang Node.js)
- Git — Unduh di sini
Selain itu, Anda juga memerlukan akun pada layanan berikut:
- Supabase — Untuk basis data dan autentikasi (tersedia paket gratis).
- Alibaba Cloud DashScope — Untuk mengakses model AI Qwen (diperlukan untuk fitur rekomendasi retensi).
git clone https://github.com/zickrian/Custora.git
cd Custoranpm installPerintah ini akan memasang seluruh paket yang dibutuhkan sesuai dengan berkas package.json.
Salin berkas template environment:
cp .env.example .env.localKemudian buka berkas .env.local menggunakan editor teks pilihan Anda, lalu isi variabel yang dibutuhkan:
# -----------------------------------------------
# Supabase (Wajib)
# Dapatkan dari: https://supabase.com/dashboard → Project Settings → API
# -----------------------------------------------
NEXT_PUBLIC_SUPABASE_URL=https://<project-ref>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon-key>
SUPABASE_SERVICE_ROLE_KEY=<service-role-key>
# -----------------------------------------------
# Alibaba Cloud DashScope (Wajib untuk fitur AI)
# Dapatkan dari: https://dashscope.aliyun.com
# -----------------------------------------------
ALIBABA_CLOUD_API_KEY=<api-key>
ALIBABA_CLOUD_MODEL_FALLBACKS=qwen3.5-122b-a10b,qwen3-max,qwen-plus
# -----------------------------------------------
# ML API (Opsional — untuk fitur churn prediction)
# Jika tidak diisi, scoring akan menggunakan heuristik lokal.
# -----------------------------------------------
ML_API_URL=https://custora-ml-api.redpebble-35acc587.southeastasia.azurecontainerapps.io💡 Catatan: Lihat berkas
.env.exampleuntuk daftar lengkap variabel beserta penjelasan masing-masing. Jangan pernah meng-commit berkas.env.localke version control.
Jalankan migrasi basis data menggunakan Supabase CLI:
npx supabase db pushAlternatif: Jika tidak menggunakan Supabase CLI, Anda juga dapat menjalankan berkas SQL yang terdapat di folder
supabase/migrations/secara berurutan melalui Supabase Dashboard → SQL Editor.
Jalankan perintah berikut untuk memulai server pengembangan:
npm run devSetelah server berhasil berjalan, buka alamat berikut di peramban (browser) Anda:
http://localhost:3000
Aplikasi akan dimuat ulang secara otomatis setiap kali Anda menyimpan perubahan pada kode sumber.
Untuk membangun dan menjalankan versi produksi:
# Membangun (build) aplikasi
npm run build
# Menjalankan server produksi
npm run startUntuk menjalankan pemeriksaan linting pada kode sumber:
npm run lintBerikut adalah panduan singkat cara menggunakan fitur-fitur utama Custora:
- Buka aplikasi di peramban (
http://localhost:3000). - Anda akan diarahkan ke halaman Login.
- Masuk menggunakan akun yang telah terdaftar melalui Supabase Auth.
- Navigasikan ke menu Pusat Data (Data Hub) pada sidebar.
- Klik tombol unggah dan pilih berkas CSV yang berisi data pelanggan Anda.
- Sistem akan memproses dan menyimpan data ke dalam basis data.
- Halaman utama (Dashboard) menampilkan ringkasan metrik retensi pelanggan.
- Grafik dan statistik akan diperbarui secara otomatis berdasarkan data yang telah diunggah.
- Buka menu Skor Risiko Churn pada sidebar.
- Sistem akan menampilkan daftar pelanggan beserta skor risiko churn masing-masing.
- Pelanggan dengan skor risiko tinggi ditandai secara visual agar mudah diidentifikasi.
- Buka menu Analisis Sentimen pada sidebar.
- Sistem akan menampilkan hasil analisis sentimen dari ulasan atau umpan balik pelanggan.
- Buka menu Rekomendasi Retensi AI pada sidebar.
- AI (Qwen) akan menghasilkan rekomendasi aksi retensi yang dapat ditindaklanjuti berdasarkan data pelanggan Anda.
- Buka menu Laporan pada sidebar.
- Pilih format ekspor yang diinginkan (PDF atau CSV).
- Berkas laporan akan diunduh secara otomatis ke komputer Anda.
custora/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── (dashboard)/ # Halaman utama (dilindungi autentikasi)
│ │ ├── ai-recommendations/ # Halaman rekomendasi retensi AI
│ │ ├── churn-risk/ # Halaman skor risiko churn
│ │ ├── sentiment-analysis/ # Halaman analisis sentimen
│ │ ├── data-hub/ # Halaman unggah & manajemen dataset
│ │ ├── reports/ # Halaman laporan & ekspor
│ │ ├── segments/ # Halaman segmentasi pelanggan
│ │ ├── settings/ # Halaman pengaturan
│ │ ├── api/ # API Routes (sisi server)
│ │ │ ├── ai-retention-analysis/ # Endpoint analisis retensi AI
│ │ │ ├── analytics/ # Endpoint analitik
│ │ │ ├── datasets/ # Endpoint dataset
│ │ │ ├── notifications/ # Endpoint notifikasi
│ │ │ └── reports/ # Endpoint laporan
│ │ ├── login/ # Halaman login
│ │ └── auth/ # Callback autentikasi (Supabase)
│ ├── components/ # Komponen React yang dapat digunakan ulang
│ │ ├── auth/ # Komponen terkait autentikasi
│ │ ├── core/ # Komponen inti (layout, sidebar, dll.)
│ │ └── dashboard/ # Komponen khusus dashboard
│ ├── lib/ # Utilitas dan konfigurasi
│ │ ├── supabase/ # Konfigurasi klien Supabase
│ │ └── custora/ # Logika bisnis Custora
│ └── assets/ # Aset statis (ikon, gambar, dll.)
├── supabase/
│ └── migrations/ # Berkas migrasi SQL basis data
├── machine learning/
│ └── datasets/ # Dataset sampel untuk pelatihan model
├── public/ # Berkas publik (favicon, gambar statis)
├── .env.example # Template variabel lingkungan
├── next.config.ts # Konfigurasi Next.js
├── tsconfig.json # Konfigurasi TypeScript
├── package.json # Daftar dependensi dan skrip proyek
└── eslint.config.mjs # Konfigurasi linting ESLint
| Lapisan | Teknologi | Keterangan |
|---|---|---|
| Framework | Next.js 15 (App Router) | Framework React untuk aplikasi web full-stack |
| Bahasa Pemrograman | TypeScript 5 | Superset JavaScript dengan pengetikan statis |
| Basis Data & Autentikasi | Supabase (PostgreSQL) | Backend-as-a-Service dengan basis data relasional |
| Styling | Tailwind CSS v4 | Framework CSS berbasis utilitas |
| AI / LLM | Alibaba Cloud Qwen | Model bahasa besar untuk rekomendasi retensi |
| ML API | FastAPI | API prediksi churn yang di-deploy di Azure |
| Grafik | Recharts | Pustaka visualisasi data untuk React |
| Ikon | Lucide React + React Icons | Koleksi ikon SVG untuk antarmuka |
| Ekspor PDF | jsPDF + jspdf-autotable | Pembuatan dokumen PDF di sisi klien |
| Pemrosesan CSV | PapaParse | Pustaka parsing dan pembuatan berkas CSV |
| Masalah | Kemungkinan Penyebab | Solusi |
|---|---|---|
npm install gagal |
Versi Node.js terlalu lama | Pastikan menggunakan Node.js versi 18 atau lebih baru. Cek dengan node -v. |
| Halaman menampilkan error koneksi Supabase | Variabel environment belum diatur | Pastikan berkas .env.local sudah terisi dengan benar. Periksa NEXT_PUBLIC_SUPABASE_URL dan NEXT_PUBLIC_SUPABASE_ANON_KEY. |
| Fitur rekomendasi AI tidak berfungsi | API key DashScope belum diatur | Pastikan variabel ALIBABA_CLOUD_API_KEY di berkas .env.local sudah terisi dengan API key yang valid. |
| Skor churn tidak muncul | ML API tidak tersedia | Periksa apakah ML_API_URL sudah diatur dengan benar. Jika API tidak tersedia, sistem akan otomatis menggunakan heuristik lokal sebagai pengganti. |
| Migrasi basis data gagal | Supabase CLI belum terpasang | Pasang Supabase CLI terlebih dahulu, atau jalankan berkas SQL secara manual melalui Supabase Dashboard → SQL Editor. |
| Port 3000 sudah digunakan | Aplikasi lain menggunakan port yang sama | Hentikan aplikasi lain yang menggunakan port 3000, atau jalankan dengan port berbeda: npm run dev -- -p 3001. |
- Jangan pernah meng-commit berkas
.env.localke repository. Berkas ini sudah tercantum di.gitignore. - Variabel dengan awalan
NEXT_PUBLIC_akan terekspos ke sisi klien (browser). Pastikan hanya memasukkan nilai yang memang boleh diakses publik. SUPABASE_SERVICE_ROLE_KEYmemiliki akses penuh ke basis data. Jangan gunakan awalanNEXT_PUBLIC_untuk variabel ini.
Model AI yang digunakan dalam aplikasi ini diperoleh dari Alibaba Cloud melalui layanan DashScope API dengan model Qwen. API key dapat diperoleh secara langsung di dashboard DashScope.
Di dalam folder machine learning/datasets/, tersedia beberapa dataset sampel yang dapat digunakan untuk pengujian:
| Berkas | Deskripsi |
|---|---|
maret500.csv |
Dataset utama berisi 500 data pelanggan |
maret.csv |
Dataset kecil untuk pengujian cepat |
input.csv |
Contoh format input minimal |
datasets.csv |
Dataset lengkap untuk pelatihan model |
Custora dikembangkan sebagai proyek Capstone dengan tujuan memberikan solusi nyata bagi pelaku bisnis dalam mengelola retensi pelanggan secara efektif. Dengan menggabungkan teknologi web modern dan kecerdasan buatan, platform ini diharapkan dapat menjadi alat bantu yang bermanfaat untuk memahami perilaku pelanggan, memprediksi risiko churn, dan mengambil langkah retensi yang tepat sasaran.
Dokumentasi ini disusun agar siapa pun dapat memasang, menjalankan, dan memahami keseluruhan sistem Custora dengan mudah.
Dibangun dengan ❤️ menggunakan Next.js, Supabase, dan Alibaba Cloud.