Help Center SpeechCall sporočila

SpeechCall sporočila

SpeechCall je vrsta sporočila z interaktivnim glasovnim odzivom (IVR), ki omogoča avtomatizirane glasovne klice z možnostmi menija in interakcijami DTMF (dvotonsko večfrekvenčno).

Pregled

SpeechCall podjetjem omogoča:

  • Opravljajte avtomatizirane glasovne klice strankam
  • Predvajanje uvodnih zvočnih sporočil
  • Predstavite interaktivne možnosti menija
  • Obravnava odzive na pritisk tipk DTMF (0-9, *, #)
  • Določite vedenje po meri za neveljavne/časovne omejitve vnosov
  • Sproži webhooke s telesi in glavami po meri na podlagi uporabniških izbir
  • Dinamično upravljanje pretoka klicev (krmarjenje med meniji)

Primeri uporabe

  • Ankete strank - Zberite povratne informacije prek menijskih možnosti telefona
  • Opomniki za sestanke - Potrdite ali prestavite termin z glasovno interakcijo
  • Sledenje naročilom - Zagotavljanje posodobitev stanja naročil
  • Interaktivna obvestila - Posredujte pomembne informacije z možnostmi ukrepanja
  • Glasovno preverjanje - Večfaktorska avtentikacija prek glasovnih klicev

Oblika zahteve

Osnovna struktura

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

Opis parametra

ParameterVrstaZahtevanoOpis
odnizDaIdentifikator pošiljatelja (alfa ime ali ID)
donizDaTelefonska številka prejemnika v mednarodni obliki
besedilonizDaBesedilna vrednost, običajno “ivr” za SpeechCall
tipnizDaMora biti "speechcall"
meninizDaNiz konfiguracij menija za klic

Konfiguracija menija

Vsak menijski objekt vsebuje:

ParameterVrstaZahtevanoOpis
introUrlnizDaURL ali identifikator uvodne zvočne datoteke
idleTimeoutMseccelo številoNeČasovna omejitev v milisekundah za čakanje na pritisk tipke (npr. 10000). Če se uporabnik ne odzove, se izvedejo dejanja, konfigurirana pod tipko wrong
dtmfActionspredmetDaZemljevid DTMF ključev do dejanj

Dejanja DTMF

Objekt dtmfActions preslika ključe DTMF ali posebne pogoje v nize dejanj:

Ključ DTMFOpis
d0Pritisnite 0
d1Pritisnite 1
d2Pritisnite 2
d9Pritisnite 9
d*Pritisnite *
d#Pritisnite #
narobeSproži, ko je pritisnjena neveljavna tipka ali ko je dosežen idleTimeoutMsec brez kakršnega koli vnosa

Vsak ključ/pogoj DTMF se preslika v niz dejanj, ki bodo izvedena v zaporedju.

Podprta dejanja

AkcijaParametriOpis
webhookurl (niz, obvezno)
telo (predmet, neobvezno)
glave (predmet, neobvezno)
Pošlje zahtevo HTTP POST v formatu JSON na navedeni URL. Objekt body bo ugnezden pod polje action v zahtevi webhook. Glave po meri so vključene kot glave HTTP.
odložiBrezKonča klic
gotoMenumeni (niz ali celo število)Krmari klic v drug meni v matriki menu z uporabo njegovega indeksa na osnovi 0 (npr. "1")

Podrobno vedenje dejanj

Dejanje spletnega trnka (‘webhook’)

Dejanje webhook pošlje zahtevo HTTP POST na vaš URL povratnega klica z metapodatki o klicu in neobveznimi podatki po meri: – Če je na voljo telo, se njegovi pari ključ-vrednost pošljejo znotraj polja dejanje telesa tovora.

  • Če so na voljo glave, so poslane kot glave HTTP po meri v zahtevi.

Dejanje prekinitve (‘hangup’)

Dejanje odloži takoj prekine aktivni klic. Po dejanju »odloži« ne bodo obdelana nobena nadaljnja dejanja v zaporedju ali menijih.

Pojdi na dejanje menija (gotoMenu)

Dejanje gotoMenu preusmeri tok klica na drugo strukturo menija znotraj polja menu. Potrebuje en sam parameter menu, ki določa indeks ciljnega menija na osnovi 0 (npr. "1" za prehod v drugi meni ali "0" za ponovni zagon prvega menija).


Obravnava nedejavnosti in napak (‘napačno’)

Napačen ključ znotraj dtmfActions je poseben upravljalnik padca. Svoj niz zaporedij dejanj izvaja v dveh scenarijih:

  1. Neveljaven vnos: Klicatelj pritisne tipko DTMF, ki ni definirana v dtmfActions (na primer, pritisne 3, vendar meni definira samo d1 in d2).
  2. Idle Timeout: Klicatelj ne pritisne nobene tipke v času, ki ga določa idleTimeoutMsec.

Če wrong ni definiran in klicatelj pritisne neveljavno tipko ali poteče, bo potek klica privzeto prekinil. Definiranje wrong vam omogoča ustvarjanje zančnih menijev (npr. vrnitev v isti meni z "action": "gotoMenu", "menu": "0") ali preusmeritev uporabnika v meni pomoči.


Webhook oblika dostave

Ko se sproži dejanje webhook, sistem pošlje zahtevo HTTP POST na konfiguriran url z Content-Type: application/json.

Glave zahtev Webhook

Če je dejanje konfigurirano s parametrom headers, so ti pari ključ-vrednost vključeni kot glave HTTP v zahtevo.

Telo zahteve Webhook

Tovor JSON, poslan na vaš URL webhook, ima naslednjo strukturo:

{
  "from": "0443914272",
  "to": "50001",
  "mid": "7748021",
  "action": {
    "confirm": true
  }
}
PoljeVrstaOpis
odnizTelefonska številka kličočega / ID pošiljatelja
donizTelefonska številka prejemnika
sredinanizID sporočila
akcijapredmetObjekt JSON po meri, definiran v polju telo dejanja

Celoten primer

Preprost IVR s časovno omejitvijo in preverjanjem vnosa

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

Kompleksen IVR z več meniji in usmerjanjem DTMF

Ta primer prikazuje, kako definirati več menijev in krmariti med njimi z dejanjem gotoMenu, ko uporabnik vnese neveljaven ključ ali ko poteče čas klica. Prikazuje tudi telesa po meri in glave HTTP po meri, poslane s sprožilci 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"
              }
            ]
          }
        }
      ]
    }
  ]
}

Oblika odgovora

Uspešen odziv

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

Obravnava napak

Stanje HTTPOpis
200Zahteva uspešna
400Neveljavna oblika zahteve
401Preverjanje ni uspelo
429Omejitev stopnje presežena
500Notranja napaka strežnika

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

Najboljše prakse

  1. Zvočne datoteke – zagotovite, da so uvodni URL-ji dostopni in da so zvočne datoteke v podprtih formatih
  2. Zanesljivost spletnega trnka - Oblikujte spletne trnke tako, da se hitro odzovejo (v 2 sekundah)
  3. Možnosti DTMF - Omejite možnosti menija na 4-6 možnosti za boljšo uporabniško izkušnjo
  4. Obravnava časovne omejitve - Uporabite idleTimeoutMsec, da določite meje nedejavnosti po meri (npr. 10000 ms) in konfigurirajte eleganten nadomestni način pod napačno tipko DTMF (na primer ponavljanje menija ali prekinitev)
  5. Multi-Menu Call Flow - previdno uporabljajte gotoMenu, da preprečite neskončne zanke pri usmerjanju uporabnikov nazaj v prejšnje menije
  6. Nadomestna strategija - Uporabite nadomestna sporočila za uporabnike, ki ne odgovorijo ali prekinejo povezavo

Sorodne teme

Pošlji sporočilo – Splošni vodnik za pošiljanje sporočil – Flash Call – Preprosti klici za glasovno preverjanje