Chia sẻ bởi Nate Herk | AI Automation
n8n là một công cụ tự động hóa quy trình làm việc mã nguồn mở mạnh mẽ, cho phép bạn kết nối các ứng dụng và dịch vụ khác nhau để tạo ra các luồng công việc tự động mà không cần viết quá nhiều code. Tuy nhiên, để thực sự khai thác hết tiềm năng của n8n và nâng cao năng suất, việc nắm vững các mẹo và thủ thuật nhỏ là vô cùng quan trọng. Bài viết này sẽ chia sẻ 25 mẹo n8n hữu ích, từ những thao tác cơ bản giúp tiết kiệm thời gian đến các kỹ thuật nâng cao giúp bạn xây dựng workflow phức tạp một cách hiệu quả hơn. Hãy cùng khám phá nhé!
Những thao tác n8n cơ bản giúp tăng tốc workflow
Bắt đầu với những thao tác đơn giản nhưng cực kỳ hiệu quả, giúp bạn làm quen và tăng tốc độ làm việc với n8n.
1. Chuyển nhanh sang expression bằng dấu "="
Thông thường, để chuyển một giá trị cố định (fixed value) thành một biểu thức (expression) trong một node, bạn cần click vào tùy chọn "Expression". Tuy nhiên, có một mẹo n8n nhanh hơn: chỉ cần chọn trường đó và nhấn phím =
trên bàn phím, n8n sẽ tự động chuyển sang chế độ nhập biểu thức. Thao tác nhỏ này giúp bạn tiết kiệm được vài cú click chuột mỗi lần thiết lập.
2. Di chuyển linh hoạt giữa các node
Khi đang cấu hình một node và muốn chuyển sang node khác, bạn không nhất thiết phải thoát ra và click vào node mới.
- Dùng chuột: Di chuột đến cạnh phải hoặc cạnh trái của bảng cấu hình node, bạn sẽ thấy các mũi tên cho phép chuyển qua lại giữa các node liền kề.
- Dùng phím: Ở giao diện chính của workflow, bạn có thể dùng các phím mũi tên (lên, xuống, trái, phải) để chọn các node. Nhấn
Enter
để mở cấu hình node đang được chọn.
3. Vô hiệu hóa node tức thời với phím "D"
Trong quá trình gỡ lỗi hoặc kiểm thử một phần của workflow, bạn có thể muốn tạm thời bỏ qua một số node. Thay vì xóa hẳn, bạn có thể vô hiệu hóa chúng.
- Cách thông thường: Click vào dấu ba chấm trên node và chọn "Deactivate".
- Mẹo n8n nhanh: Chọn node bạn muốn vô hiệu hóa và nhấn phím
D
. NhấnD
một lần nữa để kích hoạt lại. Điều này rất hữu ích khi bạn gặp thông báo lỗi yêu cầu "resolve outstanding issues" và muốn nhanh chóng bỏ qua node gây lỗi để kiểm tra phần còn lại.
4. Thêm node mới trong nháy mắt với phím "Tab"
Muốn thêm một node mới vào workflow? Đừng mất công tìm kiếm trong danh sách. Chỉ cần nhấn phím Tab
ở bất kỳ đâu trên canvas của workflow, một ô tìm kiếm node sẽ xuất hiện ngay lập tức, cho phép bạn gõ tên node và thêm vào nhanh chóng.
5. Ghim/bỏ ghim dữ liệu tiện lợi bằng phím "P"
Tính năng ghim dữ liệu (Pin data) rất hữu ích (sẽ nói chi tiết ở mục 6). Để thao tác nhanh hơn, sau khi chạy một node và có kết quả, bạn có thể chọn node đó và nhấn phím P
để ghim dữ liệu. Nhấn P
lần nữa để bỏ ghim.
Tổ chức và gỡ lỗi workflow n8n như chuyên gia
Một workflow được tổ chức tốt và dễ gỡ lỗi sẽ giúp bạn làm việc hiệu quả hơn rất nhiều. Dưới đây là các mẹo n8n giúp bạn làm điều đó.
6. Ghim dữ liệu (Pin data) - Tiết kiệm tài nguyên quý giá
Khi làm việc với các node gọi API tốn phí (ví dụ: API của OpenAI, Perplexity AI) hoặc các node mất nhiều thời gian để xử lý, việc chạy thử workflow nhiều lần có thể gây lãng phí. Tính năng "Pin data" cho phép bạn lưu lại kết quả đầu ra của một node.
Sau khi node thực thi và có dữ liệu, bạn có thể "ghim" nó lại. Những lần chạy workflow sau, node đó sẽ sử dụng dữ liệu đã ghim thay vì thực thi lại, giúp tiết kiệm chi phí API và thời gian chờ đợi, đặc biệt hữu ích trong giai đoạn phát triển và gỡ lỗi.
7. Sử dụng dữ liệu mẫu (Mock data) để kiểm thử hiệu quả
Tương tự như ghim dữ liệu, "Mock data" cho phép bạn tự định nghĩa dữ liệu đầu vào cho một node hoặc một trigger để kiểm thử phần còn lại của workflow mà không cần thực thi các bước trước đó.
Để thêm mock data, click vào biểu tượng bút chì ở góc trên của node (thường thấy ở trigger). Bạn có thể điền các trường và giá trị mẫu. Dữ liệu này sẽ được coi như "ghim" và sử dụng cho các lần chạy thử. Điều này đặc biệt hữu ích khi bạn làm việc với trigger "Execute Workflow" (subworkflow) và không muốn phải kích hoạt workflow chính mỗi lần kiểm thử subworkflow.
8. Sắp xếp workflow khoa học với ghi chú (Sticky notes) và đặt tên node
- Sticky Notes: Để workflow dễ hiểu hơn, đặc biệt là các workflow phức tạp, hãy sử dụng sticky notes. Nhấn
Shift + S
ở bất kỳ đâu trên canvas để tạo một ghi chú. Bạn có thể sử dụng Markdown để định dạng nội dung ghi chú (in đậm, tiêu đề H1, H2, H3) và thay đổi màu sắc của chúng để phân loại (ví dụ: node AI màu xanh, node xử lý dữ liệu màu lục). - Đặt tên Node: Mặc định, các node có tên chung chung. Hãy đặt tên cụ thể cho từng node để mô tả chức năng của nó. Click vào node và nhấn
F2
để đổi tên nhanh, hoặc click vào tên node ở phía trên bảng cấu hình.
9. Quay về quá khứ với tính năng lịch sử workflow (Workflow history)
Giống như Google Docs, n8n lưu lại các phiên bản khác nhau của workflow. Nếu bạn lỡ tay làm hỏng thứ gì đó hoặc muốn quay lại một phiên bản cũ hơn, hãy click vào biểu tượng đồng hồ có mũi tên quay ngược ("Versions") ở thanh công cụ trên cùng. Bạn có thể xem lại, tải xuống, sao chép (clone) hoặc khôi phục một phiên bản workflow trước đó.
10. Tận dụng biến workflow (Workflow variables) để lấy thông tin ngữ cảnh
n8n cung cấp các biến hệ thống chứa thông tin về workflow và lần thực thi hiện tại. Bạn có thể truy cập các biến này trong expression, ví dụ:
$workflow.id
: ID của workflow.$workflow.name
: Tên của workflow.$workflow.active
: Trạng thái kích hoạt (true/false).$execution.id
: ID của lần thực thi hiện tại.$now
: Thời gian hiện tại (sẽ nói kỹ hơn ở mục 12).$today
: Ngày hiện tại.
Để xem các biến này, bạn có thể thêm một node Set và trong phần Variables and Context, bạn sẽ thấy danh sách các biến có sẵn.
Tối ưu hóa dữ liệu và các tích hợp trong n8n
Các mẹo n8n sau đây sẽ giúp bạn xử lý dữ liệu và làm việc với các tích hợp một cách mượt mà hơn.
11. Gỡ bỏ thông báo "Sent by n8n" (n8n attributions) một cách dễ dàng
Khi sử dụng các node gửi thông báo như Email, Telegram, Slack, n8n thường tự động đính kèm một dòng chữ kiểu "This message was sent by n8n". Để loại bỏ thông báo này:
- Email, Telegram: Trong cấu hình node, tìm mục "Options" (hoặc tương tự), sau đó tìm tùy chọn "Append n8n Attribution" (hoặc "Send n8n Attribution") và tắt nó đi.
- Slack: Tùy chọn này có thể tên là "Include Link to Workflow". Hãy tắt nó.
Mỗi tích hợp có thể có thuật ngữ hơi khác nhau, nhưng hầu hết đều cho phép bạn tắt attribution này.
12. Lấy ngày giờ hiện tại cho mọi tác vụ ({{$now}}
)
Nếu bạn cần sử dụng ngày giờ hiện tại trong workflow (ví dụ: làm timestamp, cung cấp cho AI agent), hãy sử dụng biểu thức {{$now}}
.
n8n sẽ tự động trả về đối tượng ngày giờ hiện tại. Bạn cũng có thể định dạng nó bằng cách sử dụng hàm .format()
.
Ví dụ: {{$now.format("YYYY-MM-DD HH:mm:ss")}}
để có định dạng 2023-10-27 14:30:00
.
13. Bảo mật và tái sử dụng thông tin đăng nhập API (Save credentials)
Khi làm việc với các node HTTP Request để gọi API, thay vì dán API key trực tiếp vào header hoặc URL mỗi lần, bạn nên lưu trữ chúng một cách an toàn.
Trong node HTTP Request, chọn tab "Authentication". Chọn "Generic Credential" và sau đó chọn loại (ví dụ: "Header Auth"). Bạn có thể tạo một credential mới, đặt tên (ví dụ: "Perplexity API Key"), điền tên header (thường là Authorization
) và giá trị (ví dụ: Bearer YOUR_API_KEY
).
Lợi ích:
- Bảo mật: API key không bị lộ trực tiếp trong workflow, đặc biệt quan trọng khi chia sẻ template.
- Tiện lợi: Chỉ cần chọn credential đã lưu cho những lần sử dụng sau.
Bonus hack: Khi xem workflow, bạn có thể nhấn phím1
để thu nhỏ (zoom out) và phím0
để phóng to về kích thước mặc định (zoom back in).
14. Xây dựng workflow xử lý lỗi chuyên dụng (Error workflows)
n8n có một trigger đặc biệt tên là "Error Trigger". Bạn có thể liên kết trigger này với bất kỳ workflow nào đang hoạt động. Khi workflow được liên kết đó gặp lỗi, "Error Trigger" sẽ được kích hoạt, cho phép bạn xây dựng một quy trình riêng để xử lý lỗi, ví dụ: gửi thông báo qua email, Slack, SMS cho bạn biết có sự cố.
15. Chỉ định đầu vào cụ thể cho sub-workflow (Specify inputs for subworkflows)
Khi một workflow (workflow chính) gọi một sub-workflow (workflow con) thông qua node "Execute Workflow", bạn có thể kiểm soát dữ liệu nào được truyền sang.
Trong trigger của sub-workflow (thường là "Execute Workflow Trigger"), thay vì chọn "Accept all data", bạn có thể chọn "Define using fields below". Sau đó, bạn định nghĩa các trường cụ thể mà sub-workflow này mong đợi (ví dụ: phoneNumber
, email
, customerName
). Điều này giúp sub-workflow nhận đúng dữ liệu cần thiết và dễ dàng map các biến hơn.
Làm chủ AI agent và sub-workflow trong n8n hiệu quả
AI Agent và sub-workflow là những tính năng mạnh mẽ. Các mẹo n8n sau sẽ giúp bạn làm việc với chúng tốt hơn.
16. Xem chi tiết dữ liệu thực thi của sub-workflow (View sub-execution data)
Khi workflow chính gọi một sub-workflow, đôi khi bạn cần xem chính xác sub-workflow đó đã chạy như thế nào. Sau khi workflow chính thực thi node gọi sub-workflow, click vào node đó. Trong kết quả đầu ra, bạn sẽ thấy một tùy chọn như "View Sub-Execution". Click vào đó sẽ mở ra chi tiết lần thực thi của sub-workflow, giúp bạn kiểm tra các bước và dữ liệu.
17. Đọc vị AI agent qua nhật ký hoạt động (Agent logs)
Khi sử dụng node AI Agent, việc hiểu được "suy nghĩ" và hành động của agent là rất quan trọng để gỡ lỗi. Sau khi agent chạy, bạn có thể vào tab "Agent Logs" (Nhật ký Agent) trong kết quả của node đó. Log này sẽ cho bạn biết:
- Agent đã đọc system prompt như thế nào (nếu có).
- Agent đã quyết định gọi tool nào.
- Dữ liệu nào được gửi đến tool.
- Kết quả tool trả về.
- Phản hồi cuối cùng của agent.
Đây là một công cụ gỡ lỗi vô giá cho các ứng dụng AI.
18. Sao chép dữ liệu sub-execution vào trình chỉnh sửa để gỡ lỗi
Khi bạn đang xem dữ liệu thực thi của một sub-workflow (như ở mẹo 16), nếu phát hiện ra vấn đề hoặc muốn dùng chính dữ liệu đó để tinh chỉnh sub-workflow, bạn có thể click vào nút "Copy to Editor". Thao tác này sẽ lấy toàn bộ dữ liệu đầu vào của lần thực thi đó và đưa vào trình chỉnh sửa của sub-workflow dưới dạng "mock data" (được ghim lại). Giờ đây bạn có thể dễ dàng điều chỉnh mapping, biểu thức trong sub-workflow với dữ liệu thực tế.
19. Yêu cầu AI agent trả về output có cấu trúc (Structured outputs)
Đôi khi bạn muốn AI agent trả về kết quả theo một định dạng JSON cụ thể thay vì văn bản tự do. n8n cho phép bạn làm điều này.
Trong node AI Agent, bật tùy chọn "Require Specific Output". Một cổng mới "Structured Output Parser" sẽ xuất hiện. Bạn cần cung cấp một ví dụ về cấu trúc JSON mong muốn cho parser này (có thể yêu cầu ChatGPT tạo giúp ví dụ JSON). Khi agent chạy, nó sẽ cố gắng trả về output theo đúng cấu trúc bạn đã định nghĩa, giúp việc xử lý dữ liệu ở các bước sau dễ dàng hơn.
Các kỹ thuật n8n nâng cao và tùy chỉnh mạnh mẽ
Cuối cùng, hãy cùng khám phá một số mẹo n8n nâng cao hơn để tùy chỉnh workflow của bạn.
20. Đưa yếu tố con người vào quy trình với human in the loop node
Có những quy trình tự động cần sự can thiệp hoặc phê duyệt của con người ở một số bước. Node "Human in the Loop" cho phép bạn làm điều đó.
Node này có thể gửi yêu cầu (ví dụ: qua Slack, Email, Discord) và chờ phản hồi từ người dùng trước khi tiếp tục workflow. Các loại tương tác bao gồm:
- Approval: Nút Yes/No hoặc Approve/Disapprove.
- Custom Form: Gửi một form với các trường để người dùng điền.
- Free Text: Cho phép người dùng nhập văn bản tự do.
21. Chuẩn hóa đầu vào (Standardize inputs) từ nhiều nguồn khác nhau
Nếu AI agent của bạn nhận đầu vào từ nhiều nguồn khác nhau (ví dụ: Telegram, n8n Chat, Webhook), tên trường dữ liệu có thể khác nhau (ví dụ: message.text
từ Telegram, chatInput
từ n8n Chat). Điều này khiến agent khó xử lý.
Mẹo n8n là sử dụng một node "Set" trước node AI Agent để chuẩn hóa đầu vào. Node Set này sẽ lấy dữ liệu từ các trường khác nhau và map chúng vào một trường duy nhất mà agent mong đợi (ví dụ: userInput
). Như vậy, agent chỉ cần quan tâm đến một trường đầu vào chuẩn.
22. Giữ workflow hoạt động trơn tru với tùy chọn "Continue on error"
Mặc định, nếu một node gặp lỗi khi xử lý một item, toàn bộ workflow có thể dừng lại. Điều này không lý tưởng, đặc biệt khi bạn xử lý một danh sách lớn các item.
Trong tab "Settings" của hầu hết các node, bạn sẽ tìm thấy tùy chọn liên quan đến xử lý lỗi:
- Stop Workflow (Mặc định): Dừng toàn bộ workflow khi có lỗi.
- Continue (on Error): Nếu một item gây lỗi, workflow sẽ bỏ qua item đó và tiếp tục xử lý các item còn lại.
- Continue (using Error Output): Tương tự như trên, nhưng các item gây lỗi sẽ được chuyển qua một cổng đầu ra riêng (error output). Bạn có thể nối cổng này với các node khác để xử lý lỗi riêng (ví dụ: ghi log, gửi thông báo).
Điều này đảm bảo rằng một lỗi nhỏ không làm hỏng toàn bộ quá trình tự động hóa của bạn.
23. Khám phá các cài đặt node nâng cao (Other node settings)
Ngoài xử lý lỗi, tab "Settings" của mỗi node còn chứa nhiều tùy chọn hữu ích khác, tùy thuộc vào loại node:
- HTTP Request:
Use SSL Certificate Verification
: Bật/tắt kiểm tra chứng chỉ SSL.Always Output Data
: Đảm bảo node luôn có output, ngay cả khi không có dữ liệu thực tế, để các bước sau vẫn chạy.Execute Once
: Nếu node nhận nhiều item đầu vào, nó chỉ thực thi cho item đầu tiên.
- Retry on Fail: Cho phép node tự động thử lại nếu thất bại, bạn có thể chỉ định số lần thử và khoảng thời gian chờ giữa các lần thử.
- Duplicate Item Handling (trong một số node): Cách xử lý khi có item trùng lặp.
- Notes: Thêm ghi chú riêng cho node, không ảnh hưởng đến chức năng nhưng hữu ích cho việc tài liệu hóa hoặc làm việc nhóm.
Hãy dành thời gian khám phá tab "Settings" của các node bạn thường dùng.
24. Xử lý và định dạng mảng (array) với hàm .join()
Khi bạn có một mảng dữ liệu (ví dụ: danh sách các tag, tên sản phẩm) và muốn chuyển nó thành một chuỗi văn bản duy nhất, hàm .join()
trong expression là cứu cánh.
Ví dụ: Nếu bạn có mảng ["táo", "chuối", "cam"]
:
{{$json.myArray.join(", ")}}
sẽ cho ra:"táo, chuối, cam"
{{$json.myArray.join("\n")}}
sẽ cho ra các mục trên từng dòng mới.
Bạn có thể tùy chỉnh ký tự phân tách bên trong dấu ngoặc của hàm join()
.
25. Thay thế nội dung chuỗi (string) linh hoạt với hàm .replace()
Hàm .replace()
cho phép bạn tìm kiếm và thay thế một phần của chuỗi bằng một chuỗi khác. Đây là một mẹo n8n rất hữu ích để làm sạch hoặc chuẩn hóa dữ liệu.
Ví dụ phổ biến là loại bỏ dấu ngoặc kép không mong muốn trong một chuỗi JSON:
{{$json.query.replace('"', '')}}
sẽ loại bỏ tất cả dấu ngoặc kép.{{$json.text.replace("old_value", "new_value")}}
sẽ thay thế "old_value" bằng "new_value".
Hàm này hỗ trợ cả biểu thức chính quy (regex) để thực hiện các thao tác thay thế phức tạp hơn.
Kết luận
Với 25 mẹo n8n vừa được chia sẻ, hy vọng bạn đã có thêm những công cụ và kiến thức hữu ích để tối ưu hóa quy trình tự động hóa của mình. Việc áp dụng những thủ thuật này không chỉ giúp bạn tiết kiệm thời gian, công sức mà còn mở ra nhiều khả năng mới trong việc xây dựng các workflow phức tạp và hiệu quả hơn. Đừng ngần ngại thử nghiệm các mẹo này trong các dự án n8n của bạn và cảm nhận sự khác biệt mà chúng mang lại. Chúc bạn thành công trên hành trình tự động hóa!