הודעות שיחת דיבור
SpeechCall הוא סוג של תגובה קולית אינטראקטיבית (IVR) המאפשרת לך לבצע שיחות קוליות אוטומטיות עם אפשרויות תפריט ואינטראקציות DTMF (Dual-Tone Multi-frequency).
סקירה כללית
SpeechCall מאפשרת לעסקים:
- בצע שיחות קוליות אוטומטיות ללקוחות
- השמעת הודעות שמע מבוא
- הצג אפשרויות תפריט אינטראקטיביות
- טיפול בתגובות DTMF של לחיצת מקש (0-9, *, #)
- הגדר התנהגות מותאמת אישית עבור כניסות לא חוקיות/פסק זמן
- הפעל webhooks עם גופים וכותרות מותאמות אישית על סמך בחירת המשתמש
- נהל את זרימת השיחות באופן דינמי (נווט בין תפריטים)
מקרי שימוש
- סקרי לקוחות - איסוף משוב באמצעות אפשרויות תפריט הטלפון
- תזכורות לפגישה - אשר או קבע מחדש באמצעות אינטראקציה קולית
- מעקב הזמנות - ספק עדכוני סטטוס הזמנה
- התראות אינטראקטיביות - לספק מידע חשוב עם אפשרויות פעולה
- אימות קולי - אימות רב-גורמי באמצעות שיחות קוליות
פורמט בקשה
מבנה בסיסי
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
}
]
}
]
}
תיאור פרמטר
| פרמטר | הקלד | חובה | תיאור |
|---|---|---|---|
מ | מחרוזת | כן | מזהה השולח (שם אלפא או מזהה) |
אל | מחרוזת | כן | מספר טלפון של הנמען בפורמט בינלאומי |
טקסט | מחרוזת | כן | ערך טקסט, בדרך כלל “ivr” עבור SpeechCall |
סוג | מחרוזת | כן | חייב להיות "שיחת דיבור" |
תפריט | מערך | כן | מערך תצורות תפריט לשיחה |
תצורת תפריט
כל אובייקט תפריט מכיל:
| פרמטר | הקלד | חובה | תיאור |
|---|---|---|---|
introUrl | מחרוזת | כן | כתובת אתר או מזהה של קובץ האודיו המבוא |
idleTimeoutMsec | מספר שלם | לא | פסק זמן באלפיות שניות להמתנה ללחיצת מקש (לדוגמה, 10000). אם המשתמש לא יגיב, הפעולות שהוגדרו תחת המקש ‘שגוי’ יבוצעו |
dtmfActions | חפץ | כן | מפה של מפתחות DTMF לפעולות |
פעולות DTMF
האובייקט dtmfActions ממפה מפתחות DTMF או תנאים מיוחדים למערכים של פעולות:
| מפתח DTMF | תיאור |
|---|---|
d0 | הקש 0 |
d1 | הקש 1 |
d2 | הקש 2 |
| … | … |
d9 | הקש 9 |
d* | הקש * |
d# | הקש # |
לא נכון | מופעל כאשר מקש לא חוקי נלחץ או כאשר ‘idleTimeoutMsec’ מושג ללא כל קלט |
כל מפתח/תנאי DTMF ממפה למערך של פעולות שיבוצעו ברצף.
פעולות נתמכות
| פעולה | פרמטרים | תיאור |
|--------|---------------------------|
| webhook | כתובת אתר (מחרוזת, חובה)גוף (אובייקט, אופציונלי)כותרות (אובייקט, אופציונלי) | שולח בקשת HTTP POST בפורמט JSON לכתובת ה-URL שצוינה. האובייקט ‘גוף’ יקנן מתחת לשדה ‘פעולה’ בבקשת ה-webhook. כותרות מותאמות אישית נכללות ככותרות HTTP. |
| ניתוק | אין | מסיים את השיחה |
| gotoMenu | תפריט (מחרוזת או מספר שלם) | מנווט את השיחה לתפריט אחר במערך תפריט באמצעות האינדקס המבוסס על 0 (לדוגמה, "1") |
התנהגות פעולה מפורטת
Webhook Action (webhook)
פעולת ה-webhook שולחת בקשת HTTP POST לכתובת האתר שלך להתקשרות חוזרת עם מטא נתונים של השיחה ונתונים מותאמים אישית אופציונליים:
- אם מסופק ‘גוף’, זוגות המפתח-ערך שלו נשלחים בתוך שדה ה’פעולה’ של גוף המטען.
- אם מסופקות ‘כותרות’, הן נשלחות ככותרות HTTP מותאמות אישית בבקשה.
פעולת ניתוק (ניתוק)
פעולת ‘ניתוק’ מפסיקה את השיחה הפעילה באופן מיידי. לא יעובדו פעולות נוספות ברצף או בתפריטים לאחר פעולת ‘ניתוק’.
עבור אל פעולת תפריט (gotoMenu)
פעולת gotoMenu מפנה את זרימת השיחה למבנה תפריט אחר בתוך מערך התפריט. נדרש פרמטר אחד תפריט אשר מציין את האינדקס המבוסס על 0 של תפריט היעד (למשל, "1" כדי לעבור לתפריט השני, או "0" כדי להפעיל מחדש את התפריט הראשון).
חוסר פעילות וטיפול בשגיאות (שגוי)
המפתח ה’שגוי’ בתוך ‘dtmfActions’ הוא מטפל מיוחד של נפילה. הוא מבצע את רצף הפעולות שלו בשני תרחישים:
- קלט לא חוקי: המתקשר לוחץ על מקש DTMF שאינו מוגדר ב-
dtmfActions(לדוגמה, הם לוחצים על3אך התפריט מגדיר רקd1ו-d2). - פסקת זמן סרק: המתקשר לא לוחץ על מקש כלשהו במהלך שנקבע על ידי
idleTimeoutMsec.
אם ‘לא נכון’ לא מוגדר והמתקשר לוחץ על מקש לא חוקי או פסק זמן, זרימת השיחה תנתק כברירת מחדל. הגדרת ‘לא נכון’ מאפשרת לך לבנות תפריטי לולאה (למשל לחזור לאותו תפריט עם `“פעולה”: “גוטו תפריט”, “תפריט”: “0”) או הפניית המשתמש לתפריט עזרה.
פורמט מסירה של Webhook
כאשר פעולת ה-webhook מופעלת, המערכת שולחת בקשת HTTP POST אל ה-URL המוגדר עם ‘Content-Type: application/json’.
כותרות בקשת Webhook
אם הפעולה מוגדרת עם פרמטר headers, צמדי מפתח-ערך אלו נכללים ככותרות HTTP בבקשה.
גוף בקשת Webhook
למטען ה-JSON שנשלח לכתובת ה-webhook שלך יש את המבנה הבא:
{
"from": "0443914272",
"to": "50001",
"mid": "7748021",
"action": {
"confirm": true
}
}
| שדה | הקלד | תיאור |
|---|---|---|
מ | מחרוזת | מספר טלפון של המתקשר / מזהה השולח |
אל | מחרוזת | מספר טלפון של הנמען |
אמצע | מחרוזת | מזהה הודעה |
פעולה | חפץ | אובייקט JSON המותאם אישית שהוגדר בשדה ‘גוף’ של הפעולה |
דוגמה מלאה
IVR פשוט עם פסק זמן ואימות קלט
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
IVR מורכב עם תפריטים מרובים וניתוב DTMF
דוגמה זו מדגימה כיצד להגדיר תפריטים מרובים ולנווט ביניהם באמצעות פעולת gotoMenu כאשר המשתמש מזין מפתח לא חוקי או כאשר הזמן הקצוב לשיחה. זה גם מציג גופים מותאמים אישית וכותרות HTTP מותאמות אישית שנשלחו עם הטריגרים של webhook.
{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}
פורמט תגובה
תגובת הצלחה
{
"messages": [
{
"messageId": "unique-message-id",
"recipient": "+380XXXXXXXXX",
"status": "sent"
}
]
}
טיפול בשגיאות
| מצב HTTP | תיאור |
|---|---|
| 200 | הבקשה הצליחה |
| 400 | פורמט בקשה לא חוקי |
| 401 | האימות נכשל |
| 429 | חריגה ממגבלת התעריף |
| 500 | שגיאת שרת פנימית |
דוגמה של curl
curl -X POST https://restapi.smsbat.com/bat/messagelist \
-u "username:password" \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"from": "YourSender",
"to": "+380XXXXXXXXX",
"text": "ivr",
"type": "speechcall",
"menu": [
{
"introUrl": "ivr_XXXXX",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
},
"headers": {
"test-header": "test"
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "gotoMenu",
"menu": "1"
}
]
}
},
{
"introUrl": "ivr_651854",
"idleTimeoutMsec": 10000,
"dtmfActions": {
"d1": [
{
"action": "webhook",
"url": "https://YourWebhookURL/0",
"body": {
"confirm": true
}
},
{
"action": "hangup"
}
],
"d2": [
{
"action": "webhook",
"url": "https://YourWebhookURL/1",
"body": {
"confirm": false
}
},
{
"action": "hangup"
}
],
"wrong": [
{
"action": "hangup"
}
]
}
}
]
}
]
}'
שיטות עבודה מומלצות
- קובצי אודיו - ודא שכתובות האתרים היכרויות נגישות וקובצי אודיו בפורמטים נתמכים
- מהימנות Webhook - עיצוב Webhook שיגיב במהירות (בתוך 2 שניות)
- אפשרויות DTMF - הגבל את אפשרויות התפריט ל-4-6 אפשרויות לחוויית משתמש טובה יותר
- טיפול בפסק זמן - השתמש ב-‘idleTimeoutMsec’ כדי לציין מגבלות מותאמות אישית של חוסר פעילות (לדוגמה, 10000 אלפיות השנייה), והגדר סתירה חיננית תחת מקש DTMF ‘שגוי’ (כמו חזרה על התפריט או ניתוק)
- זרימת שיחה מרובה תפריטים - השתמש בזהירות ב-‘gotoMenu’ כדי למנוע לולאות אינסופיות בעת ניתוב משתמשים חזרה לתפריטים קודמים
- אסטרטגיית חילוץ - השתמשו בהודעות חילוף למשתמשים שאינם עונים או מתנתקים
נושאים קשורים
- שלח הודעה - מדריך כללי לשליחת הודעות
- שיחת פלאש - שיחות אימות קולי פשוטות
- בדוק סטטוס - עקוב אחר מצב מסירת ההודעות
- סוגי הודעות - סקירה כללית של כל סוגי ההודעות הנתמכים