Trong quá trình xây dựng workflow với n8n, việc xử lý các điều kiện rẽ nhánh là yếu tố cực kỳ quan trọng giúp quy trình hoạt động linh hoạt hơn. Hai node thường được sử dụng nhất để xử lý logic điều kiện là IF và Switch. Bài viết này sẽ hướng dẫn chi tiết cách sử dụng node IF và node Switch trong n8n kèm ví dụ thực tế đơn giản để bạn dễ dàng áp dụng vào công việc tự động hóa của mình.
Node IF & Switch trong n8n là gì?
Node IF
Node IF trong n8n hoạt động giống như câu lệnh “nếu… thì…” trong lập trình. Nó cho phép bạn kiểm tra một điều kiện cụ thể và quyết định luồng workflow sẽ đi theo hướng nào dựa trên kết quả kiểm tra đó. Node IF có hai nhánh: True và False. Nếu điều kiện đúng (True), workflow sẽ tiếp tục chạy qua nhánh True; nếu sai (False), nó sẽ đi theo nhánh False.

Ví dụ, bạn có thể sử dụng node IF để kiểm tra xem người dùng đã điền số điện thoại hay chưa trong một biểu mẫu. Nếu có, bạn sẽ gửi một tin nhắn SMS; nếu không, bạn sẽ gửi email nhắc nhở.
Node Switch
Node Switch trong n8n giúp bạn phân luồng dữ liệu dựa trên giá trị cụ thể của một trường nào đó. Thay vì chỉ có hai lựa chọn như node IF, node Switch cho phép bạn thiết lập nhiều nhánh khác nhau, mỗi nhánh tương ứng với một giá trị cụ thể. Điều này đặc biệt hữu ích khi bạn cần xử lý nhiều trường hợp từ một nguồn dữ liệu duy nhất.

Ví dụ, nếu bạn đang xử lý đơn hàng và muốn phân chia chúng theo phương thức thanh toán (thẻ tín dụng, chuyển khoản, ví điện tử…), bạn có thể dùng node Switch để điều hướng mỗi loại đơn hàng sang một nhánh xử lý riêng biệt.
Những trường hợp nào cần sử dụng node IF và Switch?
Khi nào nên sử dụng node IF?
Node IF phù hợp cho các tình huống cần đưa ra quyết định nhị phân (chỉ có hai lựa chọn: đúng hoặc sai). Sử dụng node IF khi:
- Kiểm tra điều kiện đơn giản: Ví dụ, kiểm tra xem một email có chứa từ khóa cụ thể (như “khẩn cấp”) để quyết định gửi thông báo hay không.
- Xử lý có/không: Chẳng hạn, kiểm tra xem một khách hàng có đăng ký dịch vụ hay chưa để gửi ưu đãi hoặc bỏ qua.
- Lọc dữ liệu cơ bản: Như kiểm tra giá trị số (giá đơn hàng > 1 triệu) để thực hiện hành động tiếp theo.
- Quy trình tuyến tính với hai hướng: Khi bạn chỉ cần phân nhánh thành hai luồng (true/false).

Khi nào nên sử dụng node Switch?
- Phân loại dữ liệu dựa trên nhiều giá trị cụ thể: Ví dụ, Xử lý đơn hàng theo phương thức thanh toán (thẻ tín dụng, chuyển khoản, COD…).
- Chọn hành động tương ứng với từng loại sự kiện: Khi bạn nhận dữ liệu từ webhook với trường “eventType” là “signup”, “purchase”, “unsubscribe”… bạn có thể xử lý từng sự kiện theo cách riêng biệt.
- Routing workflow theo nhiều điều kiện rõ ràng: Giúp bạn tách luồng xử lý thành nhiều nhánh rõ ràng hơn thay vì lồng ghép nhiều node IF phức tạp.
- Thay thế chuỗi node IF liên tiếp: Nếu bạn đang dùng nhiều node IF nối nhau để kiểm tra các giá trị khác nhau trong cùng một trường, hãy thay bằng node Switch để dễ nhìn và dễ quản lý hơn.
Hướng dẫn cách sử dụng node IF và node Switch trong n8n (ví dụ cụ thể)
Cách sử dụng node IF trong n8n
Chúng ta sẽ tạo một workflow kiểm tra xem người dùng có đăng ký bằng email thuộc miền @tino.org hay không.
- Nếu có: Gửi email chào mừng đến nhân viên nội bộ.
- Nếu không: Gửi email chào mừng đến người dùng bên ngoài.
Các bước thực hiện:
Bước 1: Truy cập giao diện n8n và nhấn vào nút “Create Workflow” để tạo workflow mới.
Bước 2: Nhấn vào nút “+” trên canvas và tìm kiếm “Manual Trigger”.
Chọn node này để làm điểm bắt đầu cho workflow.

Bước 3: Thêm node “Set” sau node Manual Trigger để mô phỏng dữ liệu đầu vào.

Cấu hình node Set như sau:
- Nhấn Add Field.
- Ở ô name, nhập: email.
- Ở ô value, nhập: tunghd@tino.org.

Bước 4: Thêm node IF sau node Set để kiểm tra miền email.

Cấu hình node IF như sau:
- Value 1:
{{$json["email"]}}
- Chọn String -> ends with
- Value 2: @tino.org

Như vậy:
- Nếu email chứa @tino.org → node IF chuyển sang nhánh true.
- Nếu không chứa → node IF chuyển sang nhánh false.
Bước 5: Thêm node Gmail -> Send a Message sau nhánh True của node IF.
Cấu hình node Send Email như sau:
- To:
{{$json["email"]}}
- Subject: Chào mừng bạn đến với công ty!
- Message: Chúng tôi rất vui mừng chào đón bạn là thành viên mới của công ty.

Bước 6: Thêm node Gmail -> Send a Message sau nhánh False của node IF.
Cấu hình node Send Email như sau:
- To:
{{$json["email"]}}
- Subject: Chào mừng bạn đến với dịch vụ của chúng tôi!
- Text: Cảm ơn bạn đã đăng ký. Chúng tôi rất mong được phục vụ bạn.

Bước 7: Nhấn vào nút “Test Workflow” để chạy thử.

Kiểm tra xem email được gửi đúng theo điều kiện đã thiết lập.

Bạn có thể thay đổi giá trị email trong node Set, ví dụ: huynhdongtungufm@gmail.com, rồi chạy lại workflow để kiểm tra đường nhánh false.


Cách sử dụng node Switch trong n8n
Giả sử bạn có một danh sách người dùng với thuộc tính role và bạn muốn phân loại họ thành các nhóm khác nhau để xử lý riêng biệt:
- admin: Gửi thông báo quản trị.
- editor: Gửi thông báo chỉnh sửa.
- viewer: Gửi thông báo xem.
Các bước thực hiện:
Bước 1: Truy cập giao diện n8n, nhấn vào nút “Create Workflow” để tạo workflow mới.
Bước 2: Nhấn vào nút “+” trên canvas và tìm kiếm “Manual Trigger”.
Chọn node này để làm điểm bắt đầu cho workflow.
Bước 3: Tiếp tục thêm node Set để mô phỏng dữ liệu đầu vào.

Cấu hình node Set như sau:
- Mode: Manual Mapping
- Nhấn Fields
- name: role
- value: editor

Bước 4: Thêm node “Switch” sau node Set.
Cấu hình node Switch như sau:
Chọn Mode: Rules
Ở ô Routing Rules đầu tiên, nhập:
- Value 1:
{{$json["role"]}}
- value2: admin
Nhấn Add Routing Rule
- Value 1:
{{$json["role"]}}
- value2: editor
Tiếp tục nhấn Add Routing Rule
- Value 1:
{{$json["role"]}}
- value2: viewer

Convert types where required: Bật nếu bạn cần so sánh kiểu số và chuỗi (trong trường hợp này có thể để mặc định là tắt vì ta đang so sánh chuỗi).
Dữ liệu đầu vào có trường role sẽ được phân hướng về các nhánh tương ứng:
- Output 0 → nếu role = admin
- Output 1 → nếu role = editor
- Output 2 → nếu role = viewer
Bước 5: Kết nối từng nhánh của node Switch đến các node xử lý tương ứng:
- Nhánh 0 (admin): Thêm node Gmail -> Send a message gửi thông báo quản trị.
- Nhánh 1 (editor): Thêm node Gmail -> Send a message để gửi thông báo chỉnh sửa.
- Nhánh 2 (viewer): Thêm node Gmail -> Send a message để gửi thông báo xem.
Ví dụ với role editor:
Thực hiện thiết lập Gmail tương tự với các role khác.
Bước 6: Nhấn vào nút “Test Workflow” để chạy thử.

Kiểm tra xem email được gửi đúng theo điều kiện đã thiết lập.

Ngoài ra, hãy thử đổi value trong node Set để tiếp tục kiểm tra.
Kết luận
Hy vọng qua bài viết trên, bạn đã nắm được cách sử dụng IF và Switch một cách thành thạo. Nếu bạn đang muốn tự động hóa nhiều quy trình hơn trong doanh nghiệp, đừng ngần ngại bắt đầu từ những node điều kiện cơ bản này! Chúc bạn thành công!
Những câu hỏi thường gặp
Node IF có hỗ trợ nhiều điều kiện cùng lúc không?
Có. Bạn có thể thêm nhiều điều kiện trong cùng một node IF và kết hợp bằng toán tử AND hoặc OR.
Node IF trả về dữ liệu gì ở nhánh True hoặc False?
IF sẽ trả về dữ liệu đầu vào của node, nếu điều kiện được thỏa mãn. Nếu không thỏa mãn, node đó sẽ không trả ra gì ở nhánh đó.
Có giới hạn số lượng nhánh trong node Switch không?
Không có giới hạn cố định, nhưng nên giữ số nhánh hợp lý để workflow dễ quản lý. Nếu quá nhiều, cân nhắc chia nhỏ workflow.
Switch có thể dùng để thay thế IF không?
Trong một số trường hợp, có thể dùng Switch thay IF nếu bạn cần kiểm tra nhiều giá trị khác nhau thay vì chỉ True/False.
Switch có hỗ trợ 'Default' khi không khớp giá trị nào không?
Hiện tại Switch không có nhánh mặc định chính thức như default trong switch-case, nhưng bạn có thể xử lý thêm bằng cách thêm một IF sau cùng để xử lý trường hợp không khớp.