Tại sao Logic và Xử lý Lỗi lại Quan trọng
Một luồng công việc chỉ di chuyển dữ liệu từ A sang B sẽ trở nên dễ bị hỏng. Các quy trình kinh doanh thực tế cần quyết định: chỉ thông báo cho nhóm bán hàng khi giá trị giao dịch vượt quá ngưỡng, chỉ lưu trữ hồ sơ khi các trường bắt buộc đã có mặt, và quan trọng nhất, vẫn tiếp tục khi có gì đó bất ngờ sai. Nếu thiếu nhánh và xử lý lỗi, một phản hồi API xấu có thể làm hỏng toàn bộ chuỗi xử lý của bạn một cách im lặng.
Trong n8n, logic và xử lý lỗi được xây dựng từ một bộ nút nhỏ mà bạn ghép lại như các khối LEGO. Nút IF phân nhánh luồng của bạn. Nút Switch xử lý định tuyến đa hướng. Nút Filter loại bỏ các mục không mong muốn trước khi đến các nút ở phía sau. Nút Stop và Error, cùng với workflow Error Trigger, cho bạn các cách để bắt và phản hồi các lỗi.
Phân nhánh với Nút IF
Nút IF đánh giá một điều kiện đối với từng mục và gửi kết quả đúng đi theo một nhánh, kết quả sai đi theo nhánh kia. Đây là công cụ chính của bạn cho các quyết định hai chiều.
Trong ví dụ ở trên, nút kiểm tra xem trường amount trên mỗi mục nhập có lớn hơn 1000 hay không. Các mục vượt qua sẽ tiếp tục ở nhánh đúng. Các mục thất bại sẽ rơi vào nhánh sai, nơi bạn có thể định tuyến chúng đến một hành động khác, như thông báo Slack hoặc hàng đợi mức độ ưu tiên thấp.
Đối với nhiều hơn hai đường đi có thể có, hãy dùng nút Switch. Nó hoạt động giống như câu lệnh switch trong mã: bạn định nghĩa các quy tắc, và quy tắc khớp đầu tiên sẽ xác định đầu ra mà mục sẽ lấy.
Lọc các mục một cách sạch sẽ
Đôi khi bạn không cần hai nhánh. Bạn chỉ muốn loại bỏ những mục không khớp với điều kiện và tiếp tục. Nút Filter thực hiện đúng điều này. Nó nằm giữa hai nút và thản nhiên loại bỏ các mục không đáp ứng điều kiện.
Hãy dùng Filter khi hành động ở đầu ra dưới, chỉ nhận đúng các mục hợp lệ. Dùng IF khi cả hai nhánh đều cần logic theo sau riêng. Sự phân biệt này quan trọng: một nút IF vẫn truyền các mục sai sang phía sau trừ khi bạn dừng hoặc chuyển hướng chúng một cách rõ ràng, trong khi Filter loại bỏ hoàn toàn chúng.
Mẫu xử lý lỗi
n8n cung cấp ba tầng xử lý lỗi. Đầu tiên là nút Error Trigger tích hợp cho phép khởi tạo một workflow riêng khi bất kỳ workflow nào gặp lỗi. Thứ hai là cài đặt Continue On Fail trên từng nút, cho phép n8n tiếp tục chạy workflow ngay cả khi nút đó gặp lỗi. Thứ ba là nút Stop and Error, mà bạn kích hoạt một cách có chủ đích khi logic của bạn phát hiện trạng thái không thể xảy ra.
Một mẫu phổ biến như sau: bọc một nút HTTP Request với Continue On Fail được bật. Nếu cuộc gọi bị lỗi, định tuyến đầu ra qua một nút Wait, sau đó quay lại nút HTTP Request. Sau ba vòng lặp, tách ra sang trình xử lý lỗi gửi thông báo và ghi payload lỗi vào một bảng dead-letter trong cơ sở dữ liệu của bạn để xem xét thủ công.
Practical Tips and Common Mistakes
Hai lỗi thường gặp nhiều lần. Thứ nhất, mọi người bật Continue On Fail cho mọi nút vì họ muốn sự kiên cố, nhưng điều này che giấu lỗi thực sự. Phản hồi 401 không hợp lệ và một lỗi logic thực sự trông giống nhau với một nút ở phía sau bỏ qua lỗi. Hãy chọn lọc: chỉ bật Continue On Fail ở những nút có kế hoạch phục hồi cụ thể.
Thứ hai, mọi người quên rằng n8n xử lý từng mục một trong một nút, nhưng có thể có nhiều mục cùng lúc đi vào một nút trong một lần thực thi. Điều kiện IF của bạn phải làm việc đúng với mọi mục, chứ không phải chỉ với mục đầu tiên. Thử nghiệm với ít nhất ba đầu vào khác nhau, bao gồm các trường hợp biên như chuỗi rỗng, giá trị bằng không và trường null.
Tổng kết
Logic trong n8n không phải là ma thuật; nó là một bộ công cụ nhỏ gồm các nút được áp dụng có chủ đích. Sử dụng IF và Switch cho nhánh rành mạch, Filter để dọn dẹp âm thầm, và một chiến lược xử lý lỗi có lớp gồm Continue On Fail, workflow lỗi riêng biệt, và đích dead-letter cho những lỗi bạn không thể tự động phục hồi. Những workflow tồn tại sau khi tiếp xúc với dữ liệu thực tế là những workflow mong đợi mọi thứ có thể sai và xử lý chúng một cách nhẹ nhàng.
Bài kiểm tra cuối bài
Ôn lại kiến thức, thử sức và nhận góp ý cho bài làm.