דילוג לתוכן
כל מדריכי AI בתכל׳ס

התראה כשאוטומציה נכשלת

כל כשל אוטומטי ב-n8n נרשם ביומן תקלות ושולח אימייל עם מה שצריך כדי לבדוק, בלי לחשוף מפתחות ובלי להציף.

בונים אוטומציותn8n Error Trigger · Gmail · Google Sheets
טיוטה לעבודה: טרם נבדק מקצה לקצה. אפשר לקרוא ולהתנסות עם נתוני דוגמה. אל תפעילו על תהליך עסקי פעיל לפני שבדקתם את התוצאה אצלכם.
מתחילים את התרגיל

מה יהיה לכם בסיום?

שורה ב-Incidents לכל כשל, ואימייל אחד למפעיל עם שם התהליך, הצומת, ההודעה וקישור להרצה. כשל זהה בתוך שעה נרשם בלי אימייל נוסף.

מה להכין לפני שמתחילים

  • סביבת n8n עם תהליכים פעילים שרוצים לנטר
  • חשבון Gmail לשליחת ההתראה ותיבה שמישהו קורא
  • גיליון Incidents
  • הרשאה לשנות את Error workflow בהגדרות של כל תהליך

כלים ועלויות

צריך סביבת n8n וחשבון Google בעל הרשאת עריכה. n8n Cloud עשוי לדרוש תשלום לאחר תקופת הניסיון; באירוח עצמי יש עלות ותפעול שרת. Gmail שולח במסגרת מגבלות השליחה של החשבון. אין שימוש במודל AI.

מתחילים מדוגמה ברורה

השתמשו בנתוני הדוגמה לפני שמכניסים מידע מהעסק. הקלט והפלט כאן נועדו להמחיש את התרגיל.

הקלט

שלושה כשלים סינתטיים ב-fixture.json: הרצה שנכשלה בגלל הרשאה והודעתה כוללת אימייל, ניסיון חוזר שנכשל באותה צורה כמו כשל שכבר נשלח לפני חצי שעה, ושגיאה בטריגר עצמו שהודעתה כוללת Bearer token.

התוצאה הצפויה

שלוש שורות ב-Incidents. exec-231 ו-trigger-wf-mail שולחות אימייל, exec-232 נרשמת עם notified=no. האימייל מוחלף ב-[email] וה-token ב-[redacted]. בהרצה אמיתית: הרצה אחת של תהליך הבדיקה יוצרת שורה אחת ואימייל אחד.

שלב אחר שלב

  1. מייבאים שני תהליכים

    צרו Google Spreadsheet חדש וייבאו את Incidents.csv ללשונית Incidents. ב-n8n ייבאו את workflow.json, זה תהליך ההתראה, ואת failure-test-workflow.json, זה תהליך שנכשל בכוונה. שניהם מגיעים לא מפורסמים.

  2. מחברים Sheets ו-Gmail

    בכל צומת Google Sheets בחרו Credential to connect with והוסיפו Google Sheets OAuth2. ב-n8n Cloud התחברו לחשבון Google ואשרו גישה. באירוח עצמי הגדירו פרויקט Google Cloud, הפעילו Google Sheets API ו-Google Drive API, צרו OAuth client מסוג Web application והעתיקו אליו בדיוק את OAuth Redirect URL שמציג n8n. הזינו Client ID ו-Client Secret רק במסך Credentials. החליפו REPLACE_WITH_SPREADSHEET_ID במזהה שבכתובת המסמך, בין /d/ ל-/edit. בצומת Send alert בחרו credential של Gmail OAuth2 והחליפו REPLACE_WITH_ALERT_EMAIL בכתובת שמישהו באמת קורא. שמרו את התהליך. תהליך עם Error Trigger לא צריך להיות מפורסם (Publish) כדי לקבל כשלים.

  3. מבינים מה נרשם ומה נשלח

    Build incident לוקח מהכשל את שם התהליך, הצומת האחרון, מצב ההרצה, ההודעה וקישור להרצה. לפני שמירה הוא מסתיר כתובות אימייל, Bearer tokens, ערכים של api_key, token, secret ו-password ומחרוזות ארוכות שנראות כמו מפתח. fingerprint מאחד כשלים זהים, גם אם מספר בתוך ההודעה השתנה. אם אותו fingerprint כבר נשלח בשעה האחרונה, השורה נרשמת עם notified=no ואין אימייל.

  4. מחברים תהליכים להתראה

    פתחו את failure-test-workflow.json, ב-Settings בחרו ב-Error workflow את תהליך ההתראה ושמרו. אותו דבר עושים בכל תהליך שרוצים לנטר. תהליך שלא הוגדר לו Error workflow לא ידווח.

  5. בודקים בכשל אמיתי ולא בהרצה ידנית

    Error Trigger פועל רק כשהרצה אוטומטית נכשלת, לא כשלוחצים Execute workflow בעורך. פרסמו (Publish) את תהליך הבדיקה, העתיקו את Production URL של Test webhook ושלחו בקשה אחת. בטלו את הפרסום (Unpublish) מיד אחר כך. בדקו שנוספה שורה אחת ב-Incidents ושהגיע אימייל אחד.

    curl -X POST "https://YOUR-N8N-HOST/webhook/otomatzia-failure-alert-test"

  6. בודקים שהשקט עובד

    פרסמו שוב ושלחו בקשה שנייה תוך פחות משעה. צריכה להיווסף שורה שנייה עם notified=no, בלי אימייל. בטלו את הפרסום. אחרי שעה, כשל זהה יחזור לשלוח אימייל.

  7. מחליטים מי מטפל

    עמודת status מתחילה ב-open. מי שמקבל את האימייל פותח את הקישור להרצה, מתקן, ומשנה את status ל-resolved עם הסבר קצר בעמודה שתוסיפו לפי הצורך. יומן שאף אחד לא סוגר בו שורות הוא רק רעש.

איך יודעים שזה עבד?

  • שלוש השורות ב-expected.json, כולל notified=no לכשל החוזר.
  • אימייל ו-token בהודעה לא מופיעים בגיליון ולא באימייל.
  • כשל אמיתי מתהליך הבדיקה יוצר שורה אחת ואימייל אחד.
  • כשל זהה בתוך שעה נרשם בלי אימייל נוסף.
  • הרצה ידנית בעורך לא מפעילה התראה, וזה צפוי.

בדקו את התוצאה עצמה. הודעת הצלחה של הכלי לבדה לא מספיקה.

בדקתם את התוצאה בעצמכם?

אם ביצעתם את התרגיל ועברתם על הבדיקות, אפשר לסמן שהשלמתם. זהו דיווח שלכם, לא אימות נוסף של התוצאה.

כשמשהו לא עובד

תהליך נכשל ולא הגיעה התראה

בדקו שב-Settings של התהליך שנכשל נבחר Error workflow, שההרצה הייתה אוטומטית ולא ידנית, ושבמסך Executions של תהליך ההתראה יש הרצה.

תהליך ההתראה עצמו נכשל

כשל בתהליך ההתראה לא מדווח על עצמו. פתחו את Executions שלו. ברוב המקרים זו הרשאת Sheets או Gmail שפגה. Save incident רץ לפני Send alert, כך שאם רק השליחה נכשלה, השורה כבר ביומן.

הגיעו הרבה אימיילים על אותה תקלה

בדקו שעמודת fingerprint קיימת ב-Incidents ושהשורות הקודמות נשמרו עם notified=yes. אם ההודעה משתנה בכל כשל בטקסט שאינו מספר, הקוד יראה בכך כשל חדש; אפשר להאריך את QUIET_MINUTES או לקצר את ההודעה שנכנסת ל-fingerprint.

ההודעה בגיליון ריקה או קטועה

ההודעה נחתכת ל-500 תווים אחרי הסתרה. הפרטים המלאים נשארים ב-Executions של n8n, ושם צריך לחקור.

אין קישור להרצה

כשהכשל הוא בטריגר עצמו, למשל אימות שנכשל בזמן האזנה, n8n לא יוצר הרצה. השורה תקבל מזהה trigger- עם התאריך והדקה.

קחו את זה לעבודה

הערכה כוללת את הקבצים הבאים:

  • הקמה, בדיקת כשל אמיתי ושקט
  • תהליך ההתראה: Error Trigger, יומן ואימייל
  • תהליך שנכשל בכוונה לבדיקה
  • כותרות יומן התקלות
  • שלושה כשלים סינתטיים
  • השורות והאימיילים המצופים

נרשמים לסדרת השיעורים השבועית, מאשרים באימייל ומקבלים גישה לכל ערכות העבודה. ההוראות והטקסטים בעמוד הזה נשארים פתוחים.

לאחר אישור באימייל: גישה לערכות ל-30 יום, עם אפשרות לחידוש. סדרה משותפת למתחילים ולבונים: שיעור מאומת אחד בכל שבוע, ואז הפסקה עד לתוכן חדש שנבדק.

איך המדריך נבדק

מצב הבדיקה
טיוטה, האימות עדיין לא הושלם
תאריך הרצה
טרם תועדה הרצה מלאה
נבדק על ידי
טרם נקבע
בדיקה חוזרת עד
ייקבע לאחר האימות

שינוי מהותי בכלי עשוי לדרוש בדיקה מוקדמת יותר. שיעור ללא בדיקה בתוקף לא נשלח בסדרה השבועית.

מקורות להמשך

הצעד הבא שלכם