ThunderPhone 2.0 jau čia.Pradėkite savarankiškai – nuo 2 ¢ už minutę.Skaityti pranešimą

Developer cookbook

Kintamieji kiekvienam skambučiui

Pritaikykite išsaugotą agentą kiekvienam skambučiui nekeisdami jo įdiegtos užklausos, įrankių ar nustatymų.

Į išsaugoto agento raginimą įtraukite vietos žymas, tada pradėdami skambutį pateikite variables objektą. Išsaugota konfigūracija ir versijų istorija nesikeičia. Prieš siųsdamas skambučio konfigūraciją į balso vykdymo aplinką, ThunderPhone sugeneruoja tekstą.

Kai reikšmių nereikia, praleiskite variables, nesiųskite null (atmetama su 400).

Vietos žymos ir numatytosios reikšmės

You are calling {{name|Friend}} about account {{account_id}}.
The available appointment is {{ appointment_slot }}.

Pavadinimuose skiriamos didžiosios ir mažosios raidės, jie turi atitikti [A-Za-z_][A-Za-z0-9_]*. Tarpai aplink pavadinimą leidžiami; tarpas po | yra numatytosios reikšmės dalis ir yra išsaugomas. {{name|Friend}} naudoja Friend, kai trūksta name arba jo reikšmė yra null; tuščia eilutė yra aiškiai pateikta reikšmė. Trūkstamos reikšmės be numatytosios reikšmės tampa tuščiomis eilutėmis, o jų pavadinimai rodomi unresolved_variables. Tekstas tarp dvigubų riestinių skliaustų, kuris nėra tinkama vietos žyma, pašalinamas. Tekstas su dvigubais riestiniais skliaustais kiekvienoje pateiktoje reikšmėje pašalinamas atskirai; reikšmė negali pašalinti aplinkinio raginimo teksto ar kitos reikšmės. Nesutampantys dvigubų riestinių skliaustų skyrikliai taip pat pašalinami. JSON pavyzdžiuose raginimuose negalima naudoti {{. Reikšmės yra paprastas tekstas, niekada nevykdomos kaip kodas ir rekursyviai neišplečiamos kaip šablonai.

Kintamieji taip pat gali būti naudojami patvirtinimo raginimuose, siunčiamuose balso pašto pranešimuose ir sutikimo pranešimo tekste, kai šis laukas siunčiamas telefoniniam skambučiui. Agentas neturi atskiro first_message lauko: pradinius jo nurodymus įrašykite į raginimą. Esamos balso pašto vietos žymos {agent_name} ir {org_name} toliau veikia.

Reikšmės gali būti eilutės, skaičiai, loginės reikšmės arba null; loginės reikšmės pateikiamos kaip true ir false. Unicode valdymo (Cc) simboliai, išskyrus naujos eilutės (\n), tabuliacijos (\t) ir vežimėlio grąžos (\r) simbolius, visi formatavimo (Cf) simboliai ir pakaitiniai (Cs) kodo taškai pašalinami; \r\n normalizuojamas į \n. Kiekvienos reikšmės ilgis pateikiant ribojamas iki 2 000 simbolių. Pateiktos eilutės taip pat išvalomos ir sutrumpinamos prieš išsaugojimą. Pradinis objektas turi tilpti į 32 KB UTF-8 JSON; didesni objektai gauna 400 skambučio ir sesijos užklausose, o kampanijų importavimas atskirai nurodo netinkamas eilutes. Masyvai ir įdėtieji objektai nėra priimami kaip reikšmės. Neatitinkantys metaduomenų raktai (pavyzdžiui, CSV antraštė su tarpu) išsaugomi ir grąžinami, tačiau į juos negalima nurodyti vietos žyma.

Iš kur gaunamos reikšmės

Išeinančių skambučių API

Siųskite variables kartu su agent_id per POST /v1/call:

{
  "from_number": "+15551234567",
  "to_number": "+14155550199",
  "agent_id": 12,
  "variables": {
    "name": "Ada",
    "account_id": "A-17",
    "appointment_slot": "Tuesday at 10 AM"
  }
}

Tai taip pat veikia su numatytuoju telefono numerio išeinančių skambučių agentu arba su įterptine config.prompt. Idempotentiškumo rakto negalima pakartotinai naudoti su skirtingais kintamaisiais.

Kampanijos CSV

Ne telefono CSV stulpeliai jau saugomi kaip kontaktų kintamieji. Kiekvienas rinkimas dabar juos naudoja automatiškai. Naudokite antraštes, pvz., name, account_id ir appointment_slot, kad jos atitiktų jūsų vietos rezervavimo ženklus. Esamas vardo susiejimas gali sujungti vardo ir pavardės stulpelius į kintamąjį name.

Dinaminės konfigūracijos žiniatinklio kabliukas

Blokuojančios konfigūracijos žiniatinklio kabliuko kelyje grąžinkite išsaugotą agentą savo organizacijoje ir visas konkretaus skambučio reikšmes:

{"agent_id": 12, "variables": {"name": "Ada", "account_id": "A-17"}}

Atsakymo raktai perrašo užklausos lygio kintamuosius, o kiti užklausos raktai išlieka. Atsakymo reikšmė null parenka numatytąją vietos rezervavimo ženklo reikšmę. Sujungtas objektas taip pat turi tilpti į 32 KB. Išsaugoto agento atsakymai priima tik agent_id ir variables; grąžinkite įterptinę konfigūraciją, kai reikia pakeisti raginimą ar nustatymus. Atsakymas, kuriame yra prompt, visada naudoja įterptinę konfigūraciją: bet koks tame atsakyme esantis agent_id ignoruojamas, įskaitant null arba ne sveikojo skaičiaus metaduomenis. Įterptinis raginimas vis tiek turi atitikti įprastą tikrinimą. Įterptiniai žiniatinklio kabliuko atsakymai taip pat gali apimti variables. Išsaugoto agento žiniatinklio kabliuko atsakymai naudoja įdiegtą agento A/B paskirstymą tiek telefono, tiek valdiklio skambučiams; kintamieji pateikiami pasirinkus variantą. Gaunamiems telefono skambučiams naudokite numerį be priskirto gaunamų skambučių agento ir sukonfigūruokite jo telefono numerio arba organizacijos žiniatinklio kabliuką; valdiklio raktai naudoja mode="webhook". Galinio taško sistemos gaunami pranešimai nepateikia blokuojančių konfigūracijos atsakymų.

Valdiklio ir Realtime sesijų API

POST /v1/widget/session priima aukščiausio lygio variables objektą. Jo publikuojamas raktas parenka išsaugotą agentą. Žiniatinklio kabliuko režimo raktai persiunčia šias reikšmes į konfigūracijos žiniatinklio kabliuką ir sujungia atsakymą, kaip aprašyta aukščiau. Naršyklės pateikti valdiklio ir Realtime variables yra valdomi kliento, persiunčiami nepakeisti į web.incoming po pirmiau aprašyto tikrinimo ir eilučių išvalymo bei įtraukiami į užbaigimo žiniatinklio kabliukus ir skambučių istoriją. Nelaikykite jų patikimais tapatybės ar autorizavimo duomenimis.

POST /v1/realtime/sessions priima variables kartu su agent_id (arba įterptine config). Tai yra sesijos kūrimo API laukai. Realtime WebSocket tarpininkas neperduoda kintamųjų parinkties; pateikite ją tiesiogiai sesijos kūrimo API. Valdiklio klientai turi įtraukti variables į siunčiamą sesijos apkrovą; SDK persiuntimas nėra šio API pakeitimo dalis. Konstruktoriaus mikrofono ir imituoti bandomieji skambučiai nustato numatytąsias ir trūkstamas vietos rezervavimo ženklų reikšmes, tačiau neturi konkretaus skambučio kintamųjų įvesties.

Reikšmės, grąžinamos po skambučio

GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete ir web.complete apima galutinius sujungtus variables ir unresolved_variables. Senesnės užbaigimo apkrovos, kuriose yra data.history, taip pat juos apima:

{
  "variables": {"name": "Ada", "account_id": "A-17"},
  "unresolved_variables": ["appointment_slot"]
}

Saugokite savo CRM arba užduoties identifikatorių kintamųjų objekte, kad galėtumėte susieti užbaigtą skambutį su jo šaltinio įrašu. Šie laukai išsaugomi kartu su skambučio įrašu; siųskite tik informaciją, kurią tinkama saugoti skambučių istorijoje ir žiniatinklio kabliukuose.

Suderinamumas su esamais raginimais

Atvaizdavimas taip pat taikomas esamiems išsaugoto agento ir A/B varianto raginimams, tiesioginėms siunčiamųjų skambučių ir realiojo laiko konfigūracijoms bei raginimams, grąžinamiems per konfigūracijos žiniatinklio kabliukus. Nežinomos {{name}} vietos žymos tampa tuščiu tekstu, net kai nepateikiama jokių variables. Prieš diegdami patikrinkite esamus raginimus, įskaitant išoriškai pateiktus tiesioginius / žiniatinklio kabliukų raginimus, kurių ThunderPhone negali inventorizuoti. Kūrimo priemonės mikrofono ir simuliacijos skambučiams taikomas toks pat numatytasis / tuščias elgesys.