Help Center SpeechCall žinutės

SpeechCall žinutės

SpeechCall yra interaktyvaus balso atsako (IVR) pranešimo tipas, leidžiantis atlikti automatinius balso skambučius naudojant meniu parinktis ir DTMF (dviejų tonų kelių dažnių) sąveiką.

Apžvalga

„SpeechCall“ leidžia įmonėms:

  • Atlikite automatinius balso skambučius klientams
  • Leiskite įvadinius garso pranešimus
  • Pateikite interaktyvias meniu parinktis
  • Tvarkyti DTMF klavišų paspaudimo atsakymus (0–9, *, #)
  • Nustatykite pasirinktinį netinkamų / skirtojo laiko įvesties elgesį
  • Suaktyvinkite žiniatinklio kabliukus su pasirinktiniais turiniais ir antraštėmis pagal naudotojo pasirinkimus
  • Tvarkykite skambučių srautą dinamiškai (naršykite tarp meniu)

Naudojimo atvejai

  • Klientų apklausos - Rinkti atsiliepimus naudodami telefono meniu parinktis – Priminimai apie susitikimą – Patvirtinkite arba pakeiskite tvarkaraštį bendraujant balsu – Užsakymų stebėjimas – Pateikite užsakymo būsenos atnaujinimus – Interaktyvūs pranešimai – pateikite svarbią informaciją naudodami veiksmų parinktis – Patvirtinimas balsu – kelių veiksnių autentifikavimas balso skambučiais

Užklausos formatas

Pagrindinė struktūra

{
  "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"
              }
            ]
          }
        }
      ]
    }
  ]
}

Parametrų aprašymas

ParametrasTipasReikalingasAprašymas
”nuo”stygaTaipSiuntėjo identifikatorius (raidinis vardas arba ID)
“į”stygaTaipGavėjo telefono numeris tarptautiniu formatu
”tekstas”stygaTaipTeksto reikšmė, paprastai „ivr“, skirta SpeechCall
”tipas”stygaTaipTuri būti "speechcall"
”meniu”masyvasTaipSkambučio meniu konfigūracijų rinkinys

Meniu konfigūracija

Kiekviename meniu objekte yra:

ParametrasTipasReikalingasAprašymas
”introUrl”stygaTaipĮvadinio garso failo URL arba identifikatorius
idleTimeoutMsecsveikasis skaičiusNeLaukimo klavišo paspaudimo laikas milisekundėmis (pvz., „10 000“). Jei vartotojas neatsako, veiksmai, sukonfigūruoti naudojant „neteisingą“ klavišą, bus atlikti
”dtmfActions”objektasTaipDTMF veiksmų klavišų žemėlapis

DTMF veiksmai

Objektas „dtmfActions“ susieja DTMF raktus arba specialias sąlygas su veiksmų masyvais:

DTMF raktasAprašymas
”d0”Paspauskite 0
”d1”Paspauskite 1
”d2”Paspauskite 2
“d9”Paspauskite 9
d*Paspauskite *
d#Paspauskite #
neteisingaiSuveikia, kai paspaudžiamas netinkamas klavišas arba kai pasiekiamas „idleTimeoutMsec“ be jokios įvesties

Kiekvienas DTMF raktas / sąlyga susiejama su veiksmų, kurie bus vykdomi iš eilės, masyvas.

Palaikomi veiksmai

VeiksmasParametraiAprašymas
”webhook”„url“ (eilutė, būtina)
„body“ (objektas, neprivaloma)
„antraštės“ (objektas, neprivaloma)
Siunčia HTTP POST užklausą JSON formatu nurodytu URL. Objektas „body“ bus įdėtas į „Webhook“ užklausos lauką „veiksmas“. Pasirinktinės antraštės įtraukiamos kaip HTTP antraštės.
pakabintiNėraBaigia skambutį
gotoMenu”meniu” (eilutė arba sveikasis skaičius)Perkelia iškvietimą į kitą meniu „meniu“ masyve, naudodamas indeksą 0 (pvz., „1“)

Išsamus veiksmų elgesys

Webhook veiksmas (“webhook”)

Veiksmas „Webhook“ siunčia HTTP POST užklausą atgalinio skambučio URL su skambučio metaduomenimis ir pasirinktiniais tinkintais duomenimis: – Jei pateikiamas „body“, jo raktų ir reikšmių poros siunčiamos naudingojo krovinio turinio lauke „action“. – Jei pateikiamos antraštės, jos užklausoje siunčiamos kaip tinkintos HTTP antraštės.

Pakabinimo veiksmas (“pakabinimas”)

Veiksmas „pakabinimas“ nedelsiant nutraukia aktyvų skambutį. Po „pakabinimo“ veiksmo jokie tolesni veiksmai sekoje ar meniu nebus atliekami.

Eiti į meniu veiksmą („gotoMenu“)

Veiksmas „gotoMenu“ nukreipia skambučio srautą į kitą meniu struktūrą „meniu“ masyve. Reikia vieno parametro „menu“, kuris nurodo 0 pagrįstą tikslinio meniu indeksą (pvz., „1“, kad pereitumėte į antrąjį meniu, arba „0“, kad iš naujo paleistumėte pirmąjį meniu).


Neaktyvumas ir klaidų tvarkymas (“neteisingas”)

„dtmfActions“ esantis raktas „neteisingas“ yra speciali kritimo tvarkyklė. Jis vykdo savo veiksmų seką dviem scenarijais:

  1. Netinkama įvestis: skambinantysis paspaudžia DTMF klavišą, kuris nėra apibrėžtas „dtmfActions“ (pavyzdžiui, jis paspaudžia „3“, bet meniu apibrėžia tik „d1“ ir „d2“).
  2. Nenaudojimo laikas: skambinantysis nepaspaudžia jokio klavišo per „idleTimeoutMsec“ nurodytą trukmę.

Jei „neteisinga“ neapibrėžta ir skambinantysis paspaudžia netinkamą klavišą arba baigiasi skirtasis laikas, skambučio srautas nutraukiamas pagal numatytuosius nustatymus. Apibrėžus „neteisingai“ galima kurti ciklo meniu (pvz., grįžti į tą patį meniu su „action“: „gotoMenu“, „menu“: „0“) arba nukreipti naudotoją į pagalbos meniu.


Webhook pristatymo formatas

Kai suaktyvinamas „webhook“ veiksmas, sistema siunčia HTTP POST užklausą į sukonfigūruotą „url“ su „Content-Type: application/json“.

Webhook užklausų antraštės

Jei veiksmas sukonfigūruotas naudojant parametrą „antraštės“, tos raktų ir reikšmių poros įtraukiamos kaip HTTP antraštės į užklausą.

Webhook užklausos dalis

JSON naudingoji apkrova, išsiųsta į jūsų „webhook“ URL, turi tokią struktūrą:

{
  "from": "0443914272",
  "to": "50001",
  "mid": "7748021",
  "action": {
    "confirm": true
  }
}
LaukasTipasAprašymas
”nuo”stygaSkambinančiojo telefono numeris / Siuntėjo ID
”į”stygaGavėjo telefono numeris
vidutinisstygaPranešimo ID
”veiksmas”objektasTinkintas JSON objektas, apibrėžtas veiksmo lauke „body“

Pilnas pavyzdys

Paprastas IVR su skirtuoju laiku ir įvesties patvirtinimu

{
  "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"
              }
            ]
          }
        }
      ]
    }
  ]
}

Sudėtingas IVR su keliais meniu ir DTMF maršruto parinkimu

Šiame pavyzdyje parodyta, kaip apibrėžti kelis meniu ir naršyti tarp jų naudojant veiksmą „gotoMenu“, kai vartotojas įveda netinkamą klavišą arba kai baigiasi skambučio laikas. Jame taip pat rodomi pasirinktiniai elementai ir tinkintos HTTP antraštės, siunčiamos su „webhook“ aktyvikliais.

{
  "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"
              }
            ]
          }
        }
      ]
    }
  ]
}

Atsakymo formatas

Sėkmės atsakas

{
  "messages": [
    {
      "messageId": "unique-message-id",
      "recipient": "+380XXXXXXXXX",
      "status": "sent"
    }
  ]
}

Klaidų tvarkymas

HTTP būsenaAprašymas
200Užklausa sėkminga
400Neteisingas užklausos formatas
401Autentifikavimas nepavyko
429Viršytas normos limitas
500Vidinė serverio klaida

cURL pavyzdys

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"
                }
              ]
            }
          }
        ]
      }
    ]
  }'

Geriausia praktika

  1. Garso failai – įsitikinkite, kad įvado URL yra pasiekiami, o garso failų formatai palaikomi
  2. Webhook patikimumas – sukurkite žiniatinklio kabliukus, kad jie greitai reaguotų (per 2 sekundes)
  3. DTMF parinktys – apribokite meniu parinktis iki 4–6 pasirinkimų, kad būtų geresnė vartotojo patirtis
  4. Laiko tvarkymas – naudokite „idleTimeoutMsec“, kad nurodytumėte tinkintus neveiklumo apribojimus (pvz., 10 000 ms), ir sukonfigūruokite grakštų atsarginį režimą naudodami „neteisingą“ DTMF klavišą (pvz., kartokite meniu arba padėkite ragelį).
  5. Kelių meniu skambučių srautas – atsargiai naudokite „gotoMenu“, kad išvengtumėte begalinių kilpų nukreipdami naudotojus atgal į ankstesnius meniu
  6. Atsarginė strategija – naudokite atsarginius pranešimus naudotojams, kurie neatsiliepia arba neatsijungia

Susijusios temos