נקודות קצה של שיחות

נקודות הקצה של ה-API של השיחות מספקות גישה לאובייקטים של השיחות. אובייקט שיחה נוצר לכל שיחה שמתבצעת אל Contact Center AI Platform (פלטפורמת CCAI) וממנה.

אלה נקודות הקצה של Call API:

אובייקט של שיחה

דוגמה לאובייקט של שיחה:

[
  {
    "id": 0,
    "parent_id": 0,
    "lang": "en",
    "call_type": "Voice Scheduled (API)",
    "status": "scheduled",
    "created_at": "2018-06-07T19:49:52.896Z",
    "queued_at": "2018-06-07T19:49:52.896Z",
    "assigned_at": "2018-06-07T19:49:52.896Z",
    "connected_at": "2018-06-07T19:49:52.896Z",
    "ends_at": "2018-06-07T19:49:52.896Z",
    "scheduled_at": "2018-06-07T19:49:52.896Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": 0,
    "has_feedback": true,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "string",
    "out_ticket_url": "string",
    "verified": true,
    "recording_url": "string",
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_details": "string",
    "fail_reason": "nothing",
    "support_number": "string",
    "selected_menu": {
      "id": 0,
      "name": "string",
      "parent_id": 0,
      "position": 0,
      "deleted": true,
      "hidden": "string",
      "menu_type": "ivr_menu",
      "output_msg": "string"
    },
    "menu_path": {
      "items_count": 0,
      "name": "string",
      "materialized_path": "string"
    },
    "agent_info": {
      "id": 0,
      "name": "string",
      "last_name": "string",
      "first_name": "string",
      "agent_number": "string",
      "avatar_url": "string"
    },
    "end_user": {
      "id": 0,
      "identifier": "string",
      "out_contact_id": "string"
    },
    "photos": [
      {
        "id": 0,
        "photo_type": "photo",
        "url": "string"
      }
    ],
    "videos": [
      {
        "id": 0,
        "url": "string"
      }
    ],
    "transfers": [
      {
        "id": 0,
        "status": "transferring",
        "fail_reason": "nothing",
        "created_at": "2018-06-07T19:49:52.896Z",
        "from_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "to_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "from_agent": {
          "id": 0,
          "name": "string",
          "last_name": "string",
          "first_name": "string",
          "agent_number": "string",
          "avatar_url": "string"
        },
        "to_agent": {
          "id": 0,
          "name": "string",
          "last_name": "string",
          "first_name": "string",
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "participants": [
      {
        "id": 0,
        "type": "end_user",
        "status": "waiting",
        "call_id": 0,
        "user_id": 0,
        "end_user_id": 0,
        "call_duration": 0,
        "hold_duration": 0,
        "connected_at": "2018-06-07T19:49:52.896Z",
        "ended_at": "2018-06-07T19:49:52.896Z",
        "fail_reason": "nothing"
      }
    ]
  }
]

הגדרות סטטוס של שיחות

השדה 'סטטוס' יכול להיות באחד מהמצבים הבאים:

סטטוס השיחה תיאור
בחירה מצב שמתרחש כשמשתמש קצה מתקשר למוקד שירות הלקוחות, אבל עדיין מנווט באפשרויות התפריט לפני שהוא מועבר לתפריט עלים.
בהמתנה מצב שמתרחש אחרי שמשתמש הקצה בוחר בצומת של תפריט עלים ומתחיל בקשת שיחה לשידור או לשידור מרובה משתתפים לסוכן.
הקצאה מצב שמתרחש כשנציג נבחר לקבל את השיחה מהמשתמש. הסטטוס הזה מוצג כשנציג עונה לשיחה.
עם עצירות ביניים מצב שמתרחש אחרי שהוקצה נציג, ומתבצע ניסיון ליצור קשר בין משתמש הקצה לבין הנציג.
מחובר מצב שמתרחש כשהשיחה מתחברת והנציג ומשתמש הקצה מועברים לשיחה.
סיימתי מצב שמתרחש כששיחה מסתיימת אחרי שהיא התחברה.
נכשל מצב שמתרחש כששיחה מסתיימת לפני שהיא התחברה בהצלחה. תסופק גם סיבת הכישלון עם פרטים נוספים.
החלפה מצב שמתרחש כששיחה נכשלת במהלך הניסיון להתחבר, ופלטפורמת CCAI מנסה לחבר את השיחה לספק VoIP אחר.
חולים שהחלימו מצב שמתרחש כשמתקשרים בחזרה לשיחה שנכשלה. השיחה החדשה היא צאצא של השיחה המקורית. הערות ששוחזרו אחרי שהשיחה חזרה ללא שגיאה.
מתוזמנת מצב שמתרחש כשמשתמש קצה מתזמן שיחה עתידית באמצעות In-Web או In-App.
פעולה בלבד מצב שמתרחש כששיחה שמטופלת על ידי ספק הטלפוניה של הלקוח מחוברת ל-SDK שלנו ל-iOS או ל-Android.
רק פעולות שהושלמו מצב שמתרחש כששיחה שמטופלת על ידי ספק הטלפוניה של הלקוח מחוברת ל-SDK שלנו ל-iOS או ל-Android ומסתיימת
נהדף מצב שמתרחש על סמך ההגדרה של תורים עם קיבולת יתר או שיחות אחרי שעות הפעילות. אפשרויות ההפניה כוללות, בין היתר, תא קולי, תזמון שיחה ועוד. ההפניה תשתנה בהתאם לערוץ (בתוך האפליקציה, IVR, באינטרנט)
דואר קולי מצב שמתרחש כשמשתמש קצה מועבר לאפשרות של דואר קולי, ובוחר להשאיר הודעה קולית להאזנה מאוחר יותר. המצב הזה קיים כשמשתמש הקצה עוזב את התא הקולי
התקבל דואר קולי מצב שמתרחש אחרי שמשתמש קצה השאיר הודעה קולית ונציג לא האזין להודעה הקולית
קריאת דואר קולי מצב שמתרחש כשנציג פותח את ההודעה הקולית כדי להאזין לה.

הגדרות של סוג השיחה

השדה call_type יכול לקבל רק אחד מהערכים הבאים:

סוג השיחה תיאור
Voice Outbound (API) השיחה בוצעה באמצעות Outbound Call API.
Voice Inbound (API) השיחה בוצעה באמצעות Incoming Call API.
Voice Scheduled (API) השיחה בוצעה באמצעות API של שיחות מתוזמנות.

קודי תגובה נפוצים של API

אלה התשובות הנפוצות ביותר של ה-API:

קוד תגובה משמעות
201 בקשת ה-API בוצעה בהצלחה ותיצור שיחה
202 הבקשה ל-API בוצעה בהצלחה, אבל נדרשת התערבות ידנית בווידג'ט כדי להשלים את הפעולה
400 סוג השיחה לא תקין – צריך לוודא שסוג השיחה נתמך
400 הנציג לא זמין לקבל את השיחה הזו
400 פרמטר חסר – צריך לבדוק שהפרמטרים הנדרשים נוספו
404 המשאב לא נמצא – צריך לבדוק את תת-הדומיין

שיחה יוצאת – end_user_number

פרמטר חובה סוג הנתונים הגדרה
call_tye TRUE String מקלידים כדי ליצור. האפשרויות 'שיחות יוצאות (API)' ו'שיחה יוצאת' (הוצא משימוש) זמינות כרגע
agent_email TRUE String כתובת האימייל של הנציג שיוקצה לשיחה היוצאת.
ticket_id לא נכון String מזהה הכרטיס במערכת CRM, והמערכת תתקשר למשתמש הקצה שמקושר לכרטיס.
end_user_number לא נכון String מספר הטלפון של משתמש הקצה שיחייג. ל-ticket_id יש עדיפות גבוהה יותר מאשר ל-end_user_number.
outbound_number לא נכון String מספר יוצא תקין שמנוהל דרך 'הגדרות' > 'מספרי טלפון' > 'ניהול מספרי טלפון'. אם השדה ריק, המערכת תשתמש במספר ברירת המחדל לשיחות יוצאות
lang לא נכון String השפה שבה מדברים בשיחה. הקודים הם לפי תקן ISO 639-1. (ברירת מחדל: en)

נקודת קצה (endpoint):

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/calls

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}

דוגמה לבקשה ולתשובות

בקטעים הבאים מופיעות דוגמאות לבקשות לנקודת הקצה.

שגיאה : הנציג לא זמין לקבל את השיחה הזו

בדוגמה הזו מוצג תרחיש של כשל שבו הסוכן לא זמין לקבלת השיחה.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תשובה: שגיאה : הנציג לא זמין לקבל את השיחה הזו
{
    "message": "Agent is not available to take this call"
}

קוד סטטוס: 400

יצירת שיחה יוצאת עם מספר משתמש הקצה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
תגובה: יצירת שיחה יוצאת עם end_user_number
{
    "id": 397,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:27:30.406Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:27:30.441Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/avatar.jpg"
    },
    "end_user": null,
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 610,
            "type": "agent",
            "status": "waiting",
            "call_id": 397,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 611,
            "type": "end_user",
            "status": "waiting",
            "call_id": 397,
            "user_id": null,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

יצירת שיחה יוצאת עם מספר כרטיס

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
תגובה: יצירת שיחה יוצאת עם ticket_id
{
    "id": 398,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:28:47.955Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:28:47.971Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "71450",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/avatar.png"
    },
    "end_user": {
        "id": 67,
        "identifier": null,
        "out_contact_id": "381630957514"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 612,
            "type": "agent",
            "status": "waiting",
            "call_id": 398,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 613,
            "type": "end_user",
            "status": "waiting",
            "call_id": 398,
            "user_id": null,
            "end_user_id": 67,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

שגיאה : נדרש מזהה כרטיס או מספר משתמש קצה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

תגובה: שגיאה : נדרש ticket_id או מספר משתמש קצה

{
    "message": "ticket_id or end_user_number required"
}

קוד סטטוס: 400

שגיאה : כתובת האימייל של הסוכן לא תקינה

בדוגמה הזו אפשר לראות מה קורה כשכתובת האימייל של הסוכן לא תקינה.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

תגובה: שגיאה : כתובת האימייל של הנציג לא תקינה

{
    "message": "Not a valid agent email"
}

קוד סטטוס: 400

שגיאה : חובה להזין את כתובת האימייל של הסוכן

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

תשובה: שגיאה : חובה להזין את כתובת האימייל של הסוכן

{
    "message": "Agent email required"
}

קוד סטטוס: 400

שגיאה : לסוכן אין גישה לביצוע שיחות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תשובה: שגיאה : לסוכן אין גישה לביצוע שיחות
{
    "message": "Agent does not have access to make calls"
}

קוד סטטוס: 400

שגיאה : end_user_number לא תקין

בדוגמה הזו מוצג תרחיש של כשל שבו הפורמט של מספר משתמש הקצה שצוין שגוי.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
תשובה: שגיאה : end_user_number לא בפורמט תקין
{
    "message": "end_user_number is not well-formed"
}

קוד סטטוס: 400

שגיאה : איש הקשר לא נמצא

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "ticket_id": 1,
    "lang": "en"
}
תגובה: שגיאה : איש הקשר לא נמצא
{
    "message": "Contact not found"
}

קוד סטטוס: 400

הבקשה אושרה : צריך לבחור מספר לשיחות יוצאות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}
תשובה
{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

קוד הסטטוס: 200

שגיאה : סוג שיחה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
תגובה: שגיאה : סוג שיחה לא תקין
{
    "message": "Invalid call type"
}

קוד סטטוס: 400

הצגת הנחיה בכלי הטלפון באמצעות כמה מספרים יוצאים

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "agent@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "end_user_number": "123123",
    "lang": "en"
}
תשובה
{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "lang": "en"
}

קוד הסטטוס: 200

התקבל : הסוכן צריך להתקשר ללקוח עם מספר הכרטיס

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

קוד סטטוס: 202

שיחה יוצאת – ticket_id

פרמטר חובה סוג הנתונים הגדרה
call_type TRUE String סוג השיחה שרוצים ליצור. האפשרויות 'שיחות יוצאות (API)' ו'שיחה יוצאת' (הוצא משימוש) זמינות כרגע
agent_email TRUE String כתובת האימייל של הנציג שיוקצה לשיחה היוצאת.
ticket_id לא נכון String מזהה הכרטיס במערכת CRM, והמערכת תתקשר למשתמש הקצה שמקושר לכרטיס.
end_user_number לא נכון String מספר הטלפון של משתמש הקצה שיחייג. ל-ticket_id יש עדיפות גבוהה יותר מאשר ל-end_user_number.
outbound_number לא נכון String מספר יוצא תקין שמנוהל דרך 'הגדרות' > 'מספרי טלפון' > 'ניהול מספרי טלפון'. אם השדה ריק, המערכת תשתמש במספר ברירת המחדל לשיחות יוצאות
lang לא נכון String השפה שבה מדברים בשיחה. הקודים הם לפי תקן ISO 639-1. (ברירת מחדל: en)

נקודת קצה (endpoint):

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}​/apps/api/v1/calls

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-867-5309",
    "ticket_id": "123123",
    "lang": "en"
}

דוגמה לבקשה ולתשובות

בקטעים הבאים מופיעות דוגמאות לבקשות לנקודת הקצה.

שגיאה : נדרש מזהה כרטיס או מספר משתמש קצה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

תגובה: שגיאה : נדרש ticket_id או מספר משתמש קצה

{
    "message": "ticket_id or end_user_number required"
}

קוד סטטוס: 400

שגיאה : חובה להזין את כתובת האימייל של הסוכן

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תשובה: שגיאה : חובה להזין את כתובת האימייל של הסוכן
{
    "message": "Agent email required"
}

קוד סטטוס: 400

יצירת שיחה יוצאת עם מספר משתמש הקצה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
תגובה: יצירת שיחה יוצאת עם end_user_number
{
    "id": 397,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:27:30.406Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:27:30.441Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reaso": "not_voicemail",
    "deflection": "n_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/default-profile.png"
    },
    "end_user": null,
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 610,
            "type": "agent",
            "status": "waiting",
            "call_id": 397,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 611,
            "type": "end_user",
            "status": "waiting",
            "call_id": 397,
            "user_id": null,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

שגיאה : סוג שיחה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "ScheduledCall",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
תגובה: שגיאה : סוג שיחה לא תקין
{
    "message": "Invalid call type"
}

קוד סטטוס: 400

הצגת הנחיה בכלי הטלפון באמצעות כמה מספרים יוצאים

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 859-657-9625",
    "lang": "en"
}

קוד סטטוס: 202

התקבל : הסוכן צריך להתקשר ללקוח עם מספר הכרטיס

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json
***גוף הבקשה:*** ```json { "call_type": "Voice Outbound (API)", "agent_email": "allen@somedomain.com", "end_user_number": "+1 205-123-4567", "lang": "en" } ``` ***קוד סטטוס:*** 202 #### שגיאה : לסוכן אין גישה לביצוע שיחות בדוגמה הזו מוצג תרחיש שבו בקשה ליצירת שיחה נשלחת, אבל לסוכן אין גישה לביצוע שיחות יוצאות. ##### בקשה ***כותרות:***
מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תשובה: שגיאה : לסוכן אין גישה לביצוע שיחות
{
    "message": "Agent does not have access to make calls"
}

קוד סטטוס: 400

יצירת שיחה יוצאת עם מספר כרטיס.

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "ticket_id": "71450",
    "outbound_number": "+1 339-219-5276",
    "lang": "en"
}
תגובה: יצירת שיחה יוצאת עם ticket_id
{
    "id": 398,
    "lang": "en",
    "call_type": "Voice Outbound (API)",
    "status": "assigned",
    "created_at": "2019-06-07T01:28:47.955Z",
    "queued_at": null,
    "assigned_at": "2019-06-07T01:28:47.971Z",
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "71450",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": null,
        "name": "Admin UJET",
        "last_name": "UJET",
        "first_name": "Admin",
        "avatar_url": "https://somedomain.com/default-profile.png"
    },
    "end_user": {
        "id": 67,
        "identifier": null,
        "out_contact_id": "381630957514"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 612,
            "type": "agent",
            "status": "waiting",
            "call_id": 398,
            "user_id": 1,
            "end_user_id": null,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 613,
            "type": "end_user",
            "status": "waiting",
            "call_id": 398,
            "user_id": null,
            "end_user_id": 67,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

הבקשה אושרה : צריך לבחור מספר לשיחות יוצאות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}

קוד סטטוס: 202

שגיאה : הנציג לא זמין לקבל את השיחה הזו

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תשובה: שגיאה : הנציג לא זמין לקבל את השיחה הזו
{
    "message": "Agent is not available to take this call"
}

קוד סטטוס: 400

שגיאה : המספר של משתמש הקצה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "end_user_number": "123123",
    "lang": "en"
}
תשובה: שגיאה : end_user_number לא בפורמט תקין
{
    "message": "end_user_number is not well-formed"
}

קוד סטטוס: 400

שגיאה : כתובת האימייל של הסוכן לא תקינה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "admin@somedomain.com",
    "end_user_number": "+1 205-123-4567",
    "lang": "en"
}
תגובה: שגיאה : כתובת האימייל של הנציג לא תקינה
{
    "message": "Not a valid agent email"
}

קוד סטטוס: 400

שגיאה : איש הקשר לא נמצא

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Outbound (API)",
    "agent_email": "allen@somedomain.com",
    "outbound_number": "+1 760-410-8538",
    "ticket_id": 1,
    "lang": "en"
}
תגובה: שגיאה : איש הקשר לא נמצא
{
    "message": "Contact not found"
}

קוד סטטוס: 400

שיחה נכנסת

פרמטר חובה סוג הנתונים הגדרה
call_type TRUE String סוג השיחה שרוצים ליצור. משתמשים ב-Voice Inbound (API)‎ או ב-IncomingCall (הוצא משימוש) כדי ליצור שיחה נכנסת.
menu_id TRUE מספר שלם המזהה של התפריט שאליו משייכים את השיחה. אפשר להזין רק מזהים של תפריטי IVR ותפריטי אינטרנט.
end_user_number TRUE String מספר הטלפון של משתמש הקצה שאליו יתבצע החיוג. אם מועברים גם ticket_id וגם end_user_number, ‏ ticket_id יקבל עדיפות.
lang לא נכון String השפה שבה מדברים בשיחה. הקודים הם לפי תקן ISO 639-1. (ברירת מחדל: en)
ticket_id לא נכון String מזהה כרטיס ב-CRM. המערכת תחייג למספר הטלפון של משתמש הקצה שמקושר לכרטיס. אם מועברים גם ticket_id וגם end_user_number, ‏ ticket_id יקבל עדיפות.
outbound_number לא נכון String מספר הטלפון לשיחות יוצאות שבו ישתמשו לשיחה. אם לא מועבר קלט או שהקלט לא תקין, ייעשה שימוש במספר הטלפון הגלובלי היוצא שמוגדר כברירת מחדל. מספרים לשיחות יוצאות מנוהלים דרך 'הגדרות' > 'תור' > 'עריכה / צפייה' > 'בחירת תור' > 'מספרי טלפון לשיחות יוצאות'.
recording_permission לא נכון String הערך נבדק רק אם התכונה 'אפשרויות הקלטת שיחות' מוגדרת לערך 'בקשת אישור מהמשתמש להקלטה'. אפשר להגדיר את האפשרות הזו בהגדרות > תור > עריכה / צפייה > בחירת תור > אפשרויות הקלטת שיחות. אם הערך הוא 'recording_permission_not_asked' (ברירת מחדל) או 'recording_permission_denied', השיחה לא תוקלט. אם הערך הוא recording_permission_granted, השיחה תוקלט.

נקודת קצה (endpoint):

Method: POST
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/calls

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}

דוגמה לבקשה ולתשובות

בקטעים הבאים מופיעות דוגמאות לבקשות לנקודת הקצה.

שגיאה : המספר של משתמש הקצה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 999-657-12",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : הפורמט של מספר משתמש הקצה לא תקין
{
    "message": "end_user_number is not well formed"
}

קוד סטטוס: 400

שגיאה : התפריט במצב 'העברה ידנית', אי אפשר לקבל שיחות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : התפריט במצב 'הפניה ידנית', אי אפשר לקבל שיחות
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

קוד סטטוס: 400

שגיאה : סוג שיחה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "InvalidCallType",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : סוג שיחה לא תקין
{
    "message": "Invalid call type"
}

קוד סטטוס: 400

שגיאה : חובה לציין מזהה תפריט

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : נדרש menu_id
{
    "message": "menu_id is required"
}

קוד סטטוס: 400

שגיאה : מותרים רק מזהים של תפריטים לניווט קולי (IVR) ותפריטים לנייד

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 50,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : מותרים רק מספרי זיהוי של תפריט IVR ושל תפריט בנייד
{
    "message": "Only IVR and mobile menu IDs are permitted"
}

קוד סטטוס: 400

יצירת שיחה נכנסת עם מספר משתמש קצה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+82-10-6861-2345",
    "recording_permission": "recording_permission_granted"
}
תגובה: יצירת שיחה נכנסת עם end_user_number
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": "2019-09-10T00:19:14.421Z",
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

שגיאה : התפריט במצב 'אחרי שעות הפעילות', אי אפשר לקבל שיחות נכנסות

בדוגמה הזו אפשר לראות את הכשל שמתרחש כשמזהה התפריט שצוין נמצא במצב after hours.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : התפריט במצב 'אחרי שעות הפעילות', אי אפשר לקבל שיחות נכנסות
{
    "message": "Menu is in 'after hours' state, can't accept incoming calls"
}

קוד סטטוס: 400

שגיאה : השפה לא זמינה

בדוגמה הזו מוצגת בקשה שנכשלה כי השפה שצוינה לא זמינה.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "fr",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : השפה לא זמינה
{
    "message": "Language 'fr' is not available"
}

קוד סטטוס: 400

יצירת שיחה נכנסת עם מספר כרטיס

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: יצירת שיחה נכנסת עם ticket_id
{
    "id": 519,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T05:12:26.000Z",
    "queued_at": "2019-09-10T05:12:26.295Z",
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": null,
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": "76517",
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 826,
            "type": "end_user",
            "status": "waiting",
            "call_id": 519,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T05:12:26.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

שגיאה : השפה לא נמצאה

בדוגמה הזו אפשר לראות מה קורה אם השפה שצוינה לא נמצאת.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "xy",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : השפה לא נמצאה
{
    "message": "Language 'xy' is not found"
}

קוד סטטוס: 400

שגיאה : לא נמצא menu_id

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9999,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : לא נמצא menu_id
{
    "message": "menu_id 9999 is not found"
}

קוד סטטוס: 400

שגיאה : הפורמט של menu_id לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": "menu_999",
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : menu_id לא נוצר בצורה תקינה
{
    "message": "menu_id is not well formed"
}

קוד סטטוס: 400

שגיאה : חובה לציין את מספר המשתמש

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Inbound (API)",
    "lang": "en",
    "menu_id": 9,
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : חובה לציין את מספר משתמש הקצה
{
    "message": "end_user_number is required"
}

קוד סטטוס: 400

שיחה מתוזמנת

פרמטר חובה סוג הנתונים הגדרה
call_type TRUE String סוג השיחה שרוצים ליצור. כדי ליצור שיחה מתוזמנת, משתמשים ב-Voice Scheduled (API) או ב-ScheduledCall (הוצא משימוש).
menu_id TRUE מספר שלם המזהה של התפריט שאליו משייכים את השיחה. אפשר להשתמש רק במזהי תפריטים לנייד ולאינטרנט.
call_id לא נכון מספר שלם מזהה השיחה של השיחה הקודמת, שתקושר כשיחת האב של השיחה המתוזמנת החדשה שנוצרה. כשמשתמשים במזהה שיחה, אפשר לא להזין את menu_id.
end_user_number TRUE String מספר הטלפון של משתמש הקצה שאליו יתבצע החיוג. אם מועברים גם ticket_id וגם end_user_number, ‏ ticket_id יקבל עדיפות.
lang לא נכון String השפה שבה מדברים בשיחה. הקודים הם לפי תקן ISO 639-1. (ברירת מחדל: en)
ticket_id לא נכון String מזהה כרטיס ב-CRM. המערכת תחייג למספר הטלפון של משתמש הקצה שמקושר לכרטיס. אם מועברים גם ticket_id וגם end_user_number, ‏ ticket_id יקבל עדיפות.
scheduled_at TRUE String השעה שנקבעה לשיחה. צריך להשתמש בפורמט ISO 8601 ולציין שעה עתידית תקינה.
recording_permission לא נכון String הערך נבדק רק אם התכונה 'אפשרויות הקלטת שיחות' מוגדרת לערך 'בקשת אישור מהמשתמש להקלטה'. אפשר להגדיר את האפשרות הזו בהגדרות > תור > עריכה / צפייה > בחירת תור > אפשרויות הקלטת שיחות. אם הערך הוא 'recording_permission_not_asked' (ברירת מחדל) או 'recording_permission_denied', השיחה לא תוקלט. אם הערך הוא recording_permission_granted, השיחה תוקלט.

נקודת קצה (endpoint):

Method: POST
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/calls

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "ticket_id": "76517",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}

דוגמה לבקשה ולתשובות

בקטעים הבאים מופיעות דוגמאות לבקשות לנקודת הקצה.

שגיאה : הפורמט של end_user_number לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 999-657-12",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : הפורמט של מספר משתמש הקצה לא תקין
{
    "message": "end_user_number is not well formed"
}

קוד סטטוס: 400

שגיאה : התפריט במצב 'העברה ידנית', אי אפשר לקבל שיחות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : התפריט במצב 'הפניה ידנית', אי אפשר לקבל שיחות
{
    "message": "Menu is in 'manual redirection' state, can't accept calls"
}

קוד סטטוס: 400

שגיאה : סוג שיחה לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "InvalidCallType",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : סוג שיחה לא תקין
{
    "message": "Invalid call type"
}

קוד סטטוס: 400

שגיאה : חובה לציין את menu_id

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : נדרש menu_id
{
    "message": "menu_id is required"
}

קוד סטטוס: 400

שגיאה : מותרים רק מזהי תפריטים לנייד ולאינטרנט

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 50,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : מותרים רק מזהי תפריטים לנייד ולאתר
{
    "message": "Only mobile and web menu IDs are permitted"
}

קוד סטטוס: 400

יצירת שיחה מתוזמנת עם מזהה תפריט

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+82-10-6861-2345",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: יצירת שיחה מתוזמנת עם מזהה תפריט
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": null,
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

יצירת שיחה מתוזמנת עם זיהוי מתקשר

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "call_id": 514,
    "end_user_number": "+82-10-6861-2345",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: יצירת שיחה מתוזמנת עם מזהה שיחה
{
    "id": 515,
    "lang": "en",
    "call_type": "Voice Inbound (API)",
    "status": "queued",
    "created_at": "2019-09-10T00:19:14.000Z",
    "queued_at": null,
    "assigned_at": null,
    "connected_at": null,
    "ends_at": null,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "wait_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "recording_url": null,
    "recording_permission": "not_asked",
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": "nothing",
    "fail_details": null,
    "support_number": null,
    "selected_menu": {
        "id": 9,
        "name": "Lock Star",
        "parent_id": null,
        "position": 0,
        "deleted": false,
        "menu_type": "ivr_menu",
        "output_msg": "You selected Lock Star.",
        "hidden": false
    },
    "menu_path": {
        "items_count": 1,
        "name": "Lock Star",
        "materialized_path": "9"
    },
    "agent_info": null,
    "end_user": {
        "id": 75,
        "identifier": null,
        "out_contact_id": "389391400633"
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "deflection_details": [],
    "participants": [
        {
            "id": 820,
            "type": "end_user",
            "status": "waiting",
            "call_id": 515,
            "user_id": null,
            "end_user_id": 75,
            "call_duration": null,
            "hold_duration": null,
            "connected_at": null,
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": "cascade",
    "offer_events": [
        {
            "casting_time": "2019-09-10T00:19:14.000Z",
            "group": "Group 1"
        }
    ],
    "answer_type": "manual",
    "outbound_number": "+1 339-219-5276"
}

קוד סטטוס: 201

שגיאה : התפריט במצב 'אחרי שעות הפעילות', אי אפשר לקבל שיחות נכנסות

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : התפריט במצב 'אחרי שעות הפעילות', אי אפשר לקבל שיחות נכנסות
{
    "message": "Menu is in 'after hours' state, can't accept incoming calls"
}

קוד סטטוס: 400

שגיאה : השפה לא זמינה

בדוגמה הזו מוצגת השגיאה שמתרחשת כשהשפה שצוינה לא תקינה.

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "fr",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : השפה לא זמינה
{
    "message": "Language 'fr' is not available"
}

קוד סטטוס: 400

שגיאה : השפה לא נמצאה

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "xy",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : השפה לא נמצאה
{
    "message": "Language 'xy' is not found"
}

קוד סטטוס: 400

שגיאה : לא נמצא מזהה תפריט

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9999,
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : מזהה התפריט לא נמצא
{
    "message": "menu_id 9999 is not found"
}

קוד סטטוס: 400

שגיאה : מזהה התפריט לא תקין

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": "menu_999",
    "end_user_number": "+1 859-657-9625",
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תשובה: שגיאה : menu_id לא נוצר בצורה תקינה
{
    "message": "menu_id is not well formed"
}

קוד סטטוס: 400

שגיאה : חובה לציין את מספר המשתמש

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "scheduled_at": "2019-09-15T00:19:14.421Z",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : חובה לציין את מספר משתמש הקצה
{
    "message": "end_user_number is required"
}

קוד סטטוס: 400

שגיאה : חובה לציין את התאריך והשעה של ההפעלה המתוזמנת

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

בקשה

כותרות:

מפתח ערך תיאור
סוג התוכן application/json

Body:

{
    "call_type": "Voice Scheduled (API)",
    "lang": "en",
    "menu_id": 9,
    "end_user_number": "+1 859-657-9625",
    "recording_permission": "recording_permission_granted"
}
תגובה: שגיאה : נדרש הערך scheduled_at
{
    "message": "scheduled_at is required"
}

קוד סטטוס: 400

קבלת מאפייני נתונים שמורים במהלך שיחה

נקודת קצה (endpoint)

Method: GET
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/calls/:id/customer_flag

דוגמה לבקשה ולתשובות

בקטע הזה מופיעות דוגמה לבקשה ולתגובה של נקודת הקצה.

הפעולה הצליחה

בדוגמה הזו מוצגת קריאה מוצלחת.

בקשה

משתני כתובת URL

מפתח ערך תיאור
id מספר שלם (חובה)
תשובה
{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customer": "boolean"
}

קוד סטטוס 0

עדכון מאפייני נתונים שמורים במהלך שיחה

נקודת קצה (endpoint)

Method: PATCH
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/calls/:id/customer_flag

משתני כתובת URL

מפתח ערך תיאור
id מספר שלם (חובה)

Body

{
    "verified_customer": "boolean",
    "bad_actor": "boolean",
    "repeat_customers": "boolean"
}

העברת פרמטרים של נתונים לסוכנים וירטואליים באמצע הסשן

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