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

    איך יודעים מה ההקשה האחרונה של המשתמש?

    שאלות ועזרה הדדית
    3
    4
    29
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ר
      רעות וטורי נערך לאחרונה על ידי

      שלום,
      יש לי שלוחה אחת שמוגדרת API, וכל הניתוב והלוגיקה זה ב N8N (שרת חיצוני).
      וכדי לבדוק איפה המשתמש נמצא, יש SWITCH שבודק אם המשנה קיים ומנתב לפי זה.
      אבל מה קורה אם רוצה לחזור שלב אחורה(לניתוב משני), מוסיף את הערכים למערך ולא מוסיף לסוף ה- JSON את המשתנה שהקיש.
      ואז כשבודקים איפה המשתמש נמצא, תמיד עושה את המשתנה האחרון (ולא ההקשה האחרונה).

      איך אפשר לפתור את זה? יש למישהו רעיון? אשמח לכל עזרה!!

      אני יתן את התהליך כדי להסביר (המשתנים ששולח בכל קריאת API):

      • משתמש נכנס לשלוחה 5 עם הקשה של תעודת זהות:
      "body": {"ID": "123456789" }
      
      • משתמש לוחץ 4 ספרות של קוד אימות:
      "body": {"ID": "123456789",  "KOD": "4235" }
      
      • משתמש בוחר בניתוב מה לשמוע "תמונת מצב הקש 1, לתרומות הקש 2, להלוואות הקש 3...":
      "body": {"ID": "123456789", "KOD": "4235", "OPTION": "1" }
      
      • משתמש רוצה לחזור לניתוב הראשי - ""תמונת מצב הקש 1, לתרומות הקש 2, להלוואות הקש 3 (בלי להזדהות שוב):"
      body": {"ID": "123456789",  "KOD": "4235", "OPTION": "1","END_SUMMARY": "*" }
      
      • משתמש נמצא בניתוב הראשי ובוחר לשמוע על הלוואות:
      "body": { "ID": "123456789", "KOD": "4235", "OPTION": [ "1", "2" ], "END_SUMMARY": "*" }
      

      הבעיה: הוסיף ל OPTION את הערך כמערך, וכשאני בודקת ב SWITCH אם קיים אז הוא מזהה שהאחרון היה * ולכן מקריא שוב את הניתוב ולא הולך להלוואות.

      ע תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • ר
        רעות וטורי נערך לאחרונה על ידי

        יש מישהו שיכול לעזור לי?
        אני תקועה ואין לי פיתרון!
        בבקשה.

        פ תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • פ
          פלמנמוני @רעות וטורי נערך לאחרונה על ידי

          @רעות-וטורי
          תגובת ג'מיני בספויילר

          שלום, זו נשמעת כבעיה קלאסית בניהול מצב (State Management) במערכות מבוססות API ושליחות (כמו מערכות IVR או בוטים).

          הבעיה המרכזית כפי שאתה מתאר אותה היא שבמקום לשלוח את ההקשה האחרונה הבודדת של המשתמש כמשתנה נפרד, אתה מצרף את כל היסטוריית הניווט (כולל כוכבית החזרה) לתוך משתנה קיים כמו "OPTION", מה שמוביל לבלבול בבדיקת ה-SWITCH ב-N8N.

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

          להלן שתי דרכים עיקריות לפתרון, שתיהן מתמקדות בשינוי אופן העברת המידע בין השרת החיצוני (N8N) לבין השלוחה שלך:

          1. 💡 פתרון מומלץ: שימוש במשתנה "הקשה נוכחית" (Current Input)
            במקום לשנות את הפורמט של המשתנה "OPTION" או להוסיף אליו ערכים, הגדר משתנה חדש וקבוע ב-JSON שייצג תמיד את ההקשה הבודדת האחרונה שהמשתמש ביצע.

          אופן הפעולה המוצע:
          שלח הקשה אחרונה במשתנה קבוע:

          בכל קריאת API, במקום לשלוח את ההקשה לתוך מערך הניווט (כמו "OPTION"), שלח אותה במשתנה נפרד, לדוגמה "CURRENT_INPUT".

          דוגמאות:

          משתמש מקיש ת.ז: "body": {"ID": "123456789", "CURRENT_INPUT": "123456789" }

          משתמש מקיש קוד: "body": {"ID": "123456789", "KOD": "4235", "CURRENT_INPUT": "4235" }

          משתמש בוחר "תמונת מצב" (1): "body": {"ID": "123456789", "KOD": "4235", "OPTION_HISTORY": ["1"], "CURRENT_INPUT": "1" }

          משתמש רוצה לחזור (הקשה 😞 "body": {"ID": "123456789", "KOD": "4235", "OPTION_HISTORY": ["1"], "CURRENT_INPUT": "" }

          משתמש בוחר הלוואות (3) לאחר חזרה: "body": {"ID": "123456789", "KOD": "4235", "OPTION_HISTORY": ["3"], "CURRENT_INPUT": "3" }

          עדכן את הלוגיקה ב-N8N:

          השתמש ב-SWITCH רק על המשתנה החדש "CURRENT_INPUT": כעת, ה-SWITCH שלך יבדוק תמיד את ההקשה הבודדת האחרונה.

          ניהול מצב הניווט (History): במקביל, השתמש במשתנה נפרד (כמו "OPTION_HISTORY" בדוגמה) כדי לשמור את המיקום האמיתי של המשתמש לצורך ניתוב והקראת המידע הנכון, אבל לא לצורך בדיקת ה-SWITCH של הפעולה האחרונה.

          1. 📝 פתרון חלופי: הפרדת המשתנים "אחרון" ו"היסטוריה"
            אם אתה חייב לשמור את היסטוריית הניווט, הפתרון הוא לשלוח את ההקשה האחרונה במשתנה נפרד, או כערך נפרד בתוך ה-JSON, בנוסף להיסטוריה.

          שינוי הפורמט (בדוגמה שלך):
          בכל קריאה, הוסף משתנה שנקרא "LAST_KEY":

          כשהמשתמש חוזר שלב אחורה:

          הפורמט הבעייתי שלך: "body": {"ID": "123456789", "KOD": "4235", "OPTION": "1","END_SUMMARY": "*" }

          הצעת התיקון: "body": {"ID": "123456789", "KOD": "4235", "OPTION_HISTORY": ["1"], "LAST_KEY": "*" }

          לאחר שהמשתמש נמצא בניתוב הראשי ובוחר 3 (הלוואות):

          הפורמט הבעייתי שלך: "body": { "ID": "123456789", "KOD": "4235", "OPTION": [ "1", "3" ], "END_SUMMARY": "*" } (הנחתי שהבאת דוגמה ל-3 ולא 2 כפי שכתבת)

          הצעת התיקון: "body": { "ID": "123456789", "KOD": "4235", "OPTION_HISTORY": [ "3" ], "LAST_KEY": "3" } (שים לב שבמקרה זה אתה לא צריך לשלוח את * אם המשתמש כבר יצא מהמצב הזה).

          עדכון הלוגיקה ב-N8N:
          ה-SWITCH ב-N8N צריך לבדוק תמיד את הערך של LAST_KEY.

          הערך שנשמר עבור הניווט (מה שקראתי "OPTION_HISTORY") ישקף את המיקום הנוכחי של המשתמש במערכת, ויהיה מנוהל על ידי לוגיקה שמקטינה את המערך כאשר "LAST_KEY" הוא *.

          הפרדת המשתנים היא הדרך הנכונה לטפל בלוגיקה הזו. אתה צריך שיהיה לך משתנה שמייצג "מה בדיוק המשתמש הקיש עכשיו" ומשתנה אחר שמייצג "איפה הוא היה לפני זה / איפה הוא נמצא כעת".

          האם תרצה שאסייע לך בניסוח הלוגיקה לטיפול בהקשה * בתוך ה-N8N?

          תגובה 1 תגובה אחרונה תגובה ציטוט -2
          • ע
            ע.ג. @רעות וטורי נערך לאחרונה על ידי

            @רעות-וטורי
            זה נראה לי מה שצריך:
            https://f2.freeivr.co.il/topic/13141/מה-זה-סשן-ואיך-משתמשים-בו?_=1762792177826
            בתקוה שהבנתי מה שביקשתם..

            תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • פוסט ראשון
              פוסט אחרון