Xử lý lỗi trong n8n: Retry, Error Workflow và cảnh báo

Featured Image 1200×628@2x

Sáng thứ Hai, sếp hỏi: “Sao tuần này không thấy email báo cáo?”. Mở n8n ra mới biết workflow đã lỗi từ 8 giờ 30 vì Google Sheets trả về lỗi quá tải, và không ai được báo. Tự động hóa chỉ đáng tin khi nó biết tự thử lại với lỗi tạm thời và lên tiếng ngay khi thật sự hỏng. Bài viết này hướng dẫn xử lý lỗi n8n theo ba lớp: Retry On Fail, thiết lập On Error và Error Workflow gửi cảnh báo qua Telegram, kèm code mẫu đã chạy thử.

🩺 MỤC TIÊU SAU BÀI VIẾT

✅ Chạy tốt🔁 Lỗi tạm thời → tự thử lại🚨 Hỏng thật → báo Telegram ngay

Vì sao workflow chạy hỏng?

Không phải lỗi nào cũng giống nhau, và mỗi loại cần một cách xử lý khác. Phân loại đúng là bước đầu tiên:

⏳Lỗi tạm thời

Ví dụ: API hết thời gian chờ, lỗi 429 do gọi quá nhiều, máy chủ báo 503

Xử lý: Retry On Fail: đợi vài giây rồi thử lại

🔑Lỗi kết nối, xác thực

Ví dụ: Token Google hết hạn, mật khẩu ứng dụng bị đổi, sai quyền truy cập file

Xử lý: Báo ngay để người phụ trách cập nhật credential

▦Lỗi dữ liệu

Ví dụ: Thiếu cột, đổi tên sheet, ô trống, sai định dạng ngày

Xử lý: Báo lỗi kèm vị trí để sửa tận gốc, thử lại bao nhiêu lần cũng vẫn sai

🔇Lỗi logic “im lặng”

Ví dụ: Workflow chạy xong nhưng đọc được 0 dòng, doanh thu bằng 0

Xử lý: Dùng node Stop and Error để biến kết quả bất thường thành lỗi thật

Nguy hiểm nhất là loại cuối: workflow báo “thành công” nhưng gửi đi một báo cáo rỗng. Một workflow hỏng ồn ào luôn tốt hơn một workflow hỏng âm thầm.

Ba lớp xử lý lỗi trong n8n

🛡 LỖI ĐI QUA TỪNG LỚP, TỪ NHẸ ĐẾN NẶNG

🔁LỚP 1 · THỬ LẠIRetry On FailTự thử lại khi gặp lỗi tạm thời📍 Tab Settings của từng node
⑂LỚP 2 · RẼ NHÁNHOn ErrorQuyết định workflow dừng lại hay đi tiếp khi một node lỗi📍 Tab Settings của từng node
🚨LỚP 3 · BÁO ĐỘNGError WorkflowBáo động khi cả workflow thất bại📍 Workflow riêng, gán trong Settings của workflow chính

LỚP 1🔁 THỬ LẠI

Lớp 1: Retry On Fail cho lỗi tạm thời

Mở node cần bảo vệ, vào tab Settings, bật Retry On Fail rồi chỉnh hai thông số:

Max Tries: số lần thử tối đa, mặc định 3 và tối đa 5.

Wait Between Tries (ms): thời gian chờ giữa hai lần thử, mặc định 1000 ms và tối đa 5000 ms.

Nên bật cho các node gọi dịch vụ bên ngoài như HTTP Request, Google Sheets, Gmail, node AI. Với API hay báo lỗi 429, hãy đặt thời gian chờ lớn (3000 đến 5000 ms) để dịch vụ kịp “nghỉ”. Không nên bật cho node Code: lỗi trong code là lỗi logic, thử lại 5 lần vẫn sai y như nhau. Cẩn thận với node gửi email hay tin nhắn: nếu lỗi xảy ra sau khi tin đã đi, thử lại có thể gửi trùng.

LỚP 2⑂ RẼ NHÁNH

Lớp 2: On Error quyết định dừng hay đi tiếp

Cũng trong tab Settings, mục On Error có ba lựa chọn:

MẶC ĐỊNH

■ Stop Workflow

Dừng cả workflow, execution bị đánh dấu lỗi và Error Workflow được gọi

Khi nào dùng: Hầu hết các bước quan trọng như đọc dữ liệu, tính KPI

HẠN CHẾ DÙNG

⚠ Continue

Bỏ qua lỗi, đi tiếp với dữ liệu hợp lệ cuối cùng

Khi nào dùng: Hiếm khi nên dùng, vì lỗi bị che đi

KHUYÊN DÙNG

⑂ Continue (using error output)

Node có thêm nhánh “error” riêng, item lỗi đi vào nhánh đó, item tốt đi tiếp

Khi nào dùng: Xử lý từng item, ví dụ gửi email cho 50 khách hàng

Ví dụ: workflow gửi email cho 50 khách, 2 địa chỉ bị sai. Với Continue (using error output), 48 email vẫn đi, còn 2 dòng lỗi được ghi vào sheet “LoiGuiEmail” để kiểm tra sau, thay vì cả đợt gửi dừng lại.

LỚP 3🚨 BÁO ĐỘNG

Lớp 3: Error Workflow báo động khi cả workflow thất bại

Error Workflow là một workflow riêng bắt đầu bằng node Error Trigger. Khi một workflow đang chạy tự động bị lỗi, n8n gọi Error Workflow đã gán và gửi kèm tên workflow, node lỗi, nội dung lỗi và link tới execution. Một Error Workflow có thể dùng chung cho nhiều workflow.

Với lỗi logic “im lặng”, hãy thêm node Stop and Error: ví dụ sau bước đọc dữ liệu, nếu số dòng bằng 0 thì cho đi vào Stop and Error với thông báo “Không có dữ liệu tuần trước”. Workflow sẽ dừng lại và Error Workflow gửi cảnh báo như một lỗi thật.

Xây Error Workflow cảnh báo qua Telegram

⚡ Bước 1{ } Bước 2✈ Bước 3▦ Bước 4⚙ Bước 5

Error Workflow dưới đây gồm 4 node, nhận thông tin lỗi, soạn tin nhắn dễ đọc, gửi Telegram và ghi lại lịch sử:

⚡

NODE 1 · ERROR TRIGGER

Error Trigger

Nhận thông tin khi một workflow được theo dõi bị lỗi

➜ Tên workflow, node lỗi, nội dung lỗi, link execution

{ }

NODE 2 · CODE

Soạn cảnh báo (Code)

Gom thông tin thành một tin nhắn ngắn gọn

➜ Trường tinNhan và các cột để lưu lịch sử

✈

NODE 3 · TELEGRAM

Gửi Telegram

Gửi tin nhắn cho người phụ trách hoặc nhóm

➜ Cảnh báo tới điện thoại sau vài giây

▦

NODE 4 · GOOGLE SHEETS

Ghi lịch sử lỗi (Google Sheets)

Thêm một dòng vào sheet LichSuLoi

➜ Biết workflow nào hay hỏng nhất

BƯỚC 1⚡ ERROR TRIGGER

Bước 1: Tạo workflow với Error Trigger

Tạo workflow mới, đặt tên “Báo lỗi workflow”, thêm node Error Trigger làm node đầu tiên rồi lưu lại. Workflow dùng Error Trigger không cần kích hoạt (Publish/Active) mới chạy được. Dữ liệu n8n gửi sang gồm: workflow.name, execution.url, execution.error.message, execution.lastNodeExecuted. Nếu lỗi nằm ngay ở node trigger của workflow chính, n8n không lưu execution nên không có execution.url, thông tin lỗi nằm trong trigger.error.

BƯỚC 2{ } CODE

Bước 2: Soạn tin nhắn cảnh báo bằng node Code

Thêm node Code (JavaScript), đặt tên “Soạn cảnh báo”, dán đoạn code sau. Code xử lý cả hai trường hợp: lỗi thường và lỗi ở node trigger.

{ } Soạn cảnh báo.jsCode node · JavaScript
1// Dữ liệu Error Trigger gửi sang
2const d = $input.first().json;
3const wf = d.workflow?.name ?? '(không rõ tên)';
4const ex = d.execution; // không có khi lỗi nằm ở node trigger
5const loi = ex?.error?.message ?? d.trigger?.error?.message ?? 'Không có mô tả lỗi';
6const node = ex?.lastNodeExecuted ?? d.trigger?.error?.node?.name ?? 'Node trigger';
7const thoiGian = $now.setZone('Asia/Ho_Chi_Minh').toFormat('dd/MM/yyyy HH:mm');
8
9const dong = [
10  `🚨 Workflow chạy hỏng: ${wf}`,
11  `🕒 ${thoiGian}`,
12  `📍 Node lỗi: ${node}`,
13  `❗ Lỗi: ${loi.slice(0, 300)}`
14];
15if (ex?.retryOf) dong.push(`🔁 Đây là lần chạy lại của execution ${ex.retryOf}`);
16dong.push(ex?.url ? `🔗 Xem chi tiết: ${ex.url}` : '🔗 Lỗi ở node trigger nên không có link execution');
17
18return [{ json: {
19  ThoiGian: thoiGian, Workflow: wf, NodeLoi: node, Loi: loi, Link: ex?.url ?? '',
20  tinNhan: dong.join('\n')
21} }];

Với một lỗi quá tải ở workflow báo cáo tuần, tin nhắn nhận được trông như sau (dữ liệu minh họa):

✦Cảnh báo workflow
nhóm Telegram nhận lỗi · dữ liệu minh họa
✦

🚨 Workflow chạy hỏng: Báo cáo tuần
🕒 28/10/2026 08:31
📍 Node lỗi: Đọc dữ liệu
❗ Lỗi: The service is receiving too many requests from you
🔗 Xem chi tiết: https://n8n.congty.vn/workflow/abc/executions/231
Bot cảnh báo n8n

BƯỚC 3✈ TELEGRAM

Bước 3: Gửi cảnh báo qua Telegram

Thêm node Telegram, chọn thao tác Send Message, điền Chat ID của bạn hoặc của nhóm phụ trách, ô Text nhập {{ $json.tinNhan }}. Trong Additional Fields, tắt Append n8n Attribution để tin nhắn gọn hơn. Bật Retry On Fail cho node này với 3 lần thử, vì cảnh báo lỗi mà gửi không được thì cũng như không có.

BƯỚC 4▦ GOOGLE SHEETS

Bước 4: Ghi lịch sử lỗi vào Google Sheets

Nối thêm node Google Sheets (Append Row) song song với node Telegram, ghi vào sheet LichSuLoi các cột ThoiGian, Workflow, NodeLoi, Loi, Link. Sau vài tuần, bạn sẽ thấy workflow nào hay hỏng và hỏng vì lý do gì, từ đó sửa đúng chỗ.

BƯỚC 5⚙ SETTINGS

Bước 5: Gán Error Workflow và chạy thử

Mở từng workflow cần theo dõi, vào Options > Settings, ở mục Error workflow chọn “Báo lỗi workflow” rồi lưu.

Lưu ý quan trọng: Error Trigger chỉ chạy khi workflow chạy tự động bị lỗi, bấm chạy thử bằng tay sẽ không có cảnh báo. Để kiểm tra, tạo một workflow thử gồm Schedule Trigger chạy mỗi phút và node Stop and Error với nội dung “Thử cảnh báo lỗi”, gán Error Workflow, kích hoạt, đợi tin nhắn Telegram tới rồi tắt workflow thử đi.

Checklist xử lý lỗi trước khi đưa workflow vào chạy thật

☑ TRƯỚC KHI CHẠY THẬT

✓Node gọi API, Google Sheets, Gmail, AI đã bật Retry On Fail
✓Node gửi email, tin nhắn hàng loạt dùng Continue (using error output) và ghi lại item lỗi
✓Không có node nào đặt On Error là Continue chỉ để “cho chạy qua”
✓Có Stop and Error cho kết quả bất thường như 0 dòng dữ liệu
✓Error workflow đã được gán trong Settings của workflow
✓Đã chạy workflow thử và nhận được cảnh báo Telegram

6/6 mục đạt → yên tâm để workflow tự chạy

Mẹo từ thực tế

📣 Gửi cảnh báo đến đúng người

dùng một nhóm Telegram riêng cho cảnh báo, tách khỏi nhóm nhận báo cáo, để tin lỗi không bị trôi.

🧯 Tránh bị “dội bom” tin nhắn

workflow chạy mỗi 5 phút mà hỏng liên tục sẽ gửi rất nhiều cảnh báo. Hãy tạm tắt workflow trong lúc sửa, hoặc giãn lịch chạy nếu không cần dày như vậy.

🔗 Luôn kèm link execution

bấm vào link là thấy ngay dữ liệu tại node lỗi, không phải đoán.

🛠 Báo lỗi để sửa tận gốc

lỗi dữ liệu nên được sửa trong file gốc, đừng viết thêm code âm thầm “vá” lỗi, vì lỗi sẽ lặp lại. Bài Kiểm tra chất lượng dữ liệu tự động hướng dẫn bắt lỗi dữ liệu trước khi workflow báo cáo chạy.

📅 Muốn học bài bản cách xây workflow tự động hóa chạy ổn định? Xem lịch khai giảng tháng 10/2026 của MCNA để chọn lớp Data Analyst và AI Automation phù hợp.

Câu hỏi thường gặp

?

Error Workflow có cần kích hoạt không?

Không. Workflow bắt đầu bằng Error Trigger không cần kích hoạt. Chỉ cần lưu lại và gán nó trong mục Error workflow của workflow muốn theo dõi. Ngược lại, workflow chính phải đang chạy tự động thì mới phát sinh cảnh báo.

?

Vì sao bấm chạy thử mà không nhận được cảnh báo?

Error Trigger chỉ chạy khi một lần chạy tự động bị lỗi, không chạy khi bạn bấm chạy bằng tay trong màn hình soạn thảo. Hãy kiểm tra bằng một workflow thử có Schedule Trigger và node Stop and Error như ở bước 5.

?

Retry On Fail nên đặt bao nhiêu lần?

Với đa số trường hợp, 3 lần thử cách nhau 2000 đến 5000 ms là đủ. Nếu sau 3 lần vẫn lỗi, nhiều khả năng đó không còn là lỗi tạm thời và cần người xem xét. n8n giới hạn tối đa 5 lần thử và 5000 ms chờ giữa hai lần.

?

Có nên dùng một Error Workflow cho tất cả workflow?

Có, đây là cách đơn giản và dễ quản lý nhất, vì tin nhắn đã ghi rõ tên workflow bị lỗi. Khi số workflow nhiều lên, bạn có thể tách thêm một Error Workflow riêng cho nhóm workflow quan trọng để gửi cảnh báo tới người phụ trách khác.

?

Continue và Continue (using error output) khác nhau thế nào?

Continue bỏ qua lỗi và đi tiếp như không có gì xảy ra, nên lỗi dễ bị che đi. Continue (using error output) tách item lỗi sang một nhánh riêng để bạn ghi lại hoặc báo động, trong khi item tốt vẫn chạy tiếp. Trong hầu hết trường hợp, nên chọn cách thứ hai.

Kết luận

Xử lý lỗi n8n không cần phức tạp: Retry On Fail cho lỗi tạm thời, On Error phù hợp cho từng node, Stop and Error cho kết quả bất thường và một Error Workflow 4 node gửi cảnh báo Telegram. Chỉ mất khoảng 30 phút cài đặt, bạn sẽ biết workflow hỏng trước khi sếp hỏi, kèm đúng node lỗi và link để sửa ngay.

Nếu bạn muốn học bài bản cách xử lý, phân tích dữ liệu và tự động hóa với AI, các khóa học tại MCNA Technology School sẽ đồng hành cùng bạn. Đọc thêm: Tự động hóa báo cáo tuần với n8n và AI, Chatbot Telegram hỏi đáp dữ liệu và n8n, Power Automate hay Make.

👉 Xem lịch khai giảng tháng 10/2026: Power BI, SQL, Python, AI – MCNA

Thông tin tác giả

Võ Ngọc Vương – Data Analyst tại MCNA Technology School

MCNA Technology School – Đơn vị tiên phong đào tạo AI, Big Data, Business Intelligence tại Việt Nam. Chuyên sâu về Power BI, Python, SQL và Data Analytics — đối tác đào tạo của 300+ doanh nghiệp.

Đối tác đào tạo: Viettel Global, Masan Group, Techcombank, VPBank, Daikin.

→ Chỉ mục