Đây là tài liệu gốc để định nghĩa, xác định phạm vi và nêu nguyên tắc chung cho nhóm CRM objects.
1. Định nghĩa
Trong CRM có nhiều đối tượng nghiệp vụ ngang hàng như Contact, Enterprise, Deal, Ticket, Order, Meeting, Task, Product.
Trong phạm vi CRM hiện tại, không có khái niệm hoặc object Lead.
Các đối tượng này khác nhau về mục đích nghiệp vụ nhưng có chung một số nguyên tắc quản lý dữ liệu, liên kết và vận hành.
Nếu không có một tài liệu gốc để định nghĩa và chốt phạm vi dùng chung, các tài liệu chi tiết dễ bị lặp lại nội dung, dùng thuật ngữ không thống nhất hoặc gán nhầm một tính năng cho tất cả object.
Vì vậy cần một tài liệu gốc để định nghĩa khái niệm objects, xác định object nào thuộc nhóm này và nêu rõ những gì là nguyên tắc chung, những gì phải đặc tả ở tài liệu riêng.
2. Giải pháp
File này chỉ đóng vai trò tài liệu gốc cho nhóm CRM objects, bao gồm:
Định nghĩa nhóm object.
Danh sách object ngang hàng trong phạm vi CRM.
Nguyên tắc chung áp dụng ở mức khái niệm.
Ranh giới giữa nội dung dùng chung và nội dung phải đặc tả riêng.
File này không dùng để đặc tả chi tiết use case, UI flow, API behavior hay test scenario cho mọi object.
Các hành vi chi tiết của từng object hoặc từng capability dùng chung phải được tách sang tài liệu con tương ứng.
3. Đối tượng
BA, PO, Dev, QA, Designer, quản trị viên sản phẩm và các bên cần hiểu mô hình chung của CRM objects trước khi đi vào tài liệu chi tiết.
Với người dùng CRM cuối, tên gọi vai trò và quyền hạn có thể được cấu hình theo từng hệ thống/doanh nghiệp; hệ thống không mặc định cố định các role như Nhân viên, Quản lý.
4. Tầm nhìn/insight (Các vấn đề sẽ làm trong tương lai)
Chuẩn hóa cách hiểu về objects để các tài liệu con có cùng ngôn ngữ, cùng ranh giới và không lặp lại phần định nghĩa chung.
Tạo nền tảng để bổ sung object mới hoặc capability mới mà vẫn giữ cấu trúc tài liệu nhất quán.
II. Yêu cầu chức năng
1. Danh sách tính năng
Phạm vi của file này:
Định nghĩa objects trong CRM.
Xác định danh sách object ngang hàng trong phạm vi tài liệu.
Nêu các nguyên tắc dùng chung ở mức khái niệm.
Chỉ ra các capability thường liên quan đến object nhưng không đặc tả hành vi chi tiết.
Xác định nội dung nào phải được viết ở tài liệu riêng.
Không lập danh sách capability đặc thù cho từng object trong file này; các điểm đặc biệt của từng object sẽ được mô tả ở file riêng của object đó.
Điều hướng tài liệu hiện tại:
Mục này chỉ dùng để chỉ đường theo các file đang có trong repo.
Đây không phải cam kết rằng tất cả file bên dưới đã hoàn thiện hoặc đã là nguồn cuối cùng của từng chủ đề.
Khi một chủ đề có nhiều file liên quan, file chi tiết của object hoặc module vẫn là nơi cần đọc để chốt rule cuối cùng.
Quy tắc filter xuyên object thông qua association.
Hành vi riêng của từng object như trạng thái, pipeline, SLA, owner (account_manager), relation hợp lệ.
Nguyên tắc dùng chung khi viết tài liệu con:
Chỉ kế thừa các nguyên tắc chung đã được chốt trong file này.
Không mặc định mọi capability đều áp dụng giống nhau cho mọi object.
Mọi điểm đặc thù phải được ghi rõ ở tài liệu của object hoặc module liên quan.
3. Danh sách nghiệp vụ
Ý nghĩa nghiệp vụ độc lập: Mỗi object là một thực thể nghiệp vụ riêng, không thay thế cho object khác dù có thể liên quan chặt chẽ với nhau.
Quản lý theo bản ghi và trường dữ liệu: Mỗi object được quản lý theo tập bản ghi; mỗi bản ghi gồm các trường dữ liệu phục vụ lưu trữ, hiển thị và xử lý nghiệp vụ.
Tập trường dữ liệu: Mỗi object cần có tập trường dữ liệu chuẩn. Việc có hỗ trợ trường tùy chỉnh hay không sẽ được xác nhận theo phạm vi của object hoặc module liên quan.
Liên kết giữa các object:Association là mô hình liên kết dữ liệu giữa các object. Quan hệ giữa các object phải được định nghĩa rõ ở tài liệu riêng; không mặc định mọi object liên kết được với mọi object khác.
Hiển thị association: Theo tài liệu nguồn hiện tại, giao diện association có thể phân biệt giữa liên kết trực tiếp và gợi ý liên kết thông qua object trung gian.
Trường liên kết: Tài liệu nguồn hiện có một số ví dụ field liên kết như Liên hệ chính, Liên hệ, Công ty, Order. Tên field và kiểu chọn một/nhiều cần được chốt ở tài liệu chi tiết của từng object hoặc từng module.
Filter xuyên object: Hệ thống cần được thiết kế để có thể hỗ trợ lọc dữ liệu của một object dựa trên điều kiện của object liên kết thông qua association. Phạm vi filter cross-object cụ thể phải được xác nhận ở tài liệu chi tiết của từng object hoặc từng module.
Trường tính toán theo association: Tài liệu nguồn cũng thể hiện hướng dùng association trực tiếp làm đầu vào cho một số trường tính toán tự động như doanh thu, doanh thu dự kiến, số lượng order, số lượng ticket. Công thức cụ thể phải được đặc tả ở tài liệu của từng object.
Khả năng dùng chung không mặc định: Các capability như view, workflow, activity history, export, owner (account_manager), custom field có thể là capability dùng chung của hệ thống CRM, nhưng chỉ được xem là áp dụng cho một object khi đã được xác nhận ở tài liệu chi tiết.
Nguyên tắc mở rộng: Khi bổ sung object mới, cần định nghĩa tối thiểu:
Mục đích nghiệp vụ.
Tập trường dữ liệu cốt lõi.
Quan hệ với các object khác.
Quyền truy cập và phạm vi thao tác.
Các capability được hỗ trợ.
Thuật ngữ nhất quán: Các thuật ngữ như object, record, field, association, owner (account_manager), status, view cần được dùng nhất quán giữa các tài liệu.
Giải thích thuật ngữ dùng chung
Thuật ngữ
Giải thích
Object
Đối tượng nghiệp vụ trong CRM, ví dụ Contact, Enterprise, Deal, Ticket, Order, Meeting, Task, Product.
Record
Một bản ghi cụ thể thuộc một object.
Field
Trường dữ liệu của một record.
System Field
Trường dữ liệu chuẩn do hệ thống định nghĩa sẵn cho object.
Custom Field
Trường dữ liệu được bổ sung thêm để phù hợp với nhu cầu của từng doanh nghiệp hoặc từng module.
Association
Mô hình liên kết dữ liệu giữa các record của các object khác nhau. Đây là relation model, không phải field type.
Liên kết trực tiếp
Liên kết được tạo trực tiếp giữa hai record thông qua association.
Gợi ý liên kết
Liên kết được hệ thống gợi ý dựa trên object trung gian hoặc dữ liệu liên quan, chưa đồng nghĩa với liên kết trực tiếp đã được xác nhận.
Owner
Nhân viên phụ trách chính của record. Trong CRM hiện tại, owner được hiểu là account_manager.
Account Manager
Nhân viên phụ trách một record hoặc một khách hàng. Đây là cách gọi nghiệp vụ hiện tại tương ứng với owner.
Status
Trạng thái nghiệp vụ hiện tại của record. Tập trạng thái cụ thể do từng object quy định.
View
Cấu hình hiển thị dữ liệu, bao gồm kiểu trình bày, cột hiển thị, bộ lọc và sắp xếp.
Filter
Điều kiện lọc dữ liệu trong danh sách hoặc trong view.
Cross-object Filter
Bộ lọc cho phép lọc record của một object dựa trên điều kiện nằm ở object liên kết thông qua association.
Sort
Quy tắc sắp xếp dữ liệu theo một hoặc nhiều trường.
List
Màn hình hoặc ngữ cảnh hiển thị tập record của một object.
Detail
Màn hình hoặc ngữ cảnh hiển thị chi tiết một record.
Activity History
Lịch sử thao tác hoặc biến động dữ liệu của record theo thời gian.
Permission
Tập quy tắc xác định người dùng nào được xem hoặc thao tác gì trên dữ liệu.
Workflow
Rule hoặc luồng tự động hóa có sử dụng object làm điều kiện, trigger hoặc action.
4. Giao diện
File này không chốt giao diện chi tiết.
Nếu cần thiết kế UI, các màn hình hoặc component cụ thể phải được mô tả ở tài liệu con và file thiết kế tương ứng.
Ở mức nguyên tắc chung, UI của các object nên:
Giữ cách gọi tên và cấu trúc thao tác nhất quán trong CRM.
Ưu tiên tái sử dụng pattern chung khi nhiều object có hành vi tương tự.
Chỉ khác biệt khi có yêu cầu nghiệp vụ riêng.
III. Yêu cầu phi chức năng
Tính nhất quán: Các object cần tuân theo nguyên tắc hiển thị và thao tác dùng chung của CRM, giúp người dùng dễ học và dễ chuyển đổi giữa các object. Những điểm khác biệt chỉ nên xuất hiện khi có yêu cầu nghiệp vụ riêng của từng object.
Hiệu suất: Các màn hình danh sách, chi tiết, tìm kiếm, lọc và thao tác cập nhật dữ liệu cần có thời gian phản hồi phù hợp để không làm gián đoạn quá trình làm việc của người dùng. Chỉ số đo cụ thể sẽ được xác định tại tài liệu chi tiết hoặc giai đoạn thiết kế kỹ thuật của từng module.
Bảo mật và phân quyền: Dữ liệu object phải được kiểm soát truy cập theo vai trò, phạm vi dữ liệu và các quy tắc phân quyền của hệ thống. Người dùng không được nhìn thấy hoặc thao tác trên dữ liệu, trường dữ liệu hoặc hành động vượt quá thẩm quyền được cấp.
Toàn vẹn và truy vết dữ liệu: Các thay đổi quan trọng trên object cần được kiểm soát hợp lệ, hạn chế mất mát dữ liệu và có khả năng truy vết lịch sử thao tác khi cần kiểm tra hoặc đối soát.
Khả năng mở rộng: Hệ thống cần hỗ trợ việc bổ sung object mới, trường dữ liệu mới và các quy tắc nghiệp vụ mới mà không làm phá vỡ nguyên tắc dùng chung của nhóm CRM objects. Cách triển khai kỹ thuật cụ thể sẽ được xác định ở tài liệu thiết kế tương ứng.
Độ tin cậy khi vận hành: Các chức năng xử lý dữ liệu khối lượng lớn như import, export, đồng bộ hoặc automation cần được thiết kế theo cách đảm bảo an toàn hệ thống và giảm ảnh hưởng đến trải nghiệm sử dụng thông thường.
IV. Dependency (Liên quan & phụ thuộc)
Ở mức tài liệu, objects.md có liên quan đến các nhóm tài liệu hoặc module dùng chung sau:
List/View
Detail
Custom Field
Association
Activity History
Permission
Workflow
Import/Export
Phụ thuộc kỹ thuật hoặc phụ thuộc triển khai cụ thể của từng object phải được mô tả ở tài liệu con hoặc tài liệu thiết kế kỹ thuật tương ứng.
V. API Contract (Dev viết)
File này không định nghĩa API contract chi tiết.
API của từng object hoặc từng capability dùng chung cần được mô tả ở tài liệu kỹ thuật hoặc tài liệu API riêng.
Nếu có pattern API dùng chung cho nhiều object, nên tách thành một tài liệu riêng để tránh lặp lại ở từng object.
VI. Test case (BA hoặc Tester viết)
Tiêu chí nghiệm thu cho chính file tài liệu này:
Xác định rõ objects.md là tài liệu gốc về định nghĩa, phạm vi và nguyên tắc chung.
Liệt kê đúng danh sách object ngang hàng trong phạm vi CRM hiện tại.
Phân biệt rõ nội dung nào thuộc file gốc và nội dung nào phải đặc tả ở tài liệu con.
Không gán mặc định một capability cho mọi object nếu chưa có tài liệu xác nhận.
Thuật ngữ được dùng nhất quán giữa file này và các tài liệu liên quan.