אירועים של סשנים חיצוניים

היכולת 'אירועים של סשנים חיצוניים' מאפשרת הזרמת נתונים בזמן אמת מ-CCAI Platform למערכות חיצוניות באמצעות תגובות לפעולות מאתרים אחרים (webhooks). כך מקבלים תצוגה מיידית של מחזורי החיים של הסשנים לצורך דיווח בהתאמה אישית, עדכונים של רשומות CRM או תהליכי עבודה אוטומטיים אחרי אינטראקציות.

אירועים חיצוניים של סשן מספקים מנגנון מבוסס-דחיפה כדי להודיע לשרת שלכם בכל פעם שמשתנה סטטוס של צ'אט או שיחה קולית. אם מספקים נקודת קצה (endpoint) של API, פלטפורמת CCAI תפרסם נתוני אירועים בפורמט JSON בתשתית שלכם כשמתרחשים מעברים – לדוגמה, שיחה מחוברת, סוכן שהוקצה, סשן מנותק.

הגדרה של אירועים חיצוניים של סשנים

כדי להגדיר אירועים של סשנים חיצוניים, מבצעים את השלבים הבאים:

  1. בפורטל של CCAI Platform, לוחצים על הגדרות > הגדרות למפתחים. אם תפריט ההגדרות לא מופיע, לוחצים על תפריט.

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

  3. עוברים לחלונית External Session Events (אירועים של סשנים חיצוניים) ולוחצים על המתג כדי להעביר אותו למצב מופעל.

  4. מבצעים אחת מהפעולות הבאות או את שתיהן:

    • כדי להגדיר אירועים של סשן שיחה חיצוני:

      1. מסמנים את התיבה Call events - Send call sessions event (אירועים שקשורים לשיחות – שליחת אירוע של סשן שיחה).

      2. בשדה API Endpoint (נקודת קצה של API), מזינים את כתובת ה-URL המלאה של ה-API המטרה ב-HTTPS.

      3. מזינים את שם המשתמש והסיסמה. הפלטפורמה משתמשת בהם לאימות בסיסי.

    • כדי להגדיר אירועים של סשן צ'אט עם גורמים מחוץ לארגון:

      1. מסמנים את התיבה אירועים ב-Chat – שליחת אירוע של סשנים ב-Chat.

      2. בשדה API Endpoint (נקודת קצה של API), מזינים את כתובת ה-URL המלאה של ה-API המטרה ב-HTTPS.

      3. מזינים את שם המשתמש והסיסמה. הפלטפורמה משתמשת בהם לאימות בסיסי.

  5. לוחצים על Save.

מחזור החיים של אירוע והלוגיקה של מצב האירוע

במהלך הסשן, פלטפורמת CCAI שולחת כמה עדכונים. כל עדכון מעשיר את אובייקט item במטא-נתונים נוספים כשהם הופכים לזמינים.

טבלת התקדמות המדינה

סדר האירועים מדינה סטטוס המשתתף נוספו נקודות נתונים מרכזיות
1. התחלה connected חיצוני: connected call_id, לקוח dn (מספר טלפון).
2. ניתוב connected חיצוני: connected queue_path_names, initiator (סוכן וירטואלי).
3. הוקצה connected נציג/ה: accepted השם והמזהה של הנציג בזמן אמת מתווספים.
4. פעיל connected נציג/ה: connected השידור הוקם (השיחה מתחילה).
5. סיום disconnected שניהם: disconnected חותמת הזמן ends_at מאוכלסת.
6. סופית disconnected נציג/ה: dispositionSubmitted אובייקט dispositions שמכיל קודי סיכום.

הפניה לסכימת נתוני אירועים

האירועים נשלחים אל ה-webhook באובייקט. לכל אירוע webhook יש את אותה מבנה, שמוצג בטבלה הבאה:

אובייקט הבסיס

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

שדות עיקריים של סשנים

  • event_id: מזהה UUID של ההתראה על האירוע.
  • timestamp: חותמת זמן של מערכת Unix באלפיות השנייה של הזמן שבו האירוע נוצר.
  • connected_at ו-ends_at: חותמות זמן בפורמט ISO 8601 של משך הביקור.
  • initiator: מזהה את הישות שטיפלה בשינוי הסטטוס, לדוגמה virtual_agent_15 או agent_1.
  • dispositions: אובייקט מוטמע שמכיל את code,‏ custom_code_id וכל סוכן note.

אבטחה

כל הבקשות נשלחות עם כותרת הרשאה רגילה: Authorization: Basic <base64_encoded_credentials>

דרישות בנוגע להעברה

  • שיטה: POST
  • Content-Type: application/json
  • פסק זמן: השרת צריך להגיב תוך חמש שניות.
  • אישור: נקודת הקצה צריכה להחזיר קוד סטטוס 200 OK. יכול להיות שהפלטפורמה תשתמש בניסיונות חוזרים עם השהיה אקספוננציאלית אם מתקבל קוד שאינו 200.

דוגמאות למטענים ייעודיים

בהמשך מופיעות דוגמאות למטענים ייעודיים (payloads) שמתקבלים בהודעות אירועים ל-webhook.

שיחה פעילה (מדיה מחוברת)

{
  "count": 1,
  "events": [
    {
      "event_id": "fc066edb-d99f-4db4-ba04-fb5dfea0e86a",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "connected",
        "queue_path_names": "Test/Talk to Andrew/English",
        "participants": [
          { "state": "connected", "type": "external", "dn": "+15555555555" },
          { "state": "connected", "type": "agent", "name": "Joe Smith", "agent_number": "528431" }
        ]
      }
    }
  ]
}

ההחלטה הסופית (עבודה בעקבות השיחה)

{
  "count": 1,
  "events": [
    {
      "event_id": "479798ff-b1ed-4a5c-a910-17a7edb3f283",
      "timestamp": 1767874769480,
      "type": "CallState",
      "item": {
        "call_id": 1395,
        "state": "disconnected",
        "participants": [
          {
            "type": "agent",
            "state": "dispositionSubmitted",
            "dispositions": {
              "code": "Call completed",
              "custom_code_id": "callComplete",
              "note": "none"
            }
          }
        ]
      }
    }
  ]
}