Hầu hết người dùng biết đến n8n như một nền tảng tự động hóa no-code – kéo thả node, kết nối ứng dụng, chạy workflow mà không cần viết một dòng code nào. Nhưng thực tế, đó chỉ là một phần sức mạnh của công cụ này.
Khi gặp các bài toán phức tạp hơn – xử lý dữ liệu có cấu trúc lồng nhau, tính toán tùy chỉnh, gọi thư viện ngoài, hay tích hợp logic nghiệp vụ đặc thù – bạn cần nhiều hơn những gì các node có sẵn có thể làm. Đây là lúc Code node JavaScript trong n8n phát huy vai trò.
JavaScript là ngôn ngữ gốc (native) của n8n, mang lại hiệu suất tối ưu và khả năng tương thích hoàn hảo. Kết hợp với việc n8n 2.0 ra mắt với Task Runners giúp cô lập môi trường thực thi, giảm rủi ro từ code tùy ý, đây là thời điểm tốt nhất để tìm hiểu cách tận dụng JavaScript ngay bên trong workflow của bạn.
Cách thêm và cấu hình Code node JavaScript trong n8n
Bước 1: Mở workflow và thêm node mới
Truy cập n8n và mở workflow bạn đang làm việc (hoặc tạo workflow mới). Nhấn nút "Add" trên canvas để mở bảng tìm kiếm node.

Bước 2: Chọn nhóm Core và tìm node Code
Trong bảng tìm kiếm node, chọn tab "Core" để lọc các node cốt lõi. Tìm và chọn node có tên "Code" rồi chọn tiếp Code in JavaScript đây là node cho phép bạn chạy code tùy chỉnh trực tiếp trong workflow.

Bước 3: Chọn ngôn ngữ JavaScript
Sau khi thêm Code node vào canvas, mở panel cấu hình. Bạn sẽ thấy mục "Language" – mặc định hệ thống sẽ chọn sẵn là "JavaScript". Nếu nó đang ở ngôn ngữ khác, hãy nhấn vào và chuyển lại về JavaScript.

Tính đến thời điểm hiện tại, n8n đã tối ưu hóa V8 engine bên trong các Task Runners độc lập, giúp các tác vụ xử lý mảng và chuỗi bằng JavaScript Code node đạt hiệu suất xử lý nhanh và mượt mà hơn đáng kể.
Bước 4: Chọn Mode thực thi
Trước khi viết code, hãy chọn Mode phù hợp với nhu cầu:
- Run Once for All Items: Chạy code một lần duy nhất, toàn bộ dữ liệu từ node trước được truyền vào dưới dạng danh sách. Phù hợp khi bạn cần xử lý tập hợp dữ liệu lớn hoặc tính toán tổng hợp.
- Run Once for Each Item: Chạy code lặp lại cho từng item riêng lẻ. Phù hợp khi mỗi bản ghi cần được xử lý độc lập.

Bước 5: Viết code JavaScript
Trong vùng nhập code, bạn có thể truy cập dữ liệu từ các node trước thông qua biến $input.
-
Khi sử dụng chế độ "Run Once for All Items" (Xử lý toàn bộ danh sách):
const items = $input.all();
const total = items.reduce( ( sum, item ) => sum + (item.json.amount || 0 ), 0 );
return [{ json : { total : total, count : items.length } }];
-
Khi sử dụng chế độ "Run Once for Each Item" (Xử lý từng mục đơn lẻ):
const item = $input.item;
const name = item.json.name || '' ;
return {
json : {
name_uppercase : name.toUpperCase(),
length : name.length
}
};
Bước 6: Thực thi và kiểm tra
Nhấn "Execute Step" để chạy thử node với dữ liệu thực từ node trước. Panel bên phải sẽ hiển thị kết quả đầu ra ngay lập tức, giúp bạn xác nhận code hoạt động đúng trước khi kết nối với các node tiếp theo.

Những điều bạn thực sự có thể làm với JavaScript trong n8n
Xử lý dữ liệu phức tạp mà node có sẵn không làm được
- Node có sẵn trong n8n rất tốt cho các thao tác chuẩn hóa. Nhưng khi cần xử lý chuỗi JSON lồng nhiều cấp, thực hiện các hàm mảng nâng cao (
map,filter,reduce), hay chuyển đổi định dạng ngày giờ theo quy tắc phức tạp – JavaScript là lựa chọn tự nhiên nhất. Bạn có thể sử dụng toàn bộ sức mạnh của các đối tượng build-in nhưMath,Date,JSON,RegExpngay lập tức mà không cần cấu hình thêm.
Tích hợp JavaScript vào AI workflow
- Trong bối cảnh công nghệ hiện tại, tổ chức và cá nhân đang dùng n8n không chỉ cho tự động hóa đơn giản mà còn cho các AI workflow phức tạp tích hợp nhiều bước xử lý. JavaScript Code node đóng vai trò quan trọng trong chuỗi đó: làm sạch dữ liệu đầu vào trước khi gửi cho AI Agent, định dạng cấu trúc JSON phức tạp để prompt hiệu quả hơn, hoặc phân tách output từ LLM trước khi lưu vào database.
Ưu điểm và nhược điểm thực tế
Ưu điểm
- Không cần hạ tầng ngoài: Toàn bộ logic nằm gọn trực tiếp trong workflow – giảm đáng kể độ phức tạp hạ tầng và điểm lỗi tiềm ẩn so với việc phải duy trì một serverless function bên ngoài.
- Tốc độ thực thi tối đa (Native): Vì n8n được xây dựng trên nền tảng Node.js, JavaScript chạy trực tiếp với hiệu suất cao nhất mà không bị độ trễ khởi động môi trường (cold start) như khi gọi các ngôn ngữ không đồng bộ khác.
- Hỗ trợ Editor và Auto-complete cực tốt: n8n hỗ trợ đắc lực cho JavaScript với hệ thống gợi ý code (autocomplete), hiển thị trực quan các hàm helper và cấu trúc dữ liệu đầu vào, giúp việc viết code trở nên rất dễ dàng.
- Bảo mật được cải thiện trong n8n 2.x: Tính năng Task Runners cô lập môi trường thực thi code tùy chỉnh, loại bỏ hoàn toàn rủi ro rò rỉ hoặc treo tiến trình chính của hệ thống n8n.
Nhược điểm
- Thư viện bên thứ ba bị giới hạn mặc định: Bạn không thể tự do cài đặt các gói NPM bên ngoài vào Code node một cách tùy ý. Để sử dụng các thư viện ngoài, bạn bắt buộc phải cấu hình biến môi trường
NODE_FUNCTION_ALLOW_EXTERNALcủa hệ thống n8n. - Không phù hợp cho tác vụ quá đơn giản: Nếu bạn chỉ cần nối hai chuỗi hoặc đổi tên trường dữ liệu cơ bản, dùng Code node là quá mức cần thiết. Các node như Edit Fields hoặc Set thực hiện việc đó trực quan và nhanh chóng hơn nhiều.
Kết luận
Code node JavaScript trong n8n là chiếc cầu nối quan trọng giữa tự động hóa no-code và xử lý dữ liệu có lập trình. Nó giúp bạn phá bỏ mọi giới hạn của giao diện kéo thả, mang lại sự linh hoạt tuyệt đối để xử lý mọi loại cấu trúc dữ liệu theo ý muốn.
Với những cải tiến liên tục từ n8n 2.0 đến nay, khả năng hỗ trợ JavaScript ngày càng ổn định, an toàn và tối ưu hiệu suất. Nếu bạn đang xây dựng những workflow lớn, phức tạp và cần một lớp logic tùy biến mạnh mẽ, hãy tận dụng ngay JavaScript làm vũ khí bí mật trong bộ công cụ n8n của mình.
Hướng dẫn AI
Học IT
Hàm Excel