Fixinguru CRM And Chatbot
Overview
Platform layanan handyman 24/7 untuk operator di Singapura. Customer chat lewat WhatsApp untuk dapat quote instan dan booking appointment, sementara operator mengelola layanan, pekerja, dan invoice dari dashboard admin real-time. Platform-nya live di produksi, sudah memproses SGD 22.000+, dan mendapat ulasan klien positif di
Google.
Tech Stack
- React 18 + TypeScript + Vite untuk dashboard admin
- TailwindCSS untuk styling
- Express.js (Node.js) untuk backend bot WhatsApp
- Twilio WhatsApp Business API sebagai transport BSP resmi
- Supabase untuk Postgres, Auth, Storage, dan subscription real-time
- Redis untuk state percakapan dengan TTL 24 jam
Features
- WhatsApp Chatbot. Percakapan terpandu menangani greeting, alamat, pilih layanan, upload foto (1 sampai 3 gambar), dan kalkulasi quote dinamis.
- Dynamic Quote Engine. Pricing menggabungkan aturan service-level dan multiplier tipe properti. Customer bisa stack beberapa layanan dalam satu inquiry.
- Real-time Admin CRM. Inquiry, appointment, dan update invoice stream live lewat subscription Supabase.
- Worker Assignment & Calendar. Sistem 12 slot (jam 9 pagi sampai 9 malam, per jam) dengan matching berbasis skill dan proteksi double-booking.
- Invoice Generation. Operator menerbitkan invoice yang terhubung ke inquiry dan notif customer lewat WhatsApp. Status track paid, down payment, atau cancelled.
Challenges & Solutions
State percakapan dalam skala besar. Mem-persist tiap turn WhatsApp ke Postgres itu boros. Diatasi dengan menahan state aktif di Redis pakai TTL 24 jam yang match dengan service window WhatsApp. Cuma inquiry yang sudah final yang masuk ke Postgres.
Penanganan media yang reliabel. URL media Twilio butuh basic auth dan cepat expired. Bot mendownload tiap attachment langsung dan re-upload ke Supabase Storage supaya foto tetap accessible.
Pemrosesan webhook async. Twilio mengharapkan response TwiML kosong dalam hitungan detik. Webhook return langsung dan pemrosesan di-queue, jadi call database yang lambat tidak memicu retry storm.
Single source of truth. Chatbot dan CRM baca/tulis ke project Supabase yang sama, jadi inquiry dari WhatsApp dan walk-in tampil identik.
Compliance vs. kecepatan iterasi. Baileys dipakai buat validasi flow dengan cepat di development. Production switch ke API kelas BSP Twilio buat compliance ToS dan volume unlimited.
Lessons Learned
- Pilih integrasi yang match dengan tahap deployment. Baileys buat sandbox, BSP resmi buat apa pun yang customer-facing.
- Service window 24 jam itu constraint sistem. Dia membentuk TTL state, retry policy, dan template fallback.
- Konsolidasi infrastruktur kalau memungkinkan. Supabase mencakup empat layanan di satu platform, membebaskan waktu untuk product work.
- Share TypeScript type lintas boundary. Frontend dan bot pakai type yang sama mencegah seluruh kategori bug integrasi.