Tại sao lại là CRM và tại sao lại là Supabase?
Trong bối cảnh kinh doanh hiện nay, việc quản lý thông tin khách hàng một cách khoa học không còn là lựa chọn, mà là yêu cầu sống còn. Một hệ thống CRM giúp bạn theo dõi tương tác, lịch sử mua hàng, ghi chú và các hoạt động chăm sóc khách hàng, từ đó nâng cao trải nghiệm và tăng doanh số.
Tuy nhiên, xây dựng một ứng dụng CRM truyền thống thường đòi hỏi nhiều thời gian cho backend, database, authentication và hosting. Supabase ra đời để giải quyết vấn đề này: chỉ với một backend “ready-to-use”, bạn có thể tập trung hoàn toàn vào giao diện và trải nghiệm người dùng.
Chuẩn bị trước khi bắt đầu
Trước khi code, bạn cần:
– Một tài khoản Supabase (miễn phí).
– Một project mới trong Supabase Dashboard.
– Cài đặt Supabase CLI hoặc sẵn sàng làm việc trực tiếp trên dashboard.
– Một editor code (VS Code, Cursor, hoặc bất kỳ editor nào bạn thích).
Bước 1: Thiết kế database
Mở tab Table Editor trong Supabase, tạo các bảng sau:
customers
– id (UUID, primary key)
– name (text)
– email (text)
– phone (text)
– company (text)
– created_at (timestamp, default now())
interactions
– id (UUID, primary key)
– customer_id (UUID, foreign key → customers.id)
– type (text) – ví dụ: “call”, “email”, “meeting”
– notes (text)
– created_at (timestamp, default now())
tasks
– id (UUID, primary key)
– customer_id (UUID, foreign key → customers.id)
– title (text)
– due_date (timestamp)
– status (text) – ví dụ: “pending”, “completed”
– created_at (timestamp, default now())
Quan hệ giữa các bảng được thiết lập qua foreign key, đảm bảo tính toàn vẹn dữ liệu.
Bước 2: Bật Authentication
Vào Authentication > Settings, bật Email providers. Điều này cho phép người dùng đăng ký và đăng nhập vào ứng dụng CRM của bạn.
Bước 3: Tạo Row Level Security (RLS)
RLS giúp bảo mật dữ liệu, đảm bảo mỗi người dùng chỉ thấy dữ liệu của mình.
Vào Authentication > Policies, tạo policy cho bảng customers:
-- Cho phép người dùng xem, thêm, sửa, xóa customer của chính họ
(
auth.uid()::text = 'authenticated' AND
customer_id = auth.uid()
)Tương tự, tạo policy cho interactions và tasks với điều kiện customer_id = auth.uid().
Bước 4: Tạo frontend với React + Supabase UI
Khởi tạo project React:
npx create-react-app crm-app
cd crm-app