Giới thiệu
Node Merge trong n8n không chỉ có mode Combine mà còn có ba mode khác với những tính năng và ứng dụng riêng biệt. Mỗi mode đều giải quyết những tình huống cụ thể khi làm việc với nhiều luồng dữ liệu. Bài này sẽ giới thiệu chi tiết về ba mode còn lại: Append, SQL Query và Choose Branch.
1. Append Mode: Nối dữ liệu từ nhiều nguồn
Bản chất của Append
Append là mode đơn giản nhất của Node Merge, với mô tả chính xác từ giao diện: “Output items of each input, one after the other” (Xuất các mục của mỗi input, lần lượt từng cái một).
Về bản chất, Append hoạt động như phép nối (concatenation) trong lập trình – nó nối các bản ghi từ các luồng khác nhau vào một danh sách duy nhất, không thay đổi cấu trúc dữ liệu ban đầu và không cần điều kiện khớp nào.
Hình dung: Giống như việc xếp chồng các trang giấy từ nhiều tài liệu khác nhau vào một chồng duy nhất, giữ nguyên nội dung mỗi trang.
Ví dụ thực tế: Tổng hợp đơn hàng từ nhiều kênh bán hàng
Bảng 1: Đơn hàng từ website
| Mã đơn | Ngày | Khách hàng | Giá trị (nghìn) | Kênh |
|--------|-----------|---------------|----------------|-------|
| W001 | 15/03/2025| Nguyễn Văn A | 850 | Web |
| W002 | 15/03/2025| Trần Thị B | 1,200 | Web |
| W003 | 15/03/2025| Lê Văn C | 650 | Web |
Bảng 2: Đơn hàng từ ứng dụng di động
| Mã đơn | Ngày | Khách hàng | Giá trị (nghìn) | Kênh |
|--------|-----------|---------------|----------------|-------|
| M001 | 15/03/2025| Phạm Văn D | 780 | App |
| M002 | 15/03/2025| Hoàng Thị E | 920 | App |
Bảng 3: Đơn hàng từ cửa hàng vật lý
| Mã đơn | Ngày | Khách hàng | Giá trị (nghìn) | Kênh |
|--------|-----------|---------------|----------------|----------|
| S001 | 15/03/2025| Vũ Văn F | 1,500 | Store |
| S002 | 15/03/2025| Đặng Thị G | 2,300 | Store |
| S003 | 15/03/2025| Bùi Văn H | 1,100 | Store |
Kết quả khi sử dụng Append:
| Mã đơn | Ngày | Khách hàng | Giá trị (nghìn) | Kênh |
|--------|-----------|---------------|----------------|----------|
| W001 | 15/03/2025| Nguyễn Văn A | 850 | Web |
| W002 | 15/03/2025| Trần Thị B | 1,200 | Web |
| W003 | 15/03/2025| Lê Văn C | 650 | Web |
| M001 | 15/03/2025| Phạm Văn D | 780 | App |
| M002 | 15/03/2025| Hoàng Thị E | 920 | App |
| S001 | 15/03/2025| Vũ Văn F | 1,500 | Store |
| S002 | 15/03/2025| Đặng Thị G | 2,300 | Store |
| S003 | 15/03/2025| Bùi Văn H | 1,100 | Store |
Sức mạnh của Append Mode
- Đơn giản và hiệu quả: Không cần cấu hình phức tạp, chỉ cần kết nối các nguồn dữ liệu và Append sẽ làm phần còn lại.
- Tổng hợp báo cáo: Lý tưởng để tạo báo cáo tổng hợp từ nhiều nguồn có cùng cấu trúc, như trong ví dụ về đơn hàng từ nhiều kênh.
- Phân tích đa nguồn: Cho phép phân tích dữ liệu từ nhiều nguồn khác nhau trong cùng một luồng xử lý tiếp theo.
- Chuẩn bị dữ liệu cho xử lý hàng loạt: Thu thập dữ liệu từ nhiều nguồn trước khi áp dụng các thao tác xử lý hàng loạt.
Tình huống sử dụng thực tế
Tổng hợp dữ liệu bán hàng đa kênh cho báo cáo cuối ngày
MegaRetail cần tạo báo cáo tổng hợp cuối ngày về doanh số từ tất cả các kênh bán hàng. Thay vì tạo ba báo cáo riêng biệt cho website, ứng dụng và cửa hàng vật lý, họ sử dụng Node Merge với mode Append để nối tất cả dữ liệu vào một luồng, sau đó áp dụng các bước xử lý tiếp theo:
- Sắp xếp theo giá trị đơn hàng để xác định top đơn hàng có giá trị cao nhất
- Tính tổng doanh thu và số lượng đơn hàng theo kênh
- So sánh hiệu suất giữa các kênh
Kết quả là một báo cáo tổng hợp đa kênh, cung cấp cái nhìn toàn diện về doanh số bán hàng trong ngày.
2. SQL Query Mode: Sức mạnh của SQL cho xử lý dữ liệu phức tạp
Bản chất của SQL Query Mode
SQL Query Mode mô tả trong giao diện là “Write a query to do the merge” (Viết một câu truy vấn để thực hiện merge). Mode này cung cấp sức mạnh và linh hoạt của SQL để xử lý dữ liệu từ nhiều nguồn.
Thay vì sử dụng các phương pháp merge được định nghĩa sẵn, người dùng có thể viết câu lệnh SQL tùy chỉnh để thực hiện các phép nối (JOIN), lọc (WHERE), nhóm (GROUP BY), và tính toán phức tạp.
Hình dung: Giống như bạn có một phòng thí nghiệm dữ liệu cá nhân, nơi bạn có thể thực hiện các phép biến đổi và phân tích theo ý muốn.
Ví dụ thực tế: Phân tích hiệu suất bán hàng theo danh mục sản phẩm
Bảng 1: Dữ liệu sản phẩm (items)
| item_id | name | category | supplier | cost |
|---------|---------------|------------|---------------|-------|
| P001 | Smartphone X | Điện thoại | TechVision | 8,000 |
| P002 | Laptop Y | Laptop | ComputerWorld | 15,000|
| P003 | Tablet Z | Máy tính bảng | TechVision | 6,000 |
| P004 | Headphone H | Phụ kiện | AudioPro | 1,500 |
Bảng 2: Dữ liệu bán hàng (sales)
| sale_id | item_id | quantity | sale_date | store_id | price |
|---------|---------|----------|------------|----------|-------|
| S001 | P001 | 5 | 15/03/2025 | ST01 | 12,000|
| S002 | P002 | 2 | 15/03/2025 | ST02 | 22,000|
| S003 | P001 | 3 | 15/03/2025 | ST03 | 12,000|
| S004 | P003 | 4 | 15/03/2025 | ST01 | 9,000 |
| S005 | P004 | 10 | 15/03/2025 | ST02 | 2,500 |
| S006 | P002 | 1 | 15/03/2025 | ST03 | 22,000|
Bảng 3: Thông tin cửa hàng (stores)
| store_id | name | region | manager |
|----------|-------------|--------|---------------|
| ST01 | Cửa hàng Bắc| Bắc | Nguyễn Văn A |
| ST02 | Cửa hàng Nam| Nam | Trần Thị B |
| ST03 | Cửa hàng Trung| Trung| Lê Văn C |
SQL Query trong Node Merge:
SELECT
i.category,
r.region,
COUNT(s.sale_id) as total_sales,
SUM(s.quantity) as total_quantity,
SUM(s.quantity * s.price) as revenue,
SUM(s.quantity * s.price - s.quantity * i.cost) as profit,
(SUM(s.quantity * s.price - s.quantity * i.cost) / SUM(s.quantity * s.price)) * 100 as profit_margin
FROM
$input[1] as s
JOIN
$input[0] as i ON s.item_id = i.item_id
JOIN
$input[2] as r ON s.store_id = r.store_id
GROUP BY
i.category, r.region
ORDER BY
profit DESC;
Kết quả sau khi thực hiện SQL Query:
| category | region | total_sales | total_quantity | revenue | profit | profit_margin |
|---|---|---|---|---|---|---|
| Laptop | Nam | 1 | 2 | 44,000 | 14,000 | 31.82% |
| Laptop | Trung | 1 | 1 | 22,000 | 7,000 | 31.82% |
| Điện thoại | Bắc | 1 | 5 | 60,000 | 20,000 | 33.33% |
| Điện thoại | Trung | 1 | 3 | 36,000 | 12,000 | 33.33% |
| Máy tính bảng | Bắc | 1 | 4 | 36,000 | 12,000 | 33.33% |
| Phụ kiện | Nam | 1 | 10 | 25,000 | 10,000 | 40.00% |
Sức mạnh của SQL Query Mode
- Linh hoạt tối đa: Không bị giới hạn bởi các phương pháp merge được định nghĩa sẵn, bạn có thể thực hiện gần như bất kỳ phép biến đổi dữ liệu nào.
- Xử lý phức tạp: Thực hiện các phép tính toán, lọc và nhóm phức tạp mà các mode khác không làm được.
- Tối ưu hóa dữ liệu: Chỉ lấy chính xác những trường và bản ghi cần thiết, giảm thiểu xử lý dư thừa.
- Phân tích đa chiều: Thực hiện phân tích từ nhiều góc độ khác nhau trong một câu truy vấn duy nhất.
Tình huống sử dụng thực tế
Phân tích hiệu suất bán hàng đa chiều cho ban lãnh đạo
MegaRetail cần cung cấp báo cáo chi tiết cho ban lãnh đạo về hiệu suất bán hàng theo danh mục sản phẩm và khu vực. Thay vì xử lý dữ liệu qua nhiều bước, họ sử dụng SQL Query Mode để:
- Kết hợp dữ liệu từ ba nguồn khác nhau (sản phẩm, bán hàng, cửa hàng)
- Tính toán các chỉ số kinh doanh quan trọng như doanh thu, lợi nhuận và biên lợi nhuận
- Nhóm dữ liệu theo danh mục và khu vực
- Sắp xếp kết quả theo lợi nhuận
Kết quả là một báo cáo súc tích nhưng toàn diện, giúp ban lãnh đạo nhanh chóng xác định danh mục sản phẩm và khu vực hiệu quả nhất về mặt lợi nhuận (trong ví dụ này là Phụ kiện ở khu vực Nam với biên lợi nhuận 40%).
3. Choose Branch Mode: Lựa chọn luồng dữ liệu ưu tiên
Bản chất của Choose Branch
Choose Branch Mode được mô tả trong giao diện là “Output data from a specific branch, without modifying it” (Xuất dữ liệu từ một nhánh cụ thể, không sửa đổi nó).
Mode này cho phép bạn chọn một luồng dữ liệu cụ thể để xử lý tiếp, bỏ qua các luồng khác. Điều này đặc biệt hữu ích khi bạn có nhiều nguồn dữ liệu khác nhau nhưng chỉ muốn xử lý một nguồn cụ thể tại một thời điểm nhất định.
Hình dung: Giống như có một hệ thống chuyển mạch cho phép bạn chọn một trong nhiều đường ray để đưa tàu đi tiếp, trong khi tạm dừng các đường ray còn lại.
Ví dụ thực tế: Xử lý đơn hàng ưu tiên trong cao điểm
Trong đợt Black Friday, MegaRetail nhận được lượng đơn hàng khổng lồ từ nhiều kênh khác nhau. Để đảm bảo dịch vụ khách hàng tốt nhất, họ cần ưu tiên xử lý những đơn hàng quan trọng nhất trước.
Bảng 1: Đơn hàng VIP (từ khách hàng thân thiết)
| Mã đơn | Thời gian | Khách hàng | Cấp VIP | Giá trị (nghìn) | Ghi chú |
|--------|-------------|-------------|---------|-----------------|-----------------|
| V001 | 24/11 08:15 | Nguyễn Văn A| Platinum| 12,500 | Khách hàng lâu năm |
| V002 | 24/11 08:20 | Trần Thị B | Gold | 8,200 | Sinh nhật khách |
Bảng 2: Đơn hàng thông thường
| Mã đơn | Thời gian | Khách hàng | Giá trị (nghìn) | Phương thức thanh toán |
|--------|-------------|-------------|-----------------|------------------------|
| N001 | 24/11 08:10 | Phạm Văn C | 1,500 | COD |
| N002 | 24/11 08:18 | Hoàng Thị D | 3,200 | Thẻ tín dụng |
| N003 | 24/11 08:22 | Lê Văn E | 2,800 | Chuyển khoản |
Bảng 3: Đơn hàng có vấn đề (cần xác minh)
| Mã đơn | Thời gian | Vấn đề | Giá trị (nghìn) | Mức độ ưu tiên |
|--------|-------------|-------------------------|-----------------|----------------|
| P001 | 24/11 08:05 | Địa chỉ không đầy đủ | 4,500 | Trung bình |
| P002 | 24/11 08:12 | Thanh toán không thành công | 7,800 | Cao |
Cấu hình Choose Branch:
- Chọn Input 0 (Đơn hàng VIP) làm nhánh ưu tiên
Kết quả khi sử dụng Choose Branch (chọn nhánh VIP):
| Mã đơn | Thời gian | Khách hàng | Cấp VIP | Giá trị (nghìn) | Ghi chú |
|--------|-------------|-------------|---------|-----------------|-----------------|
| V001 | 24/11 08:15 | Nguyễn Văn A| Platinum| 12,500 | Khách hàng lâu năm |
| V002 | 24/11 08:20 | Trần Thị B | Gold | 8,200 | Sinh nhật khách |
Sức mạnh của Choose Branch Mode
- Tập trung xử lý: Cho phép workflow tập trung vào một loại dữ liệu quan trọng nhất tại một thời điểm nhất định.
- Xử lý theo ưu tiên: Lý tưởng cho các tình huống cần ưu tiên một luồng dữ liệu quan trọng hơn các luồng khác.
- Điều kiện động: Kết hợp với các nút điều kiện khác, bạn có thể thay đổi nhánh được chọn dựa trên các điều kiện cụ thể (ví dụ: vào giờ cao điểm, ưu tiên đơn hàng VIP).
- Đơn giản hóa workflow phức tạp: Trong các workflow phức tạp, Choose Branch giúp quản lý luồng dữ liệu một cách rõ ràng và có kiểm soát.
Tình huống sử dụng thực tế
Chiến lược xử lý đơn hàng thông minh trong cao điểm mua sắm
Trong cao điểm Black Friday, hệ thống của MegaRetail có thể bị quá tải. Để đảm bảo dịch vụ tốt nhất cho các khách hàng quan trọng nhất, họ triển khai một workflow động sử dụng Node Merge với Choose Branch:
- Buổi sáng (8:00 – 12:00): Ưu tiên xử lý đơn hàng VIP để đảm bảo khách hàng thân thiết được phục vụ đầu tiên
- Buổi chiều (12:00 – 17:00): Chuyển sang xử lý đơn hàng có vấn đề để tránh tích tụ các vấn đề cần giải quyết
- Buổi tối (17:00 – 22:00): Xử lý đơn hàng thông thường khi hệ thống ít tải hơn
Workflow này có thể tự động chuyển đổi giữa các nhánh dựa trên thời gian trong ngày, tạo ra một hệ thống xử lý đơn hàng thông minh và hiệu quả, tối đa hóa trải nghiệm khách hàng trong điều kiện tài nguyên có hạn.
So sánh các Mode của Node Merge
| Mode | Đặc điểm chính | Phù hợp khi | Ví dụ ứng dụng |
|---|---|---|---|
| Combine | Kết hợp dữ liệu từ nhiều nguồn dựa trên các trường khớp, vị trí, hoặc tạo tất cả kết hợp | Cần làm giàu dữ liệu hoặc phân tích mối quan hệ | Phân tích lý do trả hàng bằng cách kết hợp dữ liệu vận chuyển và bảo hành |
| Append | Nối các bản ghi từ nhiều nguồn thành một danh sách duy nhất | Tổng hợp dữ liệu từ nhiều nguồn có cùng cấu trúc | Tổng hợp dữ liệu bán hàng từ nhiều kênh |
| SQL Query | Sử dụng sức mạnh của SQL để xử lý dữ liệu phức tạp | Cần thực hiện các phép tính toán, lọc, nhóm phức tạp | Phân tích hiệu suất bán hàng theo nhiều chiều |
| Choose Branch | Chọn một luồng dữ liệu cụ thể để xử lý tiếp | Cần ưu tiên một loại dữ liệu quan trọng | Xử lý đơn hàng VIP trong cao điểm mua sắm |
Kết luận
Node Merge trong n8n cung cấp bốn mode mạnh mẽ, mỗi mode đều có những ứng dụng và sức mạnh riêng biệt. Từ việc đơn giản nối dữ liệu (Append), kết hợp dữ liệu theo các điều kiện khớp (Combine), xử lý phức tạp với SQL (SQL Query), đến việc lựa chọn luồng dữ liệu ưu tiên (Choose Branch), Node Merge cung cấp bộ công cụ toàn diện để xử lý dữ liệu từ nhiều nguồn.
Hiểu rõ bản chất và ứng dụng của từng mode giúp bạn tận dụng tối đa sức mạnh của Node Merge để xây dựng các workflow tự động hóa phức tạp mà không cần đến kiến thức lập trình chuyên sâu.