Trình thiết kế (canvas)
Cách thêm bước, kết nối cạnh, sửa nhãn, xử lý lỗi kiểm tra và xuất/nhập JSON trong trình thiết kế quy trình.
Tổng quan
Trình thiết kế là canvas kéo-thả nơi bạn xây dựng quy trình bằng cách thêm bước / nút (step/node) và nối chúng bằng các cạnh (edge). Mọi thay đổi được tự động lưu vào bản nháp — bạn sẽ thấy thông báo "Đã tự động lưu vào bản nháp" ở góc màn hình.

Thêm bước
Mỗi quy trình mới đã có sẵn một bước Bắt đầu (Start) — bước này do trình thiết kế tự động tạo, không xuất hiện trong menu Thêm bước.
Để thêm các bước tiếp theo:
- Nhấp nút + hoặc kéo từ handle của một nút hiện có ra vùng trống.
- Chọn loại bước từ menu "Thêm bước":
| Loại bước (tên trong menu) | Mục đích |
|---|---|
| Công việc người dùng (Human Task) | Giao việc cho người hoặc nhóm — họ hoàn thành biểu mẫu, có thể kèm hành động phê duyệt và ký số |
| Trợ lý AI (Agent) | AI phân tích, soạn thảo hoặc ra quyết định tự động với đầu ra có cấu trúc |
| Gửi email (Send Email) | Gửi email tự động, có thể đính kèm tài liệu |
| Tạo tài liệu (Generate Document) | Xuất một hoặc nhiều Mẫu tài liệu thành PDF/DOCX từ dữ liệu các bước trước |
| Chữ ký (Signature) | Thu thập chữ ký trên tài liệu, từ người dùng nội bộ hoặc bên ngoài qua email |
| Gọi webhook (Call Webhook) | Gửi yêu cầu HTTP đến hệ thống bên ngoài và dùng kết quả trả về ở các bước sau |
| Quyết định (Decision) | Rẽ nhánh theo điều kiện — đi theo nhánh đầu tiên khớp với dữ liệu |
| Lặp theo phần tử (For Each) | Chạy một nhóm bước con một lần cho mỗi phần tử trong danh sách |
| Gộp tệp (Group Files) | Gom tệp của một trường tệp thành từng hồ sơ, để Lặp theo phần tử chạy một lần cho mỗi hồ sơ |
| Trích xuất văn bản (Doc Extractor) | Đọc nội dung tài liệu thành văn bản (Markdown hoặc văn bản thuần) cho các bước sau dùng — không cần AI |
| Phân nhánh (Fork) | Tách luồng thành nhiều nhánh chạy song song |
| Hợp nhất (Join) | Chờ tất cả các nhánh song song hoàn thành rồi mới tiếp tục — luôn đi kèm với Fork |
| Đặt biến (Set Variable) | Gán giá trị vào biến quy trình |
| Bản ghi thực thể (Entity Record) | Tra cứu, tìm kiếm, tạo mới, cập nhật hoặc upsert Bản ghi trong Thực thể — và chọn đơn vị đích cho bản ghi tạo mới |
| Tích hợp (Connected App) | Đọc/ghi dữ liệu trực tiếp trong hệ thống bên ngoài (ví dụ: HubSpot) |
| Truy vấn SQL (SQL Query) | Chạy câu lệnh SQL (mặc định chỉ đọc, có thể bật chế độ ghi) và lưu kết quả vào biến quy trình |
| Mã lệnh (Code) | Chạy một hàm Python hoặc JavaScript ngắn trên các giá trị đã gán — không có mạng, không đọc nội dung tệp |
| Gọi quy trình con (Call Workflow) | Chạy một quy trình đã xuất bản khác, truyền đầu vào và đọc lại đầu ra |
| Đánh số tự động (Auto Number) | Sinh số chạy theo phạm vi cấu hình và định dạng thành mã |
| Kết thúc (End) | Đánh dấu điểm hoàn thành của quy trình |
Nhãn loại bước trong menu hiện hiển thị bằng tiếng Anh. Tài liệu này dùng tên tiếng Việt kèm tên tiếng Anh trong ngoặc để dễ đối chiếu.
Kết nối và nhãn cạnh
Kéo từ handle tròn ở cạnh nút nguồn sang nút đích để tạo cạnh. Nhấp đúp vào cạnh để đặt nhãn — nhãn xuất hiện trên đường nối và giúp người đọc hiểu điều kiện (ví dụ: "Đồng ý" / "Từ chối" cho bước Decision).
Ví dụ quy trình Đề xuất mua sắm:
Bắt đầu → Trợ lý AI review → Decision → Human approval → Tạo tài liệu → Chữ ký → Email → Tích hợp → Kết thúcCạnh từ nút Decision nên có nhãn tương ứng với từng nhánh, chẳng hạn "Phê duyệt" và "Từ chối".
Bảng kiểm tra (lỗi và cảnh báo)
Khi sơ đồ có vấn đề, một dải hiện ra ở cuối canvas, ngay dưới vùng vẽ. Nhấp vào dải để mở danh sách chi tiết: mỗi mục nêu rõ bước có vấn đề, và nhấp vào mục sẽ mở bảng cấu hình của bước đó. Trên canvas, các bước có vấn đề cũng hiện dòng Có vấn đề cần kiểm tra.
- Lỗi chặn xuất bản — ví dụ: bước chưa cấu hình biểu mẫu, thiếu điều kiện ở Decision, hay các nhánh song song nối sai vào Hợp nhất (Join). Khi còn lỗi, dải có màu đỏ với tiêu đề Không thể xuất bản; nút Xuất bản bị vô hiệu hóa, và di chuột lên nút sẽ thấy Sửa các lỗi kiểm tra trước khi xuất bản.
- Cảnh báo không chặn xuất bản nhưng nên xem lại. Khi chỉ còn cảnh báo, dải chuyển sang màu vàng với tiêu đề Cần xem lại, và nút Xuất bản vẫn bấm được.
Nút Quy tắc kiểm tra ở bên phải dải mở trang này.
Hai nguồn kiểm tra
Danh sách gộp kết quả của hai lượt kiểm tra khác nhau:
- Trình thiết kế tự kiểm tra ngay khi bạn vẽ — bước thiếu cấu hình, cạnh chưa nối, bước không tới được. Các mục này xuất hiện và biến mất ngay theo từng thao tác.
- Máy chủ kiểm tra bản nháp đã lưu, sau mỗi lần tự động lưu. Có những quy tắc chỉ máy chủ mới trả lời được, vì cần nhìn toàn bộ sơ đồ hoặc cần dữ liệu nằm ngoài sơ đồ:
- hình dạng các nhánh song song quanh Phân nhánh (Fork) và Hợp nhất (Join) — thông báo Loop structure not supported;
- một trường tệp trên biểu mẫu bắt đầu có nhận được thư mục theo dõi hay không — thông báo This field cannot come from a watched folder và các cảnh báo cùng loại;
- quy tắc Người trong một đơn vị lấy đơn vị từ một trường không thể chứa đơn vị — thông báo Assignment;
- biểu thức viết sai cú pháp.
Lỗi từ máy chủ cũng chặn nút Xuất bản như lỗi của trình thiết kế. Còn cảnh báo từ máy chủ thì chỉ hiện ở dải này — lúc bấm Xuất bản sẽ không có gì nhắc lại, nên hãy đọc chúng trong lúc còn đang thiết kế.
Kết quả của máy chủ nói về bản đã lưu, không phải về những gì đang hiện trên canvas. Vì vậy, ngay khi bạn sửa sơ đồ, các mục của máy chủ tạm ẩn đi, và chỉ hiện lại sau khi bản nháp được tự động lưu và kiểm tra lại — thường chỉ vài giây. Một mục biến mất rồi hiện lại không có nghĩa là bạn sửa chưa đúng; hãy đợi lượt kiểm tra mới.
Thông báo của máy chủ luôn bằng tiếng Anh, kể cả khi giao diện đang ở tiếng Việt — ví dụ Loop structure not supported. Dòng chi tiết bên dưới mỗi mục nêu đích danh bước hoặc cạnh gây ra vấn đề.
Vẫn có vài kiểm tra chỉ chạy khi bạn bấm Xuất bản — chẳng hạn một tham chiếu tới bước hay biến không tồn tại, hoặc bước Mã lệnh (Code) khi môi trường chạy mã đang tắt. Khi đó bạn sẽ thấy thông báo Không thể xuất bản — N vấn đề: …, và các lỗi đó được ghim vào dải này để bạn sửa.
Tự động lưu
Trình thiết kế tự động lưu sau mỗi thay đổi vào bản nháp hiện tại. Bạn vẫn có thể nhấp Lưu bản nháp để lưu ngay lập tức. Bản nháp và phiên bản đã xuất bản là độc lập — lưu bản nháp không ảnh hưởng đến các phiên chạy (instance) đang chạy.
Mỗi lần lưu cũng kích hoạt lượt kiểm tra của máy chủ trên bản vừa lưu — xem Hai nguồn kiểm tra.
Lịch sử phiên bản
Mỗi lần xuất bản, phiên bản trước đó không bị mất — trình thiết kế giữ lại mọi phiên bản đã xuất bản trước đó, đánh số tăng dần (v1, v2, …).
Nhấp nút Lịch sử trên thanh công cụ để mở bảng "Lịch sử phiên bản", liệt kê mọi phiên bản đã xuất bản — mới nhất trước — kèm người xuất bản và ngày xuất bản. Phiên bản đang hiển thị trên canvas được đánh dấu hiện tại.
Với mỗi phiên bản trong danh sách, bạn có thể:
- Xem — mở phiên bản đó ở chế độ chỉ đọc để xem lại toàn bộ cấu hình tại thời điểm xuất bản (canvas hiện huy hiệu "chỉ đọc" và nút Về bản nháp hiện tại thay cho nút Xuất bản). Không dùng được cho phiên bản đang hiện tại.
- Khôi phục — chép nội dung của phiên bản đã chọn vào bản nháp đang làm việc, sau khi bạn xác nhận trong hộp thoại cảnh báo. Nút này bị vô hiệu hóa nếu quy trình chưa có bản nháp nào — hãy tạo bản nháp trước.
Khôi phục chỉ ghi vào bản nháp — không tự động xuất bản. Thao tác này cũng không ảnh hưởng đến các phiên chạy (instance) đang chạy hoặc đã hoàn thành: mỗi phiên chạy vẫn cố định (pin) vào đúng phiên bản mà nó đã khởi chạy, như mô tả ở mục Tự động lưu ở trên.
Sao chép tham chiếu bước
Mỗi bước có một mã tham chiếu duy nhất dạng nodes.{id} — dùng để trỏ đến đầu ra của bước đó ở các bước sau (ví dụ: nodes.approval.output.decision).
Để sao chép tham chiếu: nhấp chuột phải vào nút trên canvas → chọn "Sao chép tham chiếu của bước này (nodes.{id})". Thông báo "Đã sao chép tham chiếu" xác nhận đã copy vào clipboard.
Biến quy trình
Biến quy trình (Workflow variables) là các giá trị dùng chung cho mọi bước trong cùng một phiên chạy. Nhấp Biến trên thanh công cụ để mở bảng "Biến quy trình".
| Trường | Ý nghĩa |
|---|---|
| Tên | Tên biến, dùng để tham chiếu qua vars.tên_biến |
| Kiểu | Văn bản, Số, Boolean, Ngày / giờ, Email, Đối tượng, Mảng |
| Mặc định | Giá trị ban đầu nếu chưa được gán |
| Cho phép ghi đè khi chạy | Người bấm nút khởi chạy có thể thay giá trị lúc bắt đầu phiên |
Dùng bước Set Variable để cập nhật giá trị biến trong luồng quy trình, ví dụ: lưu id bản ghi CRM sau bước Tích hợp.
Cài đặt của quy trình
Nút Cài đặt trên thanh công cụ (gợi ý "Cấu hình quyền chạy, tự động hóa và MCP") mở popover Cấu hình quy trình gồm ba dòng, mỗi dòng hiển thị giá trị hiện tại bên phải:
| Dòng | Quyết định điều gì |
|---|---|
| Quyền chạy | Ai được phép tự tay khởi chạy quy trình — Hạn chế hoặc Mọi người. Xem Cách quy trình bắt đầu (Trigger). |
| Chạy với tư cách | Các lượt chạy hành động với tư cách chủ thể nào khi đọc và ghi bản ghi — Người khởi chạy, Một service principal, hoặc Hệ thống nâng quyền. Xem Chạy với tư cách (Run as). |
| MCP | Công tắc chia sẻ quy trình qua MCP, cho phép trợ lý AI bên ngoài tìm và khởi chạy nó thay cho người dùng. |
Cả nút Cài đặt lẫn ba dòng bên trong chỉ hiện với người có quyền workflow.design.
Trên các quy trình được di trú từ phiên bản cũ, dòng Chạy với tư cách hiển thị giá trị Cần quyết định bằng màu hồng. Đây là một quyết định bắt buộc chứ không phải gợi ý: quy trình ở trạng thái đó không khởi chạy được bằng bất kỳ cách nào — thủ công, thông tin đăng nhập, lịch hay trigger — cho đến khi bạn chọn một chính sách.
Khi chọn Một service principal, nút Xem trước quyền truy cập… trong hộp thoại cho bạn kiểm tra chủ thể đó với tới được những bản ghi nào trước khi lưu — đánh giá đúng như cách một lượt chạy được ủy quyền, nên không bao giờ tính phần nâng quyền.
Xuất và nhập JSON
Thanh công cụ có hai nút:
- Xuất JSON — tải về tệp JSON biểu diễn toàn bộ canvas (nút, cạnh, biến). Dùng để sao lưu hoặc chia sẻ thiết kế.
- Nhập JSON — thay thế canvas hiện tại bằng nội dung từ tệp JSON. Một hộp thoại xác nhận hiện số nút / cạnh sẽ được nhập và danh sách biểu mẫu sẽ được tạo hoặc ghi đè.
Nhập JSON sẽ thay thế canvas hiện tại và không thể hoàn tác cho đến khi bạn lưu lại. Chỉ được nhập vào quy trình chưa có phiên bản xuất bản.
Id đơn vị không đi theo tệp sang tổ chức khác
Ở bước Bản ghi thực thể (Entity Record), khi Đơn vị đích (Destination unit) đặt ở chế độ Một đơn vị (A unit) với một Giá trị tĩnh (Literal), bản thiết kế lưu id của đơn vị chứ không lưu tên hay mã của nó — mà id chỉ có nghĩa bên trong đúng tổ chức đã sinh ra nó.
Sang tổ chức khác, id của Thực thể cũng không phân giải được, nên ngay sau khi nhập, bảng cấu hình của bước chỉ hiện ô chọn Thực thể còn trống — chưa có phần Đơn vị đích. Hãy chọn lại Thực thể trước; nếu Thực thể vừa chọn có phân loại theo đơn vị, phần Đơn vị đích hiện ra kèm cảnh báo "Đơn vị {id} không thuộc tổ chức này. Lượt chạy sẽ dừng nếu đơn vị không xuất hiện trở lại."
Thiết lập không bị mất: id thô vẫn hiện nguyên trên ô chọn, nên bạn thấy được bước đang trỏ vào đâu và chỉ cần chọn lại đơn vị tương ứng trên cây đơn vị của tổ chức mới. Hãy soát mọi bước Bản ghi thực thể ngay sau khi nhập — canvas không báo lỗi nào cho một đích đơn vị không phân giải được, nên nó chỉ lộ ra khi bạn mở bảng cấu hình của bước, hoặc khi lượt chạy đầu tiên bị chặn. Hai chế độ còn lại, cũng như dạng Tham chiếu (Reference), không vướng chuyện này vì chúng phân giải lúc chạy thay vì lưu sẵn một id.
Bước tiếp theo
- Xuất bản quy trình — kiểm tra điều kiện và xuất bản phiên bản chính thức.
- Biểu mẫu — tạo biểu mẫu để gắn vào bước Human task hoặc bước Bắt đầu.