Error Handling ও Monitoring

লেসন ২১ / ২৫

Error Handling-এর গুরুত্ব

Production automation-এ error হওয়া স্বাভাবিক — API down, network issue, data format ভুল। সঠিক error handling না থাকলে workflow নীরবে fail করবে।

Node-level Error Handling

প্রতিটি node-এর Settings-এ:

On Error:
  □ Stop Workflow (default)
  ☑ Continue (Error Output)  ← পরের node-এ যাবে
  ☑ Retry on Fail
    Max Tries: 3
    Wait Between Tries: 5000ms

Error Workflow সেটআপ

# Settings → Error Workflow সেট করুন

[Error Trigger]  ← যেকোনো workflow fail করলে
Response:
{
  "workflow": { "id": "xxx", "name": "Lead Processing" },
  "node": { "name": "Google Sheets" },
  "error": { "message": "API quota exceeded" },
  "execution": { "id": "12345" }
}
         ↓
[Telegram — Developer-কে alert]
  "🚨 Workflow Error!
  Workflow: {{ $json.workflow.name }}
  Node: {{ $json.node.name }}
  Error: {{ $json.error.message }}
  Execution: {{ $json.execution.id }}"
         ↓
[Google Sheets — Error log করা]

Try-Catch Pattern

[Main Node]
  ↓ Success output    ↓ Error output
[Success handling]   [Error handling]
                         ↓
                    [Telegram Alert]
                    [Fallback action]

Execution Monitoring

[Schedule — প্রতিদিন রাত ১১টায়]
         ↓
[n8n API — আজকের failed executions পড়া]
  GET: /rest/executions?status=error&limit=50
         ↓
[IF — Error count > 0 ?]
  True ↓
[OpenAI — Error summary তৈরি]
  "এই errors গুলো analyze করুন ও সম্ভাব্য কারণ বলুন"
         ↓
[Gmail — Daily error report পাঠানো]

Data Validation

[Webhook — Form Data]
         ↓
[Code Node — Validation]
const { name, email, phone } = $json;
const errors = [];
if (!name || name.length < 2) errors.push("নাম অবৈধ");
if (!email.includes("@")) errors.push("ইমেইল অবৈধ");
if (!phone.match(/^01[3-9]\d{8}$/)) errors.push("ফোন নম্বর অবৈধ");

if (errors.length > 0) {
  throw new Error(errors.join(", "));
}
return [{ json: $json }];
         ↓
[Workflow continues with valid data]