Customer care CRM

Customers and staff working in the same project

  • Web

Looking after customers through Zalo, email and spreadsheets means requests drift through group chats and nobody knows what is waiting on whom. This CRM puts everything in a project per customer — customers open issues and message staff inside their own project, and staff see what is overdue and who has not been called back.

Customer care CRM
01

Features

GitHub-style issues

Numbered per project, with labels, assignees, priority, due dates and milestones; closing or reopening leaves a trail.

Chat with customers

Customers and staff talk inside the project, attach files and link issues by #number; it reconnects and back-fills missed messages.

Documents

Drag in many files, with folders and versions; uploads stream straight to storage and previews check permissions.

Care log

Calls, meetings and emails; schedule a call-back and assign follow-ups. Internal only — customers never see it.

Sales pipeline

Drag deals through stages; expected revenue is weighted by each stage's probability.

Overview and reports

Customers waiting on a reply, what is due, each person's workload and response time; exported to Excel.

02

Screenshots

03

Real time without another service

Chat, the notification bell and unread counts update instantly without adding Redis or a WebSocket server: each process holds a single LISTEN connection to PostgreSQL and fans out to browsers over Server-Sent Events. A message is written and NOTIFY fires in the same transaction, so a notification never arrives before its data.

04

Stack and infrastructure

ApplicationNext.js 16 (App Router, Server Actions), Tailwind CSS 4
DataPostgreSQL, plain SQL via pg — no ORM
Real timeSSE on LISTEN/NOTIFY
FilesMinIO, streamed uploads
NotificationsWeb Push, email
Sign-inEmail or phone; scrypt passwords, sessions stored in the database
ServersUbuntu, nginx, systemd, TLS