VoiceBot

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

מידע חשוב:

1. ברוב המקרים, השירות עושה שימוש בשירותי צד שלישי כמתואר בתנאי השימוש. יש לעיין בהן טרם השימוש.

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

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

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

 

הסבר כללי:

 

איך השירות עובד?

 

1. מתבצעת שיחה נכנסת מלקוח שמתקשר לעסק (או שיחה יוצאת, המערכת כמובן תומכת ב2 האפשרויות).


2. שלב אופציונלי: מערכת הטלפוניה של Voicenter פונה לCRM ומקבלת עליו את הפרטים הרלוונטים: שמו, האם ישנה פניה פתוחה, באיזה מוצר התעניין, וכד', תוך שימוש בAPI שלנו שנקרא: https://www.voicenter.co.il/API/External-Layer-API


הCRM יעבד את המידע שקיבל (בדגש על מספר המתקשר), מזהה כי יש להעביר את הלקוח לשכבה מסויימת - אליה מוצמד ה-Voice Agent שהוגדר למשימה הנדרשת עבורו (כמובן שניתן להגדיר רשת של Agentים כך שכל אחד יתמקצע בעולם התוכן של הפניות הרלווניות אליו), ומוסיפה בתוך התשובה שלה את ה: CUSTOM_DATA שמכיל את הפרטים שהבוט צריך כדי לעמוד במשימתו, לפחות בשלב הראשוני של המענה (למשל את שם הלקוח, האם יש לו פניה בתוחה בנושא מסויים או שהוא מתעניין חדש שכבר השאיר פרטים על סוג מוצר מסויים).

חשוב לציין כי הCUSTOM_DATA יכול להכיל רק רשימה של Key + Value, ואינו תומך בobject. אם יש צורך להעביר מידע בסכמת נתונים שונה - מומלץ לדלג על שלב זה ולהשתמש ישר בVoiceBot API המתואר מטה, שמכיל גמישות רבה יותר (במיוחד בזכות הfunction_output המתואר בהמשך).

 

3. הVoice Agent עונה לשיחה ופועל על פי ההנחיות שניתנו בממשק ניהול הAgent ולאור המידע הנוסף הספציפי עבורו שסופק לו כרגע מהCRM.


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


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


סוג הבקשה:

POST

מבנה הבקשה:

JSON

דוגמא לפנייה (Request) של Voicenter לקישור שיסופק על ידיכם (תחת אפשרויות ה"תגובה" בניהול הכוונה, בשדה שנקרא URL):

1. POST לדוגמה שישלח למערכת המידע שלכם:

{
  
"CALL_INFO": {
  
  
"DID": "0722776772",
  
  
"CALLER_ID": "0501234567",
  
  
"IVR_UNIQUE_ID": "ssss1bcd7954224861f85a2d70612f2",
  
  
"DTMF": "1234",
  
  
"LAYER_ID": "5",
  
  
"PREVIOUS_LAYER_ID": "5"
  
},
  
"IntentParameters": {
  
},
  
"CUSTOM_DATA": {
  
  
"CRM_cleint_ID": "12345",
  
  
"Last_ticket_ID": "222",
  
  
"Last_representative": "John Doe"
  
}
}

  • המידע מכיל את פרטי השיחה תחת CALL_INFO,
  • את השדות שנאספו במהלך השיחה טרם הפניה לAPI תחת השדה: IntentParameters
  • את השדות שנאספו לפני או תוך כדי השיחה וכבר זמינים ב: CUSTOM_DATA

פרמטרים בבקשה מהשירות

שם שדהתיאורסוג
"METHOD""הערך תמיד יהיה: VOICEBOT.""מחרוזת"
"CALL_INFO""אובייקט אשר מכיל רשימה של שדות עם פרטי השיחה.""אובייקט"
"DID""מספר הטלפון אשר קיבל את השיחה, אשר אליו התקשרו.""מחרוזת"
"CALLER_ID""מספר טלפון של הלקוח המתקשר.""מחרוזת"
"IVR_UNIQUE_ID""מזהה ייחודי של השיחה.""מחרוזת"
"DTMF""הקשות של הלקוח המתקשר בנתב - לדוגמא הקשה של מספר לקוח תשוקף בפרמטר זה.
במידה והלקוח המתקשר לא הקיש כלום והזמן המירבי יעבור, ערך ברירת המחדל יהיה 0."
"מחרוזת"
"LAYER_ID""מספר השכבה אשר ממנה נשלחת בקשת API על הURL שלכם.
רצוי לשים לב לפרמטר זה ומאחר ובמידה יש שכבות שונות שמהן תתבצע פנייה אליכם
מספר השכבה יכול לעזור לכם במעקב וביצוע לוגיקה שונה לפי המקור של הפנייה (מתפריט מכירות? מתפריט שירות לקוחות? וכד)."
"מספר שלם כמחרוזת"
"PREVIOUS_LAYER_ID""מספר שכבה קודם שבה השיחה עברה לפני ביצוע בקשת API לURL שלכם.""מספר שלם כמחרוזת"
"IntentParameters""רשימת שדות והערך שנקלט לתוכם על ידי הסוכן הקולי. ניתן להגדיר שדות אלו בממשק הניהול של הסוכן הקולי.""אובייקט"
"CUSTOM_DATA""אובייקט המכיל שדות נוספים שנאספו כבר טרם שלב זה בשיחה (הכוונה הנוכחית).
למשל שדות שנשלחו ביחד עם הבקשה לClick2Call, נטענו לרשומת החייגן, או נאספו מהCRM טרם החיוג לסוכן הקולי."
"אובייקט"

מבנה התשובה

הסוכן הקולי הבין כי עליו לפנות לAPI המתואר על מנת לאסוף / לעדכן / לברר נתונים בצד הCRM תוך כדי השיחה.

הוא מצפה לקבל את התשובה במבנה המתואר, המכיל 4 חלקים:

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

ככל שהשדות יקבלו תיאור מפורט יותר כך הסוכן ידע לבד מה משמעותן.
האיות המומלץ הוא "snake_case".

2. user
ההנחיה לסוכן כיצד עליו לפעול כעת. עדיף לנסח את הדברים כהנחיה ולא רק לרשום את מה שתרצה שיגיד.
למשל: "הקרא ללקוח את סכום הצבור בחשבונו. אמור "שקלים" אחרי הסכום שאתה מציין את מצב החשבון שלו, ושאל אותו אם ניתן לסייע לו במשהו נוסף",
ולא: "יש לך {{acclount_balalnce}} בחשבון. האם ניתן לסייע לך במשהו נוסף?".

במידה והפרומט שברצונך להנחות ארוך (למעלה מ2-3 משפטים), ניתן ומומלץ להשתמש בפורמט readme (MD) המאפשר הדגשה, כותרות, ואפילו טבלאות עם נתונים, כטקסט קריא לאדם ולמודלי השפה בצורה בהירה יותר.

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

4. system
ניתן להוסיף הנחיות והוראות כלליות יותר, שיעודכנו לשיחה, וימוזגו לשאר הנחיות המערכת של הסוכן הקולי. כאן גם המקום לציין מה לא לעשות במידה ותרצו לחדד לסוכן ממה להמנע ולא לבצע, באופן שלא ישרברב להנחיות user שהן משימתו האמיתית.
גם כאן ניתן ומומלץ להשתמש בפורמט readme (MD) המאפשר הדגשה, כותרות, ואפילו טבלאות עם נתונים, כטקסט קריא לאדם ולמודלי השפה בצורה בהירה יותר.

אף אחד מהשדות אינו שדה חובה, וניתן לענות גם באובייקט ריק. הAgent ימשיך עם ההוראות שכבר קיימות לו.

שם השדהתיאורסוג השדהדוגמההאם שדה חובה
"function_output""הפלט של הפונקציה, המידע הנוסף שהסוכן יכול להעזר בו במהלך המענה. ניתן למשל לתת הנחיות לסוכן לפעול בתוך השדה של הuser prompt ולהתייחס לנתונים מתוך הfunction_output.""Object"{"account_balance":180}"לא חובה"
"user""ההנחיה לסוכן הקולי איך להתנהל אחרי המענה. ניתן לשלב את כל המידע כן. ניתן ואף מומלץ להשתמש בפורמט MD לתת את הדגשים הנכונים בפרומט ארוך.""Object""אנא הקרא ללקוח את מצב החשבון שלו. ניתן לציין את שם השדה בJSON במידה ואינו ברור מאליו על ידי מודל השפה. ""לא חובה, אבל בדרך כלל הכי נפוץ לשימוש"
הגמישות ברבה מאפשרת לכם לשלוט בהאופן דינמי ומלא בתהליך הבוט הקולי תוך יצירת אינטגרציות שונות לתמיכה בתהליכים העסיקיים השונים שאתם רוצים לבנות.

דוגמא לתשובה פשוטה

בדוגמה זאת נשתמש רק בשדה user ("הנחיות משתמש") שיתאר את משימתו של הבוט, ואת המידע שתרצו שישתמש בו - מוטמע בתוך התיאור, בשפה טבעית שמנחה את הסוכל הקולי כיץ להתנהל ואת המידע עצמו:

{
  
"user": [
  
  
"הסבר ללקוח שהזמנה מספר 123456 יצאה אליו הבוקר, וכי השליח צפוי להגיע היום בין 14:00 ל16:00 אחר הצהריים."
  
]
}

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

 

דוגמא הכוללת function_output

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

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

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

{
  
"function_output": {
  
  
"coord": {
  
  
  
"lon": 34.8142,
  
  
  
"lat": 32.0806
  
  
},
  
  
"weather": [
  
  
  
{
  
  
  
  
"id": 800,
  
  
  
  
"main": "Clear",
  
  
  
  
"description": "clear sky",
  
  
  
  
"icon": "01d"
  
  
  
}
  
  
],
  
  
"base": "stations",
  
  
"main": {
  
  
  
"temp": 27.89,
  
  
  
"feels_like": 28.78,
  
  
  
"temp_min": 27.88,
  
  
  
"temp_max": 29.34,
  
  
  
"pressure": 1009,
  
  
  
"humidity": 55,
  
  
  
"sea_level": 1009,
  
  
  
"grnd_level": 1006
  
  
},
  
  
"visibility": 10000,
  
  
"wind": {
  
  
  
"speed": 4.63,
  
  
  
"deg": 300
  
  
},
  
  
"clouds": {
  
  
  
"all": 0
  
  
},
  
  
"dt": 1750157506,
  
  
"sys": {
  
  
  
"type": 1,
  
  
  
"id": 6845,
  
  
  
"country": "IL",
  
  
  
"sunrise": 1750127660,
  
  
  
"sunset": 1750178942
  
  
},
  
  
"timezone": 10800,
  
  
"id": 293788,
  
  
"name": "Ramat Gan",
  
  
"cod": 200
  
},
  
"user": [
  
  
"יש להקריא את המעלות המקסימליות בעיר של המתקשר ולשאול אותו אם יש מידע נוסף על מזג האוויר בעיר שמעניין אותו."
  
]
}

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

גאים להוביל את מהפכת הAI איתכם ולהציע כלים חדשניים למשתמשים שלנו. 

זמינים לכל שאלה, בקשה ועצה.

צוות Voicenter

whats-app-icon