Giới thiệu
n8n (phát âm "n-eight-n" hoặc đơn giản là "nodemation") là một công cụ tự động hóa quy trình làm việc nguồn mở cho phép kết nối các dịch vụ và API khác nhau với nhau bằng một trình chỉnh sửa trực quan dựa trên nút. Thay vì viết mã gắn cứng, bạn kéo các nút lên canvas, cấu hình chúng và vẽ kết nối để xác định luồng dữ liệu từ bước này sang bước tiếp theo.
n8n khác biệt với các công cụ như Zapier hay Make ở một điểm lớn: nó có sẵn nguồn và có thể tự lưu trữ. Bạn có thể chạy nó trên máy chủ của riêng bạn, có nghĩa là dữ liệu của bạn sẽ không rời khỏi cơ sở hạ tầng của bạn và không có mức giá theo tác vụ. Giao dịch là bạn chịu trách nhiệm tự lưu trữ và quản trị nó, mặc dù n8n cũng cung cấp một tùy chọn đám mây được lưu trữ nếu bạn thích không quản lý hạ tầng.
Bên trong, mọi luồng công việc của n8n về cơ bản chỉ là JSON. Trình chỉnh sửa trực quan là một lớp thân thiện ở trên JSON đó, và đó là lý do tại sao n8n rất thân thiện với các nhà phát triển muốn xem bên dưới.
Điều hướng Trình chỉnh sửa trực quan
Khi bạn mở n8n, các khu vực chính bạn sẽ tương tác là:
- Canvas ở giữa, nơi bạn xây dựng luồng công việc bằng cách thêm và kết nối các nút. - Thanh bên trái với bảng công cụ nút, được tổ chức thành các danh mục như nút kích hoạt (trigger), nút ứng dụng hành động thông thường, và các nút trợ giúp (như Code, IF, Set, Merge). - Thanh công cụ trên cùng với các tùy chọn để lưu, chạy, kích hoạt và chia sẻ luồng công việc. - Bảng nút ở phía bên phải mở ra khi bạn nhấp vào một nút, nơi bạn cấu hình các tham số và thông tin xác thực của nó.
Một luồng công việc luôn bắt đầu với một nút kích hoạt — thứ kích hoạt quá trình thực thi khi một sự kiện xảy ra (ví dụ một webhook nhận một yêu cầu HTTP, một lịch trình kích hoạt vào một thời điểm cron, hoặc một hàng mới xuất hiện trong một cơ sở dữ liệu).
Sau bất kỳ lệnh nào, mở http://localhost:5678 trong trình duyệt của bạn và bạn sẽ thấy trình chỉnh sửa.
Cấu trúc của một Node
Mỗi node đại diện cho một hành động duy nhất: lấy dữ liệu, biến đổi dữ liệu, gọi một API, phân nhánh theo điều kiện, và còn nhiều thứ nữa. Hầu hết các node có ba tab:
- Parameters: các inputs bạn cấu hình (URL, chuỗi truy vấn, ánh xạ trường). - Settings: các tùy chọn ở cấp node như hành vi retry, xử lý lỗi và liệu có tiếp tục khi gặp lỗi hay không. - Documentation: một tham chiếu ngắn trích từ tài liệu của node để bạn không cần rời khỏi canvas.
Dữ liệu luân chuyển giữa các node thông qua sợi dây bạn vẽ. Theo mặc định, đây là output chính và hình dạng dữ liệu được tạo ra là cùng một đối tượng JSON bạn sẽ nhận được nếu bạn gọi trực tiếp API underlying. Bạn có thể đổi tên một node, thêm chú thích cho nó và vô hiệu hóa nó mà không xóa nó, điều này rất hữu ích khi gỡ lỗi một workflow.
Đoạn mã ở trên là JSON cho một node Webhook trigger duy nhất được xuất từ n8n. Hãy lưu ý mức độ dễ đọc của nó — phương thức HTTP, đường dẫn, và vị trí của node trên canvas đều là các thuộc tính JSON thuần túy. Điều này cho phép các workflow được kiểm soát phiên bản và được tạo ra bằng chương trình.
Executions Panel and Debugging
Một khi workflow của bạn được lưu, nhấp vào "Execute workflow" (hoặc "Execute node" trên một node đơn) để chạy nó. n8n ghi lại mỗi lần chạy trong panel Executions. Nhấp vào một lần chạy đã có để xem xét dữ liệu đầu vào và đầu ra ở từng bước của mỗi node, đây là cách nhanh nhất để gỡ lỗi một workflow bị lỗi.
Nếu một node gặp lỗi, quá trình thực thi được đánh dấu là "error" và panel cho bạn biết node nào đã ném lỗi, thông điệp lỗi là gì và dữ liệu mà node đó đã nhận được. Một sai lầm sớm phổ biến là cho rằng dữ liệu tồn tại ở một node khi nó không — hãy luôn mở mục thực thi và xem JSON thực tế ở từng bước trước khi cho rằng.
Hai panel khác cần biết: tab Credentials (nơi bạn lưu API keys một lần và tham chiếu chúng trong nhiều node) và tab Variables (để lưu trữ các giá trị có thể tái sử dụng như URL hoặc tên môi trường mà không cần gán cứng vào từng node).
Tóm tắt
n8n cung cấp cho bạn một trình chỉnh sửa trực quan để xây dựng luồng dữ liệu kết nối các API, cơ sở dữ liệu và logic tùy chỉnh, mà không từ bỏ khả năng nhúng vào mã, quản lý phiên bản JSON, hoặc tự-host. Các khu vực chính để làm quen là khung vẽ (canvas), bảng chọn node, bảng cấu hình per-node, và bảng Thực thi được dùng để gỡ lỗi. Mọi workflow bắt đầu với một node kích hoạt, và dữ liệu của mỗi node là JSON thuần túy mà bạn có thể inspect tại bất kỳ thời điểm nào trong quá trình chạy.
Bài kiểm tra cuối bài