Chuyển tới nội dung

tự động hóa quy trình làm việc với n8n

n8n (viết tắt của “nodemation”, phát âm là n-eight-n) là một công cụ tự động hóa quy trình làm việc (workflow automation tool) mã nguồn mở và miễn phí (với mô hình fair-code).

Nói một cách dễ hiểu, n8n giúp bạn kết nối các ứng dụng, dịch vụ và dữ liệu khác nhau lại với nhau để chúng tự động thực hiện các tác vụ mà không cần sự can thiệp của con người. Nó thường được so sánh với Zapier hoặc Make (trước đây là Integromat), nhưng n8n mạnh mẽ và linh hoạt hơn rất nhiều về mặt kỹ thuật.

Dưới đây là những điểm cốt lõi giúp bạn hiểu rõ hơn về n8n:


1. Cách thức hoạt động

n8n hoạt động dựa trên biểu đồ nút (node-based approach):

  • Nodes (Nút): Mỗi bước trong quy trình là một “nút”. Ví dụ: Nút “Nhận email từ Gmail”, nút “Gửi tin nhắn lên Slack”, nút “Lưu vào Google Sheets”.
  • Connections (Kết nối): Bạn nối các nút này lại với nhau bằng các đường dây để tạo thành luồng dữ liệu.
  • Trigger (Kích hoạt): Quy trình bắt đầu khi có sự kiện xảy ra (ví dụ: một khách hàng mới điền form, hoặc chạy định kỳ mỗi 8h sáng).

2. Điểm đặc biệt nhất của n8n

Khác với Zapier hay Make (vốn là phần mềm dạng dịch vụ – SaaS đóng kín), n8n có hai đặc điểm “sát thủ”:

  1. Self-hosted (Tự lưu trữ): Bạn có thể cài đặt n8n trên máy chủ của chính mình (server riêng). Điều này có nghĩa là dữ liệu của bạn nằm trong tay bạn (quan trọng cho bảo mật) và bạn không bị giới hạn số lượng tác vụ (workflow executions) bởi gói cước đắt đỏ.
  2. Khả năng lập trình: Nếu các nút có sẵn không đáp ứng đủ nhu cầu, bạn có thể viết mã JavaScript trực tiếp trong quy trình để xử lý dữ liệu phức tạp. Điều này khiến n8n cực kỳ được yêu thích bởi các lập trình viên và dân kỹ thuật.

3. So sánh nhanh: n8n vs. Zapier/Make

Đặc điểmn8nZapier / Make
Mô hìnhSelf-hosted (hoặc Cloud)Cloud Only (SaaS)
Chi phíRất rẻ (hoặc miễn phí nếu tự host)Đắt đỏ khi quy mô lớn
Quyền riêng tưDữ liệu ở trên server của bạnDữ liệu đi qua server của họ
Độ khóTrung bình/Khó (Cần kiến thức kỹ thuật)Dễ (Dành cho người không chuyên)
Sức mạnhKhông giới hạn (có thể code thêm)Giới hạn theo tính năng có sẵn

4. n8n dùng để làm gì? (Ví dụ thực tế)

Bạn có thể dùng n8n để tự động hóa hầu hết mọi thứ:

  • Marketing: Khi có khách hàng tiềm năng mới trên Facebook Ads -> Tự động thêm vào CRM -> Gửi email chào mừng -> Thông báo cho đội sale qua Telegram.
  • Quản lý dữ liệu: Tự động lấy dữ liệu từ hóa đơn điện tử gửi qua email -> Trích xuất thông tin -> Lưu vào file Excel kế toán.
  • Web Scraping: Định kỳ vào một trang web đối thủ để lấy giá sản phẩm -> So sánh với giá của mình -> Cảnh báo nếu giá mình cao hơn.
  • Chatbot AI: Kết nối Telegram/Messenger với OpenAI (ChatGPT) để tạo bot trả lời tự động thông minh.

Tóm lại

Nếu bạn là người dùng phổ thông chỉ cần nối Google Sheets với Gmail, Zapier là đủ. Nhưng nếu bạn muốn xây dựng các hệ thống tự động hóa phức tạp, xử lý dữ liệu lớn, muốn tiết kiệm chi phí lâu dài và có chút kiến thức kỹ thuật, n8n là lựa chọn số một hiện nay.


cách cài đặt n8n trên máy tính

Chúng ta sẽ sử dụng cách cài qua npm (Node Package Manager). Đừng lo lắng nếu nghe thuật ngữ này lạ lẫm, bạn chỉ cần làm theo đúng 3 bước sau:


Bước 1: Cài đặt môi trường (Node.js)

n8n được xây dựng trên Node.js, nên máy tính bạn cần có nó trước.

  1. Truy cập trang chủ: nodejs.org.
  2. Tải xuống phiên bản LTS (Recommended for most users) – Ví dụ hiện tại là v20 hoặc v22.
  3. Cài đặt file vừa tải về như một phần mềm bình thường (cứ bấm Next liên tục là được).

Bước 2: Chạy lệnh cài đặt n8n

Sau khi cài xong Node.js, bạn sẽ dùng cửa sổ dòng lệnh (Command Line) để gọi n8n về.

  1. Trên Windows: Bấm phím Windows, gõ cmd và chọn Command Prompt.(Trên Mac: Bấm Command + Space, gõ Terminal và mở nó lên).
  2. Trong cửa sổ hiện ra, bạn copy và dán dòng lệnh sau đây, rồi bấm Enter:Bashnpx n8n
  3. Lưu ý:
    • Lần đầu tiên chạy, hệ thống có thể hỏi: Need to install the following packages: n8n. Ok to proceed? (y). Bạn hãy gõ y rồi bấm Enter.
    • Chờ một chút để nó tải về và khởi động. Khi bạn thấy dòng chữ Editor is now accessible via: http://localhost:5678/ nghĩa là đã thành công.

Bước 3: Mở n8n và sử dụng

  1. Mở trình duyệt web (Chrome, Edge, Safari…).
  2. Gõ địa chỉ này vào thanh địa chỉ: http://localhost:5678
  3. Bạn sẽ thấy giao diện n8n hiện ra!

Tại đây, n8n sẽ yêu cầu bạn tạo một tài khoản (Set up owner account). Bạn cứ điền Email và Password bất kỳ (vì đây là chạy trên máy của bạn, chỉ bạn thấy thôi), sau đó bấm Next để vào màn hình chính.


💡 Một vài lưu ý quan trọng khi dùng trên máy tính cá nhân

  • Đừng tắt cửa sổ đen (CMD/Terminal): Cửa sổ dòng lệnh ở Bước 2 chính là “máy chủ” đang chạy ngầm. Nếu bạn tắt nó đi, n8n trên trình duyệt sẽ ngừng hoạt động.
  • Máy tính phải bật: Vì n8n đang chạy trên máy tính của bạn (Localhost), nên các quy trình tự động hóa chỉ chạy khi máy tính của bạn đang mở và có kết nối mạng.
  • Dừng chạy: Để tắt n8n, bạn quay lại cửa sổ dòng lệnh và bấm tổ hợp phím Ctrl + C.

Ví dụ: Lấy thông tin thời tiết mỗi ngày và gửi vào email hoặc Telegram

Để quy trình này đơn giản nhất cho người mới bắt đầu (và không cần đăng ký tài khoản API phức tạp), chúng ta sẽ sử dụng một dịch vụ thời tiết miễn phí không cần mật khẩu là Open-Meteo.

Quy trình sẽ gồm 2 bước chính:

  1. Trigger: Kích hoạt quy trình (ví dụ: bấm nút chạy thủ công).
  2. Action: Lấy dữ liệu thời tiết từ Internet về n8n.

(Sau khi lấy được dữ liệu, mình sẽ chỉ bạn cách gửi đi).


Bước 1: Tạo quy trình làm việc (Workflow) mới

  1. Trong giao diện n8n (trên trình duyệt http://localhost:5678), bấm vào nút “Add workflow” (hoặc dấu cộng) ở góc trên bên phải.
  2. Bạn sẽ thấy một trang trắng tinh. Đây là bàn làm việc của bạn.

Bước 2: Thêm nút kích hoạt (Trigger)

Chúng ta cần một sự kiện để bắt đầu.

  1. Bấm vào dấu + (Add first step) ở giữa màn hình.
  2. Gõ vào ô tìm kiếm: Schedule.
  3. Chọn Schedule Trigger.
    • Mặc định nó sẽ để là chạy mỗi ngày 1 lần. Bạn cứ để nguyên, không cần chỉnh sửa gì.
    • Bấm dấu X (góc trên phải của hộp thoại) để đóng lại. Bạn đã có nút đầu tiên!

Bước 3: Thêm nút lấy dữ liệu thời tiết (HTTP Request)

Đây là nút “thần thánh” nhất của n8n, giúp bạn kết nối với cả thế giới internet.

  1. Bấm vào dấu + nhỏ nằm bên phải của nút Schedule Trigger bạn vừa tạo (để nối dây).
  2. Gõ tìm kiếm: HTTP Request và chọn nó.
  3. Một bảng cài đặt hiện ra. Bạn điền thông tin sau (Copy chính xác nhé):
    • Method: Để nguyên là GET.
    • URL: Copy dòng này dán vào (Đây là API lấy thời tiết Hà Nội):https://api.open-meteo.com/v1/forecast?latitude=21.02&longitude=105.83&current_weather=true
    • Lưu ý: Nếu bạn ở TP.HCM, thay latitude=10.82 và longitude=106.62.

Bước 4: Chạy thử (Test)

  1. Trong bảng cài đặt của nút HTTP Request, bạn nhìn lên góc trên phải, bấm nút Execute Node (hoặc Test step).
  2. Chờ 1-2 giây.
  3. Nếu thành công, bạn sẽ thấy khung Output hiện ra màu xanh lá cây với dữ liệu dạng JSON.
  4. Hãy tìm dòng chữ: temperature. Bạn có thấy nhiệt độ hiện tại (ví dụ: 25.4) không?

Chúc mừng! Bạn vừa thực hiện thành công việc “gọi API” để lấy dữ liệu thời gian thực từ Internet về máy tính của mình mà không cần viết một dòng code nào.


Bước 5: Gửi dữ liệu đi (Email/Telegram)

Đến đây, n8n đã nắm giữ dữ liệu nhiệt độ. Để gửi nó đi, bạn cần nối tiếp một nút nữa.

Lựa chọn của bạn:

Việc gửi Email (Gmail) hoặc Telegram yêu cầu bước “xác thực” (bảo mật) hơi kỹ một chút. Bạn muốn mình hướng dẫn cái nào?

  • Lựa chọn A – Gmail: Quen thuộc, nhưng cần tạo “Mật khẩu ứng dụng” (App Password) trong cài đặt Google (do Google cấm dùng mật khẩu thường cho các tool bên ngoài).
  • Lựa chọn B – Telegram: Cần tạo một con Bot trên Telegram (mất khoảng 1 phút), rất tiện lợi và ngầu.

Lựa chọn A là một quyết định thực tế! Tuy nhiên, có một lưu ý nhỏ: Google hiện tại rất bảo mật, họ không cho phép các ứng dụng bên ngoài dùng “mật khẩu đăng nhập” bình thường của bạn.

Để n8n gửi được email thay cho bạn, chúng ta cần tạo một “Mật khẩu ứng dụng” (App Password).


Bước 1: Lấy “Mật khẩu ứng dụng” từ Google

(Nếu bạn đã biết cách tạo App Password rồi thì bỏ qua bước này)

  1. Truy cập trang quản lý tài khoản Google: myaccount.google.com
  2. Chọn mục Bảo mật (Security) ở cột bên trái.
  3. Quan trọng: Bạn phải bật tính năng Xác minh 2 bước (2-Step Verification) thì mới thấy chỗ tạo mật khẩu ứng dụng. Nếu chưa bật, hãy bật nó lên.
  4. Sau khi đã bật xác minh 2 bước, bạn gõ vào thanh tìm kiếm trên cùng của trang Google đó chữ: "App passwords" (hoặc "Mật khẩu ứng dụng"). Bấm vào kết quả hiện ra.
  5. Đặt tên ứng dụng là n8n rồi bấm Create (Tạo).
  6. Google sẽ cấp cho bạn một chuỗi ký tự dài 16 chữ (ví dụ: xxxx xxxx xxxx xxxx).Hãy copy mã này lại ngay! Đây chính là chìa khóa để n8n đăng nhập.

Bước 2: Thêm nút Gửi Email (Send Email) trong n8n

Chúng ta quay lại giao diện n8n (localhost:5678).

  1. Bấm vào dấu + bên cạnh nút HTTP Request để nối thêm bước mới.
  2. Gõ tìm kiếm: Send Email (Lưu ý: Chọn đúng node tên là “Send Email”, đừng chọn node tên là “Gmail” vì node Gmail cấu hình phức tạp hơn nhiều).
  3. Một bảng cài đặt hiện ra.

Bước 3: Cấu hình kết nối (SMTP)

Trong bảng cài đặt của nút “Send Email”:

  1. Tìm mục Credential for SMTP, bấm chọn Create New.
  2. Điền thông tin như sau:
    • User: Địa chỉ Gmail của bạn (ví dụ: nguyenvana@gmail.com).
    • Password: Dán cái Mật khẩu ứng dụng 16 ký tự bạn vừa lấy ở Bước 1 vào đây (không phải mật khẩu đăng nhập Gmail nhé).
    • Host: smtp.gmail.com
    • Port: 465
    • SSL/TLS: Bật công tắc này lên (On).
    • Bấm nút Save (Lưu) ở góc dưới.

Bước 4: Viết nội dung Email (Bước thú vị nhất!)

Bây giờ chúng ta sẽ soạn email và chèn nhiệt độ vào.

  1. From Email: Điền email của bạn.
  2. To Email: Điền email người nhận (điền chính email của bạn để test).
  3. Subject: Ghi tiêu đề, ví dụ: Báo cáo thời tiết hôm nay.
  4. Text: Đây là nội dung email.
    • Bạn gõ: Chào bạn, nhiệt độ hiện tại ở Hà Nội là:
    • Bây giờ hãy nhìn sang cột bên trái, phần Input (dữ liệu đầu vào từ bước trước).
    • Bạn tìm dòng temperature, dùng chuột kéo và thả (drag & drop) con số đó (ví dụ: 25.4) thả vào trong khung soạn thảo Text, ngay sau dòng chữ bạn vừa gõ.
    • Nó sẽ hiện ra một đoạn code kiểu {{ $json.current_weather.temperature }}. Đây chính là “biến số”.

Bước 5: Bắn thử! (Execute)

  1. Bấm nút Execute Node ở góc trên phải.
  2. Nếu hiện màu xanh lá cây -> Thành công!
  3. Hãy mở hộp thư Gmail của bạn kiểm tra (check cả mục Spam nếu không thấy). Bạn có nhận được email báo nhiệt độ không?

Gửi phản hồi

error: Content is protected !!