Tiếng ViệtTổng Quan & Nền TảngQuản Lý WorkflowTrình Tạo Workflow

Trình dựng Quy trình

Trình dựng Quy trình biến một quy tắc nghiệp vụ thành tự động hóa. Một quy trình theo dõi một loại thực thể (hóa đơn, đơn mua hàng, đơn xin nghỉ, cơ hội bán hàng, v.v.), chờ một sự kiện trigger, kiểm tra một tập điều kiện, rồi chạy các hành động — có thể bao gồm điều phối bản ghi qua một chuỗi phê duyệt.

Quản lý Quy trình — canvas Builder hiển thị trigger, điều kiện và chuỗi phê duyệt
Quản lý Quy trình — canvas Builder hiển thị trigger, điều kiện và chuỗi phê duyệt

Trước khi bắt đầu

  • Xác nhận các cờ tính năng liên quan đã bật trong Workflow → Settings (ví dụ require_po_approval, multi_level_approval, parallel_approval).
  • Cân nhắc xem quyết định “bản ghi này có cần phê duyệt không” nên thuộc về một Chính sách (ngưỡng số) thay vì bản thân quy trình. Giữ quy trình tập trung vào aiđiều gì.

Tạo một quy trình

Bước 1 — Chọn thực thể

Vào Workflow → Workflows và bấm New Workflow. Chọn loại thực thể mà quy trình áp dụng (ví dụ Đơn mua hàng, Hóa đơn, Đơn xin nghỉ, Cơ hội). Mỗi quy trình gắn với đúng một thực thể — điều kiện và trường của nó lấy từ thực thể đó.

Bước 2 — Chọn trigger

Chọn sự kiện khởi động quy trình:

TriggerKích hoạt khi…Dùng điển hình
Khi tạoMột bản ghi mới được lưuĐiều phối mọi đơn mua hàng mới để phê duyệt
Khi cập nhậtBất kỳ trường nào của bản ghi thay đổiKiểm tra lại khi số tiền hóa đơn bị sửa
Khi đổi trạng tháiTrạng thái bản ghi chuyển (ví dụ nháp → đã gửi)Bắt đầu phê duyệt chỉ sau khi người dùng gửi

Ưu tiên Khi đổi trạng thái cho luồng phê duyệt — tránh kích hoạt trong khi người dùng còn đang soạn bản ghi.

Bước 3 — Thêm điều kiện (JSONLogic)

Thêm một hoặc nhiều điều kiện, tất cả phải đúng thì quy trình mới hành động. Điều kiện được đánh giá bằng JSONLogic dựa trên các trường của bản ghi. Dùng trình dựng điều kiện trực quan, hoặc sửa trực tiếp JSONLogic.

Ví dụ — chỉ cho đơn mua hàng lớn, ngoài Việt Nam:

{ "and": [
  { ">": [ { "var": "totalAmount" }, 50000000 ] },
  { "!=": [ { "var": "supplierCountry" }, "VN" ] }
] }

Xem bảng tham chiếu toán tử bên dưới.

Bước 4 — Định nghĩa hành động

Chọn điều gì xảy ra khi trigger kích hoạt và điều kiện thỏa:

Hành độngTác dụng
Tạo phê duyệtKhởi động một chuỗi phê duyệt (xem Bước 5)
Tự động gửiChuyển bản ghi sang trạng thái đã gửi/đang chờ tự động
Tự động thực thiChạy bước vòng đời tiếp theo của bản ghi tự động (ví dụ hạch toán, xác nhận)
GánGán bản ghi cho một người dùng hoặc vai trò
Thông báoGửi thông báo trong ứng dụng / email cho người dùng hoặc vai trò
Đặt trườngGhi một giá trị vào một trường của bản ghi

Một quy trình có thể chạy nhiều hành động trong một lượt — ví dụ đặt một trường, thông báo người yêu cầu, và tạo phê duyệt.

Bước 5 — Dựng chuỗi phê duyệt

Nếu bạn thêm Tạo phê duyệt, hãy định nghĩa các cấp. Mỗi cấp có thể tuần tự hoặc song song:

  • Tuần tự (A → B → C): cấp 2 chỉ bắt đầu sau khi cấp 1 duyệt. Dùng cho thang leo bậc (Quản lý → Tài chính → CFO).
  • Song song (A VÀ B): tất cả người duyệt ở cấp đó phải duyệt trước khi chuỗi tiến tiếp. Dùng cho kiểm soát kép hoặc ký duyệt liên phòng ban.

Bạn có thể trộn: chạy cấp 1 và 2 song song, rồi yêu cầu cấp 3 tuần tự cuối cùng.

⚠️

Chuỗi đa cấp cần cờ multi_level_approval; cấp song song cần parallel_approval. Không có chúng, chỉ một bước một-người-duyệt được thực thi.

Quản lý Quy trình — cấu hình cấp phê duyệt tuần tự và song song
Quản lý Quy trình — cấu hình cấp phê duyệt tuần tự và song song

Bước 6 — Kiểm thử

Dùng Test (hoặc chạy một bản ghi mẫu từ phân hệ nguồn) để xác nhận quy trình kích hoạt, điều kiện khớp và chuỗi điều phối đến đúng người duyệt — mà không ảnh hưởng bản ghi thật.

Bước 7 — Kích hoạt

Bật quy trình Active. Nó nay chạy trên mọi sự kiện phù hợp. Quy trình không hoạt động được lưu nhưng không bao giờ kích hoạt.


Tham chiếu toán tử điều kiện

Các toán tử JSONLogic có trong trình dựng điều kiện:

Toán tửÝ nghĩaVí dụ
== / ===Bằngtrạng thái bằng submitted
!= / !==Khácphòng ban khác IT
> >= < <=So sánh sốsố tiền > 50.000.000
inGiá trị nằm trong danh sáchdanh mục in ["capex","opex"]
andTất cả điều kiện con đúngsố tiền lớn VÀ nhà cung cấp mới
orBất kỳ điều kiện con đúngquá hạn HOẶC bị gắn cờ
!Phủ địnhKHÔNG được duyệt
varTham chiếu một trường bản ghi{ "var": "totalAmount" }

Tên trường trong var là khóa trường được lưu của thực thể (thường camelCase, ví dụ totalAmount, discountPercent, supplierId). Trình dựng trực quan liệt kê các trường hợp lệ cho thực thể đã chọn nên bạn không phải đoán.


Tham chiếu loại trigger

TriggerPhạm viGhi chú
Khi tạoChỉ bản ghi mớiKích hoạt một lần, lúc thêm mới
Khi cập nhậtThay đổi trườngCó thể kích hoạt lặp lại; giới hạn bằng điều kiện để tránh vòng lặp
Khi đổi trạng tháiChuyển trạng tháiTốt nhất để khởi động phê duyệt; đi kèm vòng đời của thực thể

Tham chiếu hành động

Hành độngChặn?Kết hợp thường gặp
Tạo phê duyệtCó — giữ bản ghi cho tới khi có quyết địnhThông báo người duyệt
Tự động gửiKhôngTrigger khi tạo
Tự động thực thiKhôngSau phê duyệt cuối
GánKhôngThông báo người được gán
Thông báoKhôngBất kỳ bước nào
Đặt trườngKhôngĐóng dấu mức rủi ro / mã điều phối

Xử lý sự cố

Triệu chứngNguyên nhân có thểKhắc phục
Quy trình không kích hoạtSai trigger, hoặc quy trình không hoạt độngXác nhận trigger khớp sự kiện thực; đặt Active
Kích hoạt nhưng không tới người duyệtĐiều kiện không bao giờ khớpKiểm thử điều kiện với giá trị trường của bản ghi thật
Chỉ một người duyệt dù đa cấpmulti_level_approval tắtBật trong Workflow → Settings
Cấp song song lại chạy tuần tựparallel_approval tắtBật cờ
Lặp mỗi lần lưuTrigger Khi cập nhật quá rộngThêm điều kiện chặn kích hoạt lại (ví dụ khóa theo trạng thái)
Người duyệt nghỉ, chuỗi tắcKhông có ủy quyềnTạo quy tắc Ủy quyền

Câu hỏi thường gặp

Hỏi: Một quy trình có thể bao nhiều thực thể không? Đáp: Không. Mỗi quy trình gắn với một thực thể. Tạo quy trình riêng (hoặc bắt đầu từ mẫu) cho mỗi thực thể.

Hỏi: Tên trường trong điều kiện lấy từ đâu? Đáp: Là các trường được lưu của thực thể. Trình dựng trực quan liệt kê chúng cho thực thể bạn chọn ở Bước 1.

Hỏi: Làm sao dừng một luồng phê duyệt tôi không còn muốn? Đáp: Bật quy trình Inactive. Các phê duyệt đang chạy vẫn tiếp tục; không có phê duyệt mới bắt đầu.