Dựa trên video hướng dẫn của N8n Official
Chào các bạn! Bạn đang muốn bắt đầu tự động hóa công việc với n8n nhưng vẫn còn bối rối về cách xây dựng workflow hiệu quả? Mình hiểu cảm giác đó – những khái niệm ban đầu có thể hơi khó nắm bắt.
Trong bài viết này, mình sẽ tóm tắt video số 5 trong khóa học n8n cơ bản, giúp bạn hiểu rõ các khái niệm workflow quan trọng và tiếp tục xây dựng workflow đầu tiên của chúng ta. Let’s get started!
Nội Dung Chính
Khái Niệm Workflow Cơ Bản
Trước khi đi sâu vào xây dựng workflow, mình cần hiểu một số khái niệm cốt lõi về canvas và các thành phần của n8n.
Điểm Chính:
- Canvas là nơi chúng ta xây dựng và thiết kế workflow
- Workflow menu hiển thị tên và tags liên quan đến workflow
- Workflow activation settings cho phép đưa workflow vào sản xuất (production)
- Version history và workflow settings nằm ở góc trên bên phải
- Nodes là các khối xây dựng cơ bản của workflow
Khi nhìn vào canvas, bạn sẽ thấy menu workflow ở phía trên cùng, hiển thị tên và các tag liên quan đến workflow đó. Bên phải trên là các cài đặt kích hoạt workflow (activation settings), cho phép bạn truy cập lịch sử phiên bản và cài đặt riêng của workflow.
Ở menu workflow chính, bạn có thể tìm thấy tất cả các workflow trong hệ thống n8n của bạn. Tại đây, bạn có thể lọc theo tags và owner. Để xem chỉ các workflow bạn đã tạo, hãy nhấp vào “My Workflows”. Mỗi khi tạo workflow mới, bạn sẽ được chỉ định làm owner mặc định nhé.
Ý Kiến Của Mình:
Việc hiểu rõ giao diện canvas là điều đầu tiên giúp mình làm quen với n8n nhanh hơn. Mình đề xuất các bạn dành thời gian khám phá từng phần của canvas trước khi bắt đầu xây dựng workflow phức tạp. Đặc biệt chú ý đến cài đặt kích hoạt vì đây là điều quyết định workflow có thực sự hoạt động hay không!
Kết Nối Node & Điều Hướng Workflow
Cách các node được kết nối với nhau tạo nên cấu trúc của workflow. Mỗi workflow đều bắt đầu bằng một trigger node.
Điểm Chính:
- Trigger node là điểm khởi đầu của mọi workflow (nhận diện bởi biểu tượng tia sét màu cam)
- Trigger node chỉ có output branch, không có input branch
- Một workflow có thể có nhiều trigger khác nhau
- Workflow phải được kích hoạt (activated) để trigger hoạt động
- Double-click vào node để xem các node trước và sau nó
Mỗi workflow bắt đầu với một trigger node – bạn có thể nhận ra chúng vì chúng chỉ có nhánh output và có biểu tượng tia sét màu cam. Một workflow có thể có nhiều trigger khác nhau để phục vụ các use case phức tạp. Lưu ý là trigger chỉ hoạt động khi workflow được kích hoạt (trừ khi bạn đang test workflow).
Khi double-click vào một node, bạn có thể thấy các node trước và sau node đó. Điều này giúp bạn điều hướng qua workflow khi đang xây dựng. Trong ví dụ đơn giản, chúng ta có “execute workflow” > “Google Sheets” > “Filter” > “Edit Fields”.
Ý Kiến Của Mình:
Double-click vào node để điều hướng là một tip cực kỳ hữu ích khi workflow của bạn trở nên phức tạp với nhiều node. Mình thường sử dụng cách này để không bị lạc trong các workflow lớn. Ngoài ra, việc có nhiều trigger trong một workflow giúp tái sử dụng logic xử lý cho nhiều event khác nhau, tiết kiệm thời gian xây dựng đáng kể!
Rẽ Nhánh Workflow
Branching (rẽ nhánh) là khái niệm quan trọng giúp tạo nhiều đường đi khác nhau trong workflow dựa trên các điều kiện.
Điểm Chính:
- Branching giúp tạo các đường đi khác nhau dựa trên điều kiện
- Có hai cách để tạo branch:
- Sử dụng node có nhiều output options (mỗi item chỉ đi theo một đường)
- Kéo nhiều output lines từ một node (mỗi item đi theo mọi đường)
- Node với nhiều output branches sẽ có các tập output items khác nhau
Rẽ nhánh là cách chúng ta tạo các đường đi hoặc tập hợp các hành động khác nhau tùy thuộc vào các điều kiện khác nhau. Branching cho phép xây dựng các workflow phức tạp, nơi một workflow có thể xử lý nhiều trường hợp thay vì chỉ một trường hợp đơn lẻ.
Có hai cách để tạo branch:
- Sử dụng node có nhiều output options: Trong trường hợp này, mỗi item sẽ chỉ đi theo một trong số các đường đi. Ví dụ: với IF node, chúng ta có hai output là true và false. Mỗi item đi theo một đường duy nhất tùy thuộc vào điều kiện.
- Kéo nhiều output lines từ một node: Điều này có nghĩa mỗi item sẽ đi theo mọi đường đi và được nhân bản theo số lượng đường đi.
Ý Kiến Của Mình:
Rẽ nhánh là một kỹ thuật mình dùng rất nhiều khi làm việc với n8n. Cái hay là bạn có thể kết hợp cả hai kiểu branching trong cùng một workflow. Một trick hay là dùng kiểu thứ nhất (IF node) khi bạn muốn xử lý data theo các điều kiện, và dùng kiểu thứ hai khi bạn muốn thực hiện nhiều action song song với cùng một dataset. Hiểu rõ sự khác biệt này sẽ giúp workflow của bạn tiết kiệm tài nguyên hơn đấy!
Thực Hành: Xây Dựng Workflow Với Google Sheets
Bây giờ chúng ta sẽ áp dụng các khái niệm đã học để tiếp tục xây dựng workflow đầu tiên với Google Sheets.
Điểm Chính:
- Sử dụng Schedule Trigger để chạy workflow tự động mỗi ngày
- Kích hoạt (activate) workflow để đưa vào production
- Sử dụng Filter node để loại bỏ contacts không có email
- Sử dụng IF node để phân loại email công việc và cá nhân
- Demo cả hai kiểu rẽ nhánh workflow
Để workflow chạy tự động (chẳng hạn như mỗi sáng lúc 8 giờ), chúng ta có thể sử dụng Schedule Trigger và thiết lập khoảng thời gian trigger. Trong trường hợp này, chúng ta muốn trigger mỗi ngày vào lúc 8 giờ sáng.
Lưu ý quan trọng: Để trigger thực sự hoạt động theo lịch đã định, bạn phải đảm bảo workflow được kích hoạt (activated). Khi kích hoạt workflow, bạn sẽ nhận được thông báo xác nhận “Your schedule trigger will now trigger executions on the schedule you have defined”.
// Ví dụ về cấu trúc dữ liệu Google Sheets
[
{
"first_name": "John",
"last_name": "Doe",
"email": "john@company.com",
"company": "ABC Corp"
},
{
"first_name": "Jane",
"last_name": "Smith",
"email": "jane@gmail.com",
"company": "XYZ Inc"
},
{
"first_name": "Mike",
"last_name": "Johnson",
"email": "",
"company": "123 LLC"
}
]
Trong ví dụ thực tế, chúng ta có một danh sách contacts với first name, last name, email và company. Mục tiêu là lọc những người không có email và sau đó phân loại email công việc và cá nhân.
Đầu tiên, sử dụng Filter node để loại bỏ các contact không có email. Điều kiện lọc sẽ là “email is not equal to empty string” (chứ không phải “exists” vì ngay cả email rỗng cũng tồn tại như một giá trị rỗng).
Tiếp theo, chúng ta thêm một IF node để phân loại email. Điều kiện sẽ là email không chứa “@gmail” VÀ không chứa “@hotmail” để xác định email công việc chuyên nghiệp. Chúng ta sử dụng điều kiện AND vì muốn loại trừ cả hai loại email cá nhân.
Kết quả là chúng ta có hai nhánh workflow: một nhánh cho email công việc chuyên nghiệp và một nhánh cho email cá nhân. Mỗi item chỉ đi theo một nhánh duy nhất.
Ý Kiến Của Mình:
Khi làm việc với điều kiện lọc trong n8n, mình thường test từng bước để đảm bảo logic hoạt động đúng. Một điều thú vị là việc phân biệt email cá nhân và công việc có thể phức tạp hơn trong thực tế (có nhiều domain email cá nhân hơn). Mình thường tạo một danh sách đầy đủ các domain email phổ biến để lọc chính xác hơn. Và đừng quên kích hoạt workflow sau khi đã test kỹ nhé – không ai muốn một workflow lỗi chạy tự động hàng ngày đâu!