Trang chủ>  Blog >  Chia sẻ kinh nghiệm >  Sử dụng Function Node trong n8n – viết logic tùy chỉnh

Sử dụng Function Node trong n8n – viết logic tùy chỉnh


Bạn dùng n8n để tự động hóa công việc, nhưng nhiều khi gặp tình huống “nửa no-code nửa code” như: Cần format lại số điện thoại, email, ngày tháng trước khi lưu Cần tính toán giá trị mới từ dữ liệu gốc Cần lọc danh sách khách hàng theo điều kiện cụ thể → Đây là lúc bạn cần dùng Function Node trong n8n – nơi bạn có thể viết một đoạn JavaScript ngắn để xử lý dữ liệu theo logic tùy chỉnh. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng Function Node để viết logic trong workflow, từ cơ bản đến ứng dụng thực tế.

  444 lượt xem

Nội dung bài viết

1. Function Node là gì? Dùng để làm gì?

Function Node là một node đặc biệt trong n8n, cho phép bạn viết JavaScript tùy chỉnh để:

  • Biến đổi dữ liệu (format số, email, ngày tháng…)
  • Tính toán giá trị mới (tổng tiền, chiết khấu, điểm trung bình…)
  • Lọc dữ liệu theo điều kiện
  • Tạo mảng, vòng lặp, xử lý nhiều item cùng lúc

👉 Function Node = “chìa khóa” để biến n8n từ công cụ kéo-thả thành công cụ tự động hóa cực kỳ linh hoạt.

 

2. Cấu trúc Function Node trong n8n

Khi mở Function Node, bạn sẽ thấy:

return items;

Đây là array chứa từng “item” (mỗi dòng dữ liệu). Bạn có thể duyệt, chỉnh sửa và trả lại mảng mới.

Ví dụ cấu trúc chuẩn:

return items.map(item => {

  const name = item.json.name.toUpperCase();

  item.json.formattedName = name;

  return item;

});

🎯 Kết quả: Thêm trường formattedName viết HOA cho từng item.

✅ Lưu ý:

  • Dữ liệu nằm trong item.json
  • Dùng .map() để xử lý từng item
  • Phải luôn return items cuối cùng

 

3. Các ví dụ thực tế thường dùng

🧮 a. Tính toán đơn giản (Tổng tiền)

return items.map(item => {

  const price = item.json.price;

  const quantity = item.json.quantity;

  item.json.total = price * quantity;

  return item;

});

🗓️ b. Format ngày tháng

return items.map(item => {

  const date = new Date(item.json.created_at);

  item.json.day = date.toLocaleDateString("vi-VN");

  return item;

});

📞 c. Chuẩn hoá số điện thoại

return items.map(item => {

  let phone = item.json.phone.replace(/\D/g, "");

  if (phone.startsWith("84")) phone = "0" + phone.slice(2);

  item.json.cleanedPhone = phone;

  return item;

});

🎯 d. Lọc item theo điều kiện

return items.filter(item => item.json.status === "active"); 

4. Khi nào nên dùng Function Node?

Tình huống

Giải pháp

Cần xử lý logic mà node có sẵn không hỗ trợ

Dùng Function Node để tự viết

API trả dữ liệu nested / cần transform dữ liệu

Viết lại dạng phẳng / đổi key trong Function Node

Dữ liệu cần được chuẩn hoá trước khi ghi vào Sheets

Format lại bằng Function Node

Cần tính toán từ các trường khác nhau

Viết công thức JavaScript ngay trong Function Node

✅ Checklist sử dụng Function Node hiệu quả:

  • Đọc kỹ dữ liệu vào (input item.json)
  • Dùng .map() để xử lý từng dòng
  • Không quên return đầy đủ
  • Kiểm tra bằng log console.log(item) nếu cần debug 

5. Học viết Function Node tại MCI Academy – Automation nâng cao

Function Node giúp bạn nâng tầm workflow – từ đơn giản kéo-thả thành workflow logic theo ý mình.
Nếu bạn muốn học từ A đến Z cách dùng Function, xử lý API, ghi dữ liệu Google Sheets/Gmail/Zalo,… thì MCI có lộ trình dành riêng cho bạn:

🎓 Khóa học Automation với n8n – MCI Academy

  • Học từ cơ bản → nâng cao: Trigger, Webhook, API, Function Node
  • Viết script xử lý dữ liệu từ Form → Zalo OA → Google Sheets
  • Mentor 1–1: hướng dẫn cách debug, xử lý lỗi, tối ưu tốc độ
  • Portfolio cuối khoá: Tự xây hệ thống automation real-time

📞 Hotline: 0352.433.233
📧 Email: cskh@mcivietnam.com

👉 Đăng ký ngay để làm chủ Function Node và biến n8n thành trợ lý tự động hoá cực mạnh cho doanh nghiệp của bạn.

Chương trình đào tạo: Phân tích dữ liệu, Khoa học dữ liệu, Kĩ sư dữ liệu, Lập trình ứng dụng.
Chất lượng nhất - Uy tín nhất - Nhiều học viên tin tưởng nhất
Hơn 8000 học viên ưu tú đã tốt nghiệp
Đăng ký tư vấn khóa học

*Vui lòng nhập số điện thoại của bạn

*Vui lòng nhập họ tên của bạn

*Vui lòng chọn địa điểm học

*Vui lòng chọn giới tính

*Vui lòng chọn 1 trường


Các bài viết liên quan


THỰC TRẠNG: CHI PHÍ ẨN CỦA VIỆC LÀM TAY CHÂN. BẠN ĐƯỢC TRẢ LƯƠNG ĐỂ DÙNG NÃO RA QUYẾT ĐỊNH, KHÔNG PHẢI ĐỂ LÀM VIỆC THAY VIỆC CỦA MÁY MÓC

Trong thời đại AI và tự động hóa, doanh nghiệp không chỉ cạnh tranh bằng số lượng công việc được hoàn thành, mà còn bằng tốc độ ra quyết định, khả năng tối ưu quy trình và năng lực sáng tạo của đội ngũ. Tuy nhiên, nhiều tổ chức vẫn đang để nhân sự trình độ cao mắc kẹt trong những tác vụ lặp lại, thủ công và ít tạo ra giá trị chiến lược. Đây chính là “chi phí ẩn” của việc làm tay chân: không dễ nhìn thấy ngay trên báo cáo tài chính, nhưng âm thầm bào mòn hiệu suất, ngân sách và cơ hội tăng trưởng dài hạn.

Giải quyết triệt để giới hạn tin nhắn của Claude bằng tính năng Projects nạp một lần

Giới hạn tin nhắn (Message Limit) của Claude Pro chính là "cơn ác mộng", thay vì nản lòng từ bỏ, bạn hoàn toàn có thể đập tan rào cản này bằng cách khai thác Tính năng Projects kết hợp tư duy “One-Time Loading”. Đây là bí quyết giúp bạn tối ưu hóa tài khoản, giải quyết triệt để giới hạn tin nhắn và bứt phá gấp 5 lần hiệu suất làm việc!

Tip ứng dụng: Một mẹo nhỏ giúp tự động hóa email báo cáo hàng tuần cực nhanh chóng cho dân văn phòng

Trong công việc văn phòng, báo cáo hàng tuần là một nhiệm vụ quen thuộc nhưng lại khá “tốn thời gian”. Việc tổng hợp dữ liệu, viết nội dung, chỉnh sửa và gửi email lặp đi lặp lại mỗi tuần khiến nhiều người mất từ vài chục phút đến vài giờ. Tuy nhiên, với một mẹo ứng dụng đơn giản về tự động hóa, bạn hoàn toàn có thể biến quy trình này trở nên nhanh hơn, gọn hơn và gần như không cần thao tác thủ công.

Các bài viết liên quan