輕量 CRM — 接案者的客戶管理系統
針對自由工作者及小型團隊,建立客戶、商機、活動與銷售階段的集中管理系統。
正式營運GWP4 自有產品案例
本案例為 GWP4 自行開發的產品或研究專案,並非外部客戶委託案。列出的內容用於呈現實際技術能力與做法。
- 流程設計
- 權限與驗證
- Pipeline
- 客戶管理
- 全端開發
背景與問題
市面上的 CRM 多半是為銷售團隊設計的:功能龐大、設定繁瑣,一人或小型工作室用不到十分之一。實務上退回試算表,又缺少案件階段、活動紀錄與提醒,案子跑到哪裡只能靠記憶。
原本的處理方式
客戶資料存在通訊錄、案件進度記在試算表、溝通紀錄留在通訊軟體,三者互不相通,要回顧一個案子得翻三個地方。
設計目標
- 把客戶、案件、溝通紀錄放在同一個地方且互相關聯
- 用看板呈現案件階段,一眼看出目前有多少案子在跑
- 功能維持精簡,不重現大型 CRM 的複雜度
- 有明確的登入與權限機制
解決方案
設計四個核心模組:客戶管理、案件 Pipeline、活動紀錄、Dashboard。案件以階段流轉(潛在 → 聯繫中 → 提案 → 議價 → 成交/失敗),每個階段帶有預設成案機率;活動紀錄可關聯到客戶或案件,形成時間軸。前後端分離,前端 Next.js App Router,後端 NestJS 提供 API 與驗證。
核心功能
- 客戶基本資料、分類、來源標記與自訂標籤
- 案件 Pipeline 看板(拖拉切換階段)
- 階段預設成案機率
- 活動紀錄(通話、Email、會議、筆記)與時間軸
- Dashboard:成交金額、各階段案件數、客戶來源分析
- 登入驗證與資料隔離
系統架構
Next.js(App Router)前端 → NestJS API → PostgreSQL。UI 以 shadcn/ui + Tailwind CSS 建立一致的元件語言,看板使用拖拉互動元件。
技術選擇
- Next.js 15(App Router)
- NestJS
- PostgreSQL
- TypeScript 全端
- shadcn/ui + Tailwind CSS
開發過程與限制
- 刻意限制功能範圍:不做行銷自動化、不做複雜報表,避免變成另一套用不完的系統
- 案件階段的定義因人而異,資料模型需保留調整空間
- 拖拉看板的狀態同步需處理樂觀更新與失敗回復
可驗證指標
以下皆為可查證的技術事實,不含未經驗證的成效數字。
- 核心模組數
- 4(客戶、案件、活動、Dashboard)
- 案件階段
- 5 段流程,含成交/失敗結果
- 架構
- 前後端分離(Next.js + NestJS)
- 上線狀態
- 正式營運中
可以延伸到哪些產業
- 自由工作者與接案團隊
- 小型設計、行銷與顧問公司
- 需要案件階段管理的 B2B 服務業
- 任何目前用試算表追蹤客戶與案件的團隊