I. Tổng quan

1. Vấn đề

  • Người dùng mới khi bắt đầu sử dụng hệ thống Ucall thường gặp khó khăn trong việc hình dung cách hệ thống vận hành do workspace mới hoàn toàn trống rỗng.
  • Việc phải tự thiết lập các cấu hình phức tạp (pipelines, custom fields, ca làm việc, luồng tự động) từ đầu làm tăng rào cản tiếp cận sản phẩm và kéo dài thời gian time-to-value.

2. Giải pháp

  • Cung cấp tính năng Clone Workspace cho phép khởi tạo nhanh dữ liệu mẫu và cấu hình mẫu tối ưu theo từng ngành nghề (ví dụ: Bất động sản, Giáo dục, Tài chính, v.v.).
  • Giúp người dùng trải nghiệm ngay lập tức các luồng hoạt động thực tế của hệ thống mà không cần thiết lập thủ công.

3. Đối tượng

  • Người dùng mới đăng ký tài khoản và vừa tạo workspace mới.
  • Nhân viên hỗ trợ khách hàng (CS/Sales) cần tạo nhanh môi trường demo cho khách hàng.

4. Tầm nhìn/insight

  • Hỗ trợ thêm nhiều mẫu ngành nghề đa dạng và cho phép Admin tự định nghĩa/cập nhật các gói workspace mẫu (template store).

II. Yêu cầu chức năng

1. Danh sách tính năng

  • Lựa chọn ngành nghề khi khởi tạo workspace (ví dụ: Bất động sản, Giáo dục, v.v.).
  • Lựa chọn các tùy chọn clone:
    • Sử dụng cấu hình và dữ liệu mẫu: Sao chép cả cài đặt hệ thống & dữ liệu CRM mẫu.
    • Chỉ tạo dữ liệu mẫu: Giữ cấu hình trống, chỉ import data mẫu (Contact, Deal, v.v.).
    • Không: Bỏ qua và bắt đầu với workspace trống.
  • Tiến trình khởi tạo nền (Background Job) để clone data/config mà không làm block UI của người dùng.
  • Hiển thị trạng thái khởi tạo dữ liệu trực quan.

2. Đặc tả chi tiết

Luồng nghiệp vụ chính (Happy Path):

  1. Người dùng hoàn tất đăng ký tài khoản -> Hệ thống chuyển sang màn hình lựa chọn cấu hình/ngành nghề.
  2. Hệ thống hiển thị câu hỏi: “Bạn có muốn tạo dữ liệu mẫu theo ngành [Tên ngành]?”
  3. Người dùng chọn 1 trong 3 phương án:
    • Sử dụng cấu hình và dữ liệu mẫu:
      • Hệ thống thực hiện sao chép toàn bộ cấu hình mẫu của ngành nghề đó (Pipelines, Custom fields, Ca làm việc, Phân quyền, AdaFlow) và các bản ghi CRM mẫu (Contact, Deal, Task, v.v.).
    • Chỉ tạo dữ liệu mẫu:
      • Hệ thống chỉ sao chép các bản ghi CRM mẫu vào các trường dữ liệu tiêu chuẩn (system fields), không áp dụng cấu hình pipelines hay custom fields tùy biến của ngành.
    • Không:
      • Hệ thống bỏ qua bước này và dẫn người dùng vào thẳng màn hình Dashboard trống.
  4. Trong quá trình khởi tạo dữ liệu mẫu (chọn option 1 hoặc 2):
    • Hệ thống hiển thị thông báo trạng thái ở góc dưới bên trái màn hình: "Dữ liệu mẫu ngành [Tên ngành] đang được khởi tạo" kèm loading spinner.
    • Khi hoàn thành, thông báo đổi trạng thái thành "Khởi tạo dữ liệu mẫu thành công" và tự động reload hoặc cập nhật UI để hiển thị dữ liệu mới.

Chi tiết cấu hình và dữ liệu mẫu cần clone:

Khi người dùng chọn “Sử dụng cấu hình và dữ liệu mẫu”, hệ thống sẽ thực hiện sao chép hai phần độc lập dưới đây:

A. Cấu hình mẫu (Sample Configurations)

Sao chép các cài đặt, thiết lập hệ thống để tạo bộ khung vận hành cho workspace mới:

  1. Cài đặt hệ thống (Settings):
    • Các bộ quyền (Roles & Permissions): Sao chép các bộ quyền/vai trò mẫu tương ứng với cơ cấu tổ chức thông dụng của ngành (ví dụ: Quản lý, Telesale, Sales, CSKH).
    • Cấu hình ca làm việc (Work shifts): Khởi tạo các ca làm việc mẫu (ca hành chính, ca tối, ca gãy) làm cơ sở tính toán KPI và phân phối ticket/cuộc gọi.
    • Cài đặt dữ liệu CRM:
      • Sao chép danh sách các trường dữ liệu tiêu chuẩn (System Fields) và trường tùy chỉnh (Custom Fields).
      • Sao chép trạng thái sử dụng (Active/Inactive), thuộc tính bắt buộc (Required), giá trị mặc định, hiển thị của các trường dữ liệu đối với 8 đối tượng CRM: Khách hàng (Contact), Công ty (Enterprise), Sản phẩm (Product), Cơ hội bán hàng (Deal), Đơn hàng (Order), Ticket, Công việc (Task), Lịch hẹn (Meeting).
    • Cấu hình thông báo: Thiết lập sẵn các kênh thông báo (Web notification, Mobile app, Email) và các sự kiện trigger thông báo mẫu.
    • Cài đặt đa kênh (Omnichannel):
      • Cấu hình thông báo đa kênh.
      • Cấu hình tự động tạo contact khi có tin nhắn từ khách hàng mới.
      • Danh sách nhãn dán (tags/labels) phân loại hội thoại mẫu.
      • Danh sách tin nhắn nhanh (quick replies) mẫu hỗ trợ CSKH.
  2. Cấu hình các đối tượng CRM (CRM Objects & Views):
    • Áp dụng cho: Contact, Công ty, Sản phẩm, Đơn hàng, Deal, Ticket, Meeting, Task, Calendar (Lịch).
    • View và Quyền của View: Sao chép các bộ lọc hiển thị tùy chọn (ví dụ: Khách hàng của tôi, Cơ hội đang mở, Ticket khẩn cấp) kèm phân quyền xem cho từng bộ quyền tương ứng.
    • Danh sách (List Object): Clone các cột hiển thị mặc định, thứ tự sắp xếp và bộ lọc mặc định trong danh sách bản ghi của từng object.
  3. Cấu hình Chiến dịch & Thư viện kịch bản:
    • Các chiến dịch mẫu: Sao chép cấu hình khung của các chiến dịch Callbot, Telesale, và ZNS (chưa bao gồm danh sách khách hàng và logs chạy).
    • Thư viện kịch bản: Copy toàn bộ kịch bản Callbot mẫu, kịch bản tin nhắn ZNS/SMS mẫu, và mẫu email (email templates) tương ứng của ngành.
  4. Cấu hình KPI & Dashboard:
    • KPI: Tạo sẵn cấu hình chỉ tiêu KPI mẫu của nhân viên (ví dụ: số cuộc gọi thành công, doanh số Deal, số ticket đã xử lý).
    • Dashboard: Sao chép các widgets báo cáo, biểu đồ thống kê mẫu trên màn hình Dashboard tổng hợp.
  5. Adaflow (Automation Workflow):
    • Các flow tự động hóa: Sao chép toàn bộ các thiết lập trigger & action tự động hóa mẫu (ví dụ: Tự động tạo ticket khi cuộc gọi thất bại, Tự động gửi ZNS chăm sóc sau khi đơn hàng thành công).
    • Trạng thái hoạt động: Toàn bộ các flow được clone sang workspace mới sẽ mặc định ở trạng thái Tắt (Disabled/Inactive) để tránh tự động chạy ngoài ý muốn trước khi người dùng kiểm tra và bật thủ công.

B. Dữ liệu mẫu (Sample Data)

Sao chép các bản ghi thực tế giúp người dùng trải nghiệm ngay lập tức các luồng hoạt động trực quan:

  1. Bản ghi CRM (CRM Records):
    • Tạo và liên kết (association) các bản ghi mẫu cụ thể đối với toàn bộ các đối tượng:
      • Khách hàng (Contact)
      • Công ty (Enterprise)
      • Sản phẩm (Product)
      • Đơn hàng (Order)
      • Cơ hội bán hàng (Deal)
      • Ticket
      • Lịch hẹn (Meeting)
      • Công việc (Task)
      • Lịch làm việc/lịch hẹn (Calendar)
  2. Dữ liệu Chiến dịch (Campaign Data):
    • Khách hàng của chiến dịch (Campaign Leads/Contacts): Sao chép danh sách khách hàng mẫu được gán trực tiếp vào các chiến dịch Callbot, Telesale, ZNS để người dùng có thể thực hiện chạy thử nghiệm.
    • Báo cáo chiến dịch:
      • Quy tắc nghiệp vụ: Không sao chép lịch sử logs cuộc gọi/ZNS thực tế để tránh gây nhiễu dữ liệu. Báo cáo chi tiết của chiến dịch sẽ được reset về 0 (trống).
      • Ngoại lệ: Chỉ tạo sẵn các chỉ số thống kê tổng hợp giả lập (aggregated metrics) nếu cần thiết hiển thị biểu đồ mẫu trên Dashboard tổng quan.
  3. Hội thoại đa kênh (Sample Conversations):
    • Tạo một số hội thoại chat mẫu giả lập trên các kênh chat đa kênh để người dùng trải nghiệm tính năng trả lời và gán nhãn dán trong module Chat.

3. Danh sách nghiệp vụ

  • Cô lập dữ liệu mẫu: Dữ liệu mẫu cần được đánh dấu (ví dụ trường is_sample: true) để hệ thống có thể dễ dàng xóa sạch hoặc lọc bỏ khi người dùng muốn reset workspace về trạng thái trống.
  • Xử lý bất đồng bộ: Quá trình clone cấu hình và data mẫu phải được thực hiện dưới dạng background job (Queue) để tránh timeout API và không làm đơ giao diện người dùng.
  • Tránh trùng lặp: Nếu workspace đã có sẵn dữ liệu do người dùng tạo trước đó (trường hợp quay lại cài đặt sau), hệ thống cần cảnh báo trước khi thực hiện clone để tránh ghi đè cấu hình hoặc trùng lặp dữ liệu.

4. Giao diện

  • Tham chiếu theo thiết kế giao diện:
    • Tiêu đề chính giữa: Bạn có muốn tạo dữ liệu mẫu theo ngành [Tên ngành]?
    • 3 nút lựa chọn lớn xếp ngang:
      • Sử dụng cấu hình và dữ liệu mẫu
      • Chỉ tạo dữ liệu mẫu
      • Không
    • Góc trên bên trái: Nút Quay lại (nếu có bước trước đó).
    • Góc dưới bên phải: Nút Bỏ qua (tương đương với chọn “Không”).
    • Khi bắt đầu khởi tạo, hiển thị Toast thông báo trạng thái dưới góc trái màn hình:
      • Nội dung: “Dữ liệu mẫu ngành [Tên ngành] đang được khởi tạo”
      • Có loading progress hoặc spinner.

III. Yêu cầu phi chức năng

  • Thời gian phản hồi: Việc hiển thị màn hình chọn ngành nghề và nhận lệnh phải tức thời (< 500ms).
  • Hiệu năng clone: Background job clone dữ liệu mẫu & cấu hình không được chạy quá 10 giây.
  • Độ tin cậy: Giao dịch database (Transaction) phải được sử dụng trong quá trình clone để đảm bảo nếu có lỗi xảy ra giữa chừng, toàn bộ cấu hình/dữ liệu mẫu bị lỗi sẽ được rollback hoàn toàn, tránh trạng thái workspace bị lỗi nửa vời.

IV. Dependency (liên quan & phụ thuộc)

  • CRM Metadata & Custom Field Service: Để clone danh sách trường, trạng thái sử dụng, thuộc tính bắt buộc của các CRM objects.
  • Omnichannel Service: Để clone cài đặt đa kênh (nhãn dán, tin nhắn nhanh, contact tự động).
  • Campaign Service: Để clone các chiến dịch (Callbot, Telesale, ZNS), kịch bản mẫu và data khách hàng chiến dịch.
  • KPI & Dashboard Service: Để clone chỉ tiêu KPI và cấu hình widget dashboard.
  • AdaFlow Engine: Để clone các automation flow ở trạng thái tắt.
  • Work Shift Service: Để clone ca làm việc mẫu.
  • Notification Service: Để clone cấu hình nhận thông báo.

V. API Contract (dev viết)


VI. Test case (BA hoặc tester viết)

  • TC1 (Happy Path - Clone toàn bộ): Chọn “Sử dụng cấu hình và dữ liệu mẫu” -> Hệ thống tạo thành công -> Workspace có đầy đủ:
    • Cài đặt hệ thống: các bộ quyền, ca làm việc, cài đặt trường dữ liệu của các CRM objects, cấu hình thông báo, cài đặt đa kênh.
    • CRM objects: các view, quyền của view, list objects (Contact, Công ty, Sản phẩm, Đơn hàng, Deal, Ticket, Meeting, Task, Calendar).
    • Chiến dịch (Callbot, Telesale, ZNS): các chiến dịch, khách hàng của chiến dịch, thư viện kịch bản mẫu, báo cáo chiến dịch ở trạng thái reset về 0 (chỉ có số thống kê giả lập trên dashboard).
    • KPI & Dashboard mẫu.
    • Adaflow: các flow được clone và mặc định tắt.
  • TC2 (Happy Path - Chỉ tạo dữ liệu mẫu): Chọn “Chỉ tạo dữ liệu mẫu” -> Hệ thống tạo thành công -> Workspace có các bản ghi CRM mẫu nhưng cấu hình pipelines và fields ở dạng mặc định của hệ thống.
  • TC3 (Không clone): Chọn “Không” hoặc bấm “Bỏ qua” -> Hệ thống dẫn trực tiếp vào workspace trống, không có dữ liệu hay cấu hình mẫu.
  • TC4 (Xử lý khi lỗi mạng/timeout): Đang clone thì mạng chập chờn -> Khi có mạng lại hoặc load lại trang, hệ thống check job status và rollback hoặc hiển thị thông báo lỗi tương ứng để người dùng có thể trigger lại mà không bị lỗi trùng lặp dữ liệu.