Hướng dẫnn8n15 phút đọc

n8n Error Handling: Xử Lý Lỗi Workflow Như Chuyên Gia

Workflow chạy tốt trong môi trường test — rồi crash lúc 2 giờ sáng khi có đơn hàng quan trọng. API third-party timeout, data format sai, rate limit vượt ngưỡng. Đây là hướng dẫn xây dựng hệ thống 3 lớp xử lý lỗi để workflow của bạn production-ready thực sự.

3
loại error node trong n8n
Try/Catch, Error Trigger, Stop & Error
3-5 lần
số lần retry khuyến nghị
với exponential backoff
99.9%
uptime có thể đạt được
với error handling đúng cách
0 phút
downtime không phát hiện
khi có Error Trigger monitoring

Tại Sao Workflow "Hoàn Hảo" Lại Bị Lỗi?

Trong môi trường development, workflow chạy với dữ liệu sạch, API phản hồi nhanh, không ai dùng hệ thống cùng lúc. Production khác hoàn toàn.

1
API third-party timeout hoặc down

Shopee API có SLA 99.5% — nghĩa là có thể down 43 giờ/năm. Zalo OA API rate limit 1000 requests/phút. Khi vượt ngưỡng, toàn bộ workflow fail.

2
Dữ liệu không đúng format

Khách nhập số điện thoại "0912 345 678" thay vì "0912345678". Ngày tháng "15-04" thay vì "2026-04-15". Workflow không xử lý edge case sẽ crash.

3
Null và undefined values

Field không bắt buộc bị bỏ trống. Webhook payload thiếu field. Response API thay đổi format. Tất cả dẫn đến null reference error.

4
Race condition và concurrent execution

Hai workflow chạy cùng lúc cùng xử lý một record trong Sheet — conflict và ghi đè lẫn nhau.

⚠️Workflow không có error handling = quả bom hẹn giờ
Không phải “nếu” workflow lỗi — mà là “khi nào”. Câu hỏi là bạn có biết và xử lý được không.

3 Loại Error Node Trong n8n

1. Retry On Fail

Cài đặt đơn giản nhất: khi node fail, thử lại tự động. Không cần thêm node mới. Chỉ cần vào node settings → “Retry On Fail”.

Phù hợp cho: API call có thể bị lỗi tạm thời (timeout, rate limit, network glitch). Không phù hợp cho lỗi logic (data sai format — retry 100 lần vẫn fail).

2. Try/Catch (Error Output)

Mỗi node trong n8n có output bình thường và output lỗi. Kết nối “error output” vào một nhánh xử lý lỗi — workflow tiếp tục thay vì dừng lại.

Phù hợp cho: xử lý lỗi inline, tiếp tục workflow theo nhánh dự phòng, gửi dữ liệu sang hàng đợi để xử lý sau.

3. Error Trigger Workflow

Một workflow riêng biệt chỉ chạy khi workflow khác fail. Nhận thông tin đầy đủ về lỗi: tên workflow, tên node, error message, timestamp, input data.

Phù hợp cho: monitoring tập trung, alert Telegram/Slack, logging vào Sheet.

Phương phápKhi nào dùngƯu điểmNhược điểm
Retry On FailAPI lỗi tạm thờiĐơn giản, built-inKhông xử lý được lỗi logic
Error OutputCần fallback inlineWorkflow tiếp tục chạyPhức tạp hơn, nhiều nhánh
Error TriggerMonitoring tập trungBắt tất cả lỗi mọi workflowCần setup thêm workflow riêng
Stop & Error nodeCần dừng có kiểm soátRõ ràng, có message customWorkflow dừng hoàn toàn

Retry và Exponential Backoff

Retry đơn giản (retry mỗi 1 giây) có thể làm nghiêm trọng hơn vấn đề rate limit. Exponential backoff là giải pháp: mỗi lần retry, đợi lâu hơn lần trước theo cấp số nhân.

n8n Expression — Exponential Backoff
// n8n Expression để tính exponential backoff delay
// Trong node Settings > Retry on Fail > Wait Between Retries
// Lần 1: 1 giây
// Lần 2: 2 giây
// Lần 3: 4 giây
// Lần 4: 8 giây
// Lần 5: 16 giây
{{ Math.pow(2, $runIndex) * 1000 }}
1
Bật Retry On Fail trong node settings

Click node → Settings (tab) → Toggle 'Retry On Fail' → Set max tries: 3-5

2
Set Wait Between Retries

Dùng expression {{ Math.pow(2, $runIndex) * 1000 }} để có delay 1s, 2s, 4s, 8s...

3
Kết nối Error Output cho fallback

Kéo từ dấu X đỏ của node → kết nối vào Set node ghi log lỗi

4
Test với network error giả lập

Dùng HTTP Request node với URL sai để test retry hoạt động đúng

💡Mẹo hay
Rule of thumb: API external → retry 3 lần với exponential backoff. Database/Sheet internal → retry 5 lần vì network local nhanh hơn. Logic error (validation fail) → không retry, xử lý ngay.

Error Trigger Workflow — Monitoring Tập Trung

Error Trigger là workflow đặc biệt: thay vì có trigger thông thường (webhook, schedule), nó được kích hoạt tự động mỗi khi một workflow khác trong n8n instance bị lỗi.

💥
Workflow A fail
Bất kỳ workflow nào
Error Trigger
Tự động kích hoạt
📊
Log vào Sheet
Timestamp + details
📱
Alert Telegram
Thông báo ngay
🔍
Link debug
URL đến execution
1
Tạo workflow mới, chọn Error Trigger làm trigger node

Trong n8n → New Workflow → Add node → tìm 'Error Trigger'. Workflow này sẽ nhận data từ mọi workflow fail.

2
Cấu hình trong Settings → Workflows → Error Workflow

Vào Settings của n8n instance → chỉ định Error Trigger workflow. Chỉ cần làm một lần cho toàn bộ instance.

3
Thêm Telegram node để nhận alert ngay lập tức

Format message bao gồm: tên workflow, error message, tên node, timestamp, link đến execution để debug.

4
Thêm Google Sheets node để log dài hạn

Append vào Sheet theo dõi lỗi: ngày, workflow, node, message, trạng thái xử lý.

Error Trigger — Format Telegram Alert
// Expression trong Error Trigger để format thông báo lỗi
// Dùng trong Telegram/Slack notification node
Workflow lỗi: {{ $json.workflow.name }}
Error: {{ $json.execution.error.message }}
Node: {{ $json.execution.error.node.name }}
Thời gian: {{ DateTime.now().setZone('Asia/Ho_Chi_Minh').toFormat('dd/MM HH:mm') }}
Link: https://your-n8n.com/workflow/{{ $json.workflow.id }}
Không có Error Trigger
  • Workflow fail lúc 2:00 sáng
  • Không ai biết cho đến sáng hôm sau
  • Đơn hàng bị miss, khách hàng phàn nàn
  • Debug mất 2-3 giờ vì không có log
  • Không biết lỗi xảy ra bao nhiêu lần
Có Error Trigger
  • Workflow fail lúc 2:00 sáng
  • Telegram alert đến trong 10 giây
  • Link debug trực tiếp đến execution
  • Log đầy đủ trong Google Sheet
  • SLA: phát hiện và xử lý trong 30 phút

Logging Lỗi Vào Google Sheet

Telegram alert cho real-time awareness. Google Sheet cho historical analysis và pattern recognition. Kết hợp cả hai cho error handling toàn diện.

Google Sheets — Error Log Data
// Data để log vào Google Sheet
// Dùng trong Google Sheets node sau khi bắt error
[
{
"timestamp": "{{ DateTime.now().setZone('Asia/Ho_Chi_Minh').toISO() }}",
"workflow_name": "{{ $workflow.name }}",
"node_name": "{{ $node.name }}",
"error_message": "{{ $json.error.message }}",
"input_data": "{{ JSON.stringify($input.first().json).slice(0, 500) }}",
"status": "failed"
}
]
1
Tạo Sheet với columns chuẩn

Timestamp | Workflow | Node | Error Message | Input Data | Status | Resolved By | Resolved At

2
Append row mỗi khi có error

Dùng Google Sheets node → Append Row. Truncate input_data nếu quá dài (500 chars) để tránh quota.

3
Thêm cột Status để track xử lý

Default: 'failed'. Sau khi fix: update thành 'resolved'. Dễ dàng filter lỗi chưa xử lý.

4
Tạo filter view cho từng loại lỗi

Filter theo workflow, ngày, loại lỗi. Google Sheets free tier đủ cho hầu hết SME.

Hệ Thống 3 Lớp Xử Lý Lỗi — Production-Ready

Đây là architecture đầy đủ cho workflow chạy production:

1
Lớp 1: Phòng ngừa (Prevention)

Validate input data trước khi xử lý. Kiểm tra null/undefined. Format chuẩn hóa số điện thoại, ngày tháng. Lỗi này không cần retry — xử lý ngay.

2
Lớp 2: Phục hồi (Recovery)

Retry với exponential backoff cho API lỗi tạm thời. Error Output node cho fallback logic. Queue để xử lý sau nếu cần.

3
Lớp 3: Visibility (Observability)

Error Trigger workflow → Telegram alert + Google Sheet log. Dashboard theo dõi error rate theo thời gian. Weekly review để tìm pattern.

🛡️
Lớp 1: Validate
Phòng ngừa lỗi data
🔄
Lớp 2: Retry
Phục hồi lỗi tạm thời
👁️
Lớp 3: Monitor
Alert + Log mọi lỗi
📊
Review tuần
Cải thiện liên tục
99.9% uptime
Production-ready

Câu Hỏi Thường Gặp

Try/Catch: khi bạn muốn bắt lỗi trong một node cụ thể và xử lý inline (tiếp tục workflow theo nhánh khác). Error Trigger: khi bạn muốn một workflow riêng biệt chạy khi BẤT KỲ workflow nào khác bị lỗi — tốt cho monitoring tập trung.

Retry On Fail là thử lại cùng node đó sau khoảng thời gian nhất định (1-5 lần). Nếu vẫn thất bại sau hết retry thì workflow mới throw error. Error Trigger chỉ chạy khi workflow đã thực sự fail (hết retry). Nên dùng cả hai cùng nhau.

Mặc định n8n lưu execution log không giới hạn (cho đến khi hết disk). Nên set giới hạn trong Settings → Executions → Prune execution data. Khuyến nghị: 30 ngày cho workflow bình thường, 7 ngày cho workflow có dữ liệu nhạy cảm.

Nguyên nhân phổ biến: (1) Error Trigger workflow chưa được active, (2) Error Trigger workflow cũng đang bị lỗi (vòng lặp lỗi), (3) Webhook URL trong Error Trigger không đúng, (4) n8n chưa được cấu hình Error Workflow trong Settings.

Có. Trong n8n, thêm một node Set với giá trị không hợp lệ, hoặc dùng HTTP Request node với URL sai, rồi chạy thủ công. Hoặc dùng n8n CLI: n8n execute --id [workflow-id] để trigger và quan sát Error Trigger workflow nhận event.

Production-Ready Checklist

1
Tất cả API node có Retry On Fail bật

Ít nhất 3 lần retry, tốt nhất dùng exponential backoff expression.

2
Error Output được kết nối và xử lý

Không để node có error output treo lơ lửng không kết nối — đây là lỗi thầm lặng.

3
Error Trigger workflow đang active

Kiểm tra Settings → đã set Error Workflow chưa. Test bằng cách tạo lỗi thủ công.

4
Google Sheet log đang nhận data

Check Sheet sau khi test error — dữ liệu có vào đúng không.

5
Telegram/Slack alert được nhận trong < 30 giây

Test end-to-end: tạo lỗi → nhận thông báo. Đo thời gian phản hồi.

6
Input validation cho tất cả webhook

Kiểm tra required fields, format, size limits trước khi xử lý.

ℹ️Cần review workflow hiện tại của bạn?

Đặt lịch workflow audit miễn phí — mình sẽ review error handling của các workflow hiện tại và chỉ ra điểm yếu cần fix trước.

Đặt lịch audit miễn phí →
Chia sẻ
Cập nhật: 1 tháng 4, 2026

Sẵn sàng tự động hóa?

Đặt lịch audit miễn phí 30 phút — mình sẽ phân tích quy trình của bạn và đưa ra lộ trình cụ thể. Hoặc làm quiz 2 phút để biết mức độ sẵn sàng.