מעבדת n8n – בקרת זרימה

תוכן עניינים

הערה: תרגול זה ממשיך את ה-Workflow הקודם, אשר מכיל כעת שני Triggers (צ'אט וטלגרם), בלוק LLM Chain לחילוץ נתונים, שרשרת לאיסוף נתונים (OWM, Tavily) ו-LLM Chain נוסף לעיצוב התשובה. השלב הקודם עסק בשליחת הפלט (התשובה המנוסחת) חזרה לערוץ הטלגרם.
 
אם טרם הקמתם את תהליך האוטומציה הראשוני, וחיברתם אותו לתקשורת טלגרם ויכולות Ai – תוכלו לעשות זאת כאן.
 
בסוף המעבדה שעסקה בחיבור לטלגרם, נתקלנו בבעיה – כאשר השיחה מתבצעת דרך הצ׳אט הפנימי של n8n (טריגר Chat), מתקבלת הודעת שגיאה בבלוג הטלגרם שמנסה להשיב להודעה. כדי לדלג מעל הבעיה – ניתקנו אותו באופן זמני. כעת, נשכלל את בקרת הזרימה (Flow Control) כדי לנתב את התשובה לערוץ התקשורת הנכון (צ'אט או טלגרם), באמצעות בלוק If.


1. בקרת זרימה – ניתוב התשובה לערוץ הנכון

בקרת הזרימה שהטמענו בתרגיל הקודם הייתה מורכבת והצריכה ניתובים מרובים מבלוק ה-Gmail. כעת, נפשט את הניתוב הסופי של התשובה, ונשתמש בבלוק IF כדי לבחור בין ערוץ הצ'אט לבין ערוץ הטלגרם באופן ישיר, על בסיס השדה source שיצרנו.

 

  1. משימה 1 – ניתוק ואיחוד נקודת הכשל
     

    • איתור נקודת הכשל: נעבור על כל המקומות בתהליך שלנו בהם מוחזרת הודעה ללקוח. זה קורה ביציאה משני בלוקים: Gmail (גם הצלחה וגם שגיאה) ו-OpenWeatherMap (בשגיאה).
    • ניתוק חיבורים: נתקו את כל החיבורים משני הבלוקים הללו לכל בלוק ששולח הודעה לנמען כלשהו. גם בערוץ הצ׳אט הפנימי, וגם בערוץ הטלגרם.
       
      ניתוק יציאות
  2.  

     

  3. משימה 2 – הגדרת בלוק If לזיהוי מקור הקלט
     

    • בחרו את אחת מנקודות הסיום של התהליך (Gmail או OpenWeatherMap), וחברו בלוק If חדש ליציאה.
    • הגדרת התנאי: בלוק ה-If יבדוק מאיזה ערוץ הגיעה הבקשה, על ידי שימוש בשדה source שהגדרנו בקלט, וזמין דרך הבלוק 'Structured Input' (No Operation).
       

      1. נתון: הוסיפו Condition חדש ובשדה העליון של התנאי (ערך מקור) השתמשו בביטוי:
        
        {{ $('Structured Input').item.json.source }}
                                
      2. פעולת השוואה (Operation): בשדה האמצעי (סוג ההשואה) בחרו ב-is equal to מתוך תת-התפריט של String.
      3. ערך יעד (Value): בשדה התחתון של התנאי, הזינו את הערך הקבוע telegram.

       

      הגדרת תנאי
    • הבנה: אם התנאי יתקיים (true), הניתוב יהיה לערוץ הטלגרם, אם לא (false), הניתוב יהיה לצ׳אט של n8n (דרך בלוק Set).
  4.  

     

  5. משימה 3 – Branching: חיבור ענפי הזרימה (Chat and Telegram)
     

    • חיבור יציאת false (חזרה לצ'אט): חברו את יציאת true של בלוק ה-If אל הבלוק שהוגדר כדי לשלוח תשובה חזרה לצ'אט של n8n (זהו ה-Set שמגדיר את השדה output).
    • חיבור ענף true (חזרה לטלגרם): חברו את יציאת true של בלוק ה-If אל הבלוק – Telegram שהוגדר לשליחת הודעה (Send Message) בבוט הטלגרם.
       
      Branching – בקרת זרימה
    • בדיקה:
      • בדיקת צ'אט: הריצו את ה-Workflow דרך חלון ה-Open Chat. ודאו שהתשובה המנוסחת חוזרת לצ'אט.
      • בדיקת טלגרם: הריצו את ה-Workflow על ידי שליחת הודעה לבוט טלגרם. ודאו שהתשובה המנוסחת חוזרת לטלגרם.
      • ודאו שבכל אחד מהמצבים – אין שגיאות.
  6.  

     

  7. משימה 4 – ביצוע בקרת זרימה בכל התהליך
     

    כעת בצעו תהליך זה בכל שאר נקודות הסיום של התהליך – איפה שנשלחות הודעות תגובה בערוצים השונים.

     


2. תרגול פתוח ואתגר הרחבה

בניתם תהליך חסין שגיאות, שמתמודד כראוי כעוזר רב-ערוצי (Multichannel). כעת, עליכם "ללכלך את הידיים" ולחקור את המערכת על ידי התמודדות עם אתגרים מורכבים יותר.

 

  • המשימה היא הוספת אפשרות למקורות נוספים, ופיצול את ענפי התשובה ליותר משניים, תוך החלפת בלוקי ה If בבלוקי Switch, המאפשרים התמודדות עם תנאים מרובים.

 
בהצלחה!


סיימתם לפשט ולייעל את בקרת הזרימה ב-Workflow שלכם. באמצעות בלוק If יחיד, אתם מנתבים את התשובה הסופית חזרה לערוץ התקשורת הנכון (צ'אט או טלגרם) שממנו הגיעה הבקשה.