Skoči na vsebino

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": "BazarCOM",
      "to": "+380936670003",
      "text": "ivr",
      "type": "speechcall",
      "menu": [
        {
          "introUrl": "ivr_651854",
          "idleTimeoutMsec": 10000,
          "dtmfActions": {
            "d1": [
              {
                "action": "webhook",
                "url": "https://api.example.com/callback/option1",
                "body": {
                  "confirm": true
                },
                "headers": {
                  "X-Custom-Header": "value"
                }
              },
              {
                "action": "hangup"
              }
            ],
            "d2": [
              {
                "action": "webhook",
                "url": "https://api.example.com/callback/option2",
                "body": {
                  "confirm": false
                }
              },
              {
                "action": "hangup"
              }
            ],
            "wrong": [
              {
                "action": "hangup"
              }
            ]
          }
        }
      ]
    }
  ]
}

Opis parametra

Parameter Vrsta Zahtevano Opis
od niz Da Identifikator pošiljatelja (alfa ime ali ID)
do niz Da Telefonska številka prejemnika v mednarodni obliki
besedilo niz Da Besedilna vrednost, običajno "ivr" za SpeechCall
tip niz Da Mora biti "speechcall"
meni niz Da Niz konfiguracij menija za klic

Konfiguracija menija

Vsak menijski objekt vsebuje:

Parameter Vrsta Zahtevano Opis
introUrl niz Da URL ali identifikator uvodne zvočne datoteke
idleTimeoutMsec celo število Ne Časovna omejitev v milisekundah za čakanje na pritisk tipke (npr. 10000). Če se uporabnik ne odzove, se izvedejo dejanja, konfigurirana pod tipko wrong
dtmfActions predmet Da Zemljevid DTMF ključev do dejanj

Dejanja DTMF

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

Ključ DTMF Opis
d0 Pritisnite 0
d1 Pritisnite 1
d2 Pritisnite 2
... ...
d9 Pritisnite 9
d* Pritisnite *
d# Pritisnite #
narobe Sprož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

Akcija Parametri Opis
webhook url (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ži Brez Konča klic
gotoMenu meni (niz ali celo število) Krmari klic v drug meni v matriki menu z uporabo njegovega indeksa na osnovi 0 (npr. "1")

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
  }
}
Polje Vrsta Opis
od niz Telefonska številka kličočega / ID pošiljatelja
do niz Telefonska številka prejemnika
sredina niz ID sporočila
akcija predmet Objekt JSON po meri, definiran v polju telo dejanja

Celoten primer

Preprost IVR s časovno omejitvijo in preverjanjem vnosa

{
  "messages": [
    {
      "from": "BazarCOM",
      "to": "+380936670003",
      "text": "ivr",
      "type": "speechcall",
      "menu": [
        {
          "introUrl": "ivr_651854",
          "idleTimeoutMsec": 10000,
          "dtmfActions": {
            "d1": [
              {
                "action": "webhook",
                "url": "https://api.example.com/callback/option1",
                "body": {
                  "confirm": true
                }
              },
              {
                "action": "hangup"
              }
            ],
            "d2": [
              {
                "action": "webhook",
                "url": "https://api.example.com/callback/option2",
                "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_651854",
          "idleTimeoutMsec": 10000,
          "dtmfActions": {
            "d1": [
              {
                "action": "webhook",
                "url": "http://api.smsbat.local/gatereq/temp/hook",
                "body": {
                  "confirm": true
                },
                "headers": {
                  "test-header": "test"
                }
              },
              {
                "action": "hangup"
              }
            ],
            "d2": [
              {
                "action": "webhook",
                "url": "http://api.smsbat.local/gatereq/temp/hook",
                "body": {
                  "confirm": false
                }
              },
              {
                "action": "hangup"
              }
            ],
            "wrong": [
              {
                "action": "gotoMenu",
                "menu": "1"
              }
            ]
          }
        },
        {
          "introUrl": "ivr_651854",
          "idleTimeoutMsec": 10000,
          "dtmfActions": {
            "d1": [
              {
                "action": "webhook",
                "url": "http://localhost/1"
              }
            ],
            "d2": [
              {
                "action": "webhook",
                "url": "http://localhost/1"
              }
            ],
            "wrong": [
              {
                "action": "hangup"
              }
            ]
          }
        }
      ]
    }
  ]
}

Oblika odgovora

Uspešen odziv

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

Obravnava napak

Stanje HTTP Opis
200 Zahteva uspešna
400 Neveljavna oblika zahteve
401 Preverjanje ni uspelo
429 Omejitev stopnje presežena
500 Notranja 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_651854",
            "idleTimeoutMsec": 10000,
            "dtmfActions": {
              "d1": [
                {
                  "action": "webhook",
                  "url": "http://api.smsbat.local/gatereq/temp/hook",
                  "body": {
                    "confirm": true
                  },
                  "headers": {
                    "test-header": "test"
                  }
                },
                {
                  "action": "hangup"
                }
              ],
              "d2": [
                {
                  "action": "webhook",
                  "url": "http://api.smsbat.local/gatereq/temp/hook",
                  "body": {
                    "confirm": false
                  }
                },
                {
                  "action": "hangup"
                }
              ],
              "wrong": [
                {
                  "action": "gotoMenu",
                  "menu": "1"
                }
              ]
            }
          },
          {
            "introUrl": "ivr_651854",
            "idleTimeoutMsec": 10000,
            "dtmfActions": {
              "d1": [
                {
                  "action": "webhook",
                  "url": "http://localhost/1"
                }
              ],
              "d2": [
                {
                  "action": "webhook",
                  "url": "http://localhost/1"
                }
              ],
              "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 - Preveri stanje - Sledite stanju dostave sporočila – Vrste sporočil – Pregled vseh podprtih vrst sporočil