ThunderPhone 2.0 on nüüd saadaval.Iseteenindus alates 2 sendist minutis.Loe uudist

Developer cookbook

Kõnepõhised muutujad

Isikupärasta salvestatud häälagent iga kõne jaoks, muutmata selle juurutatud prompti, tööriistu ega seadeid.

Paiguta kohatäited oma salvestatud häälagendi viipa, seejärel määra kõne alustamisel objekt variables. Salvestatud konfiguratsioon ja versiooniajalugu jäävad muutmata. ThunderPhone renderdab teksti enne kõne konfiguratsiooni häälekäitusajale saatmist.

Kui väärtusi pole vaja, jäta variables välja; ära saada null (lükatakse tagasi koodiga 400).

Kohatäited ja vaikeväärtused

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

Nimed on tõstutundlikud ja järgivad mustrit [A-Za-z_][A-Za-z0-9_]*. Nime ümber olevad tühikud on lubatud; tühik pärast märki | on vaikeväärtuse osa ja säilitatakse. {{name|Friend}} kasutab väärtust Friend, kui name puudub või on null; tühi string on selgesõnaliselt määratud väärtus. Ilma vaikeväärtuseta puuduvad väärtused muutuvad tühjadeks stringideks ja nende nimed kuvatakse väljal unresolved_variables. Topeltsulgude vahel olev tekst, mis ei ole kehtiv kohatäide, eemaldatakse. Iga määratud väärtuse sees olev topeltsulgudes tekst eemaldatakse iseseisvalt; väärtus ei saa eemaldada ümbritsevat viibateksti ega teist väärtust. Eemaldatakse ka paarita topeltsulgude eraldajad. Viipades olevates JSON-i näidetes ei tohi kasutada {{. Väärtused on lihttekst ja neid ei käivitata kunagi koodina ega laiendata rekursiivselt mallidena.

Muutujad võivad esineda ka kinnituse viipades, väljaminevates kõneposti sõnumites ja nõusolekuteate tekstis, kui see väli telefonikõne jaoks saadetakse. Häälagendil ei ole eraldi välja first_message: lisa selle avamisjuhised viipa. Olemasolevad kõneposti kohatäited {agent_name} ja {org_name} töötavad edasi.

Väärtused võivad olla stringid, arvud, tõeväärtused või null; tõeväärtused renderdatakse kujul true ja false. Unicode'i juhtmärgid (Cc) peale reavahetuse (\n), tabeldusmärgi (\t) ja reavahetuse (\r), kõik vormindusmärgid (Cf) ning asenduskoodipunktid (Cs) eemaldatakse; \r\n normaliseeritakse väärtuseks \n. Iga väärtus on renderdamisel piiratud 2 000 märgiga. Määratud stringid puhastatakse ja kärbitakse samuti enne salvestamist. Algne objekt peab mahtuma 32 KB UTF-8 JSON-i; suuremad objektid saavad kõne/seansi päringutes vastuseks 400, samas kui kampaaniate importimisel teatatakse vigastest ridadest eraldi. Massiive ja pesastatud objekte ei aktsepteerita väärtustena. Mittevastavad metaandmete võtmed (näiteks tühikuga CSV-päis) säilitatakse ja tagastatakse, kuid neile ei saa kohatäitega viidata.

Kust väärtused pärinevad

Väljamineva kõne API

Saada variables koos agent_id-ga päringus 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"
  }
}

See toimib ka telefoninumbri vaikimisi väljaminevate kõnede agendiga või tekstisisese config.prompt-iga. Idempotentsusvõtit ei saa kasutada uuesti erinevate muutujatega.

Kampaania CSV

Mitte-telefoninumbrite CSV-veerud salvestatakse juba kontaktimuutujatena. Iga valimine kasutab neid nüüd automaatselt. Kasuta kohatäidetele vastavaid päiseid, näiteks name, account_id ja appointment_slot. Olemasolev nime vastendus saab ühendada ees- ja perekonnanime veerud muutujaks name.

Dünaamilise konfiguratsiooni webhook

Blokeerival konfiguratsiooni webhooki teel tagasta oma organisatsiooni salvestatud agent koos kõnepõhiste väärtustega:

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

Vastuse võtmed kirjutavad üle päringutaseme muutujad, samal ajal kui muud päringu võtmed jäävad alles. Vastuse väärtus null valib kohatäite vaikimisi väärtuse. Ühendatud objekt peab samuti mahtuma 32 KB sisse. Salvestatud agendi vastused aktsepteerivad ainult agent_id ja variables; tagasta tekstisisene konfiguratsioon, kui pead asendama viipa või seaded. Vastus, mis sisaldab prompt, kasutab alati tekstisisest konfiguratsiooni: selles vastuses olevat agent_id eiratakse, sealhulgas nulli või mitte-täisarvuliste metaandmete korral. Tekstisisene viip peab endiselt läbima tavapärase valideerimise. Tekstisisesed webhooki vastused võivad samuti sisaldada variables. Salvestatud agendi webhooki vastused kasutavad agendi juurutatud A/B-jaotust nii telefoni- kui vidinakõnede puhul; muutujad renderdatakse pärast variandi valimist. Sissetulevate telefonikõnede puhul kasuta numbrit, millele pole määratud sissetulevate kõnede agenti, ning seadista selle telefoninumbri või organisatsiooni webhook; vidina võtmed kasutavad mode="webhook". Lõpp-punkti süsteemi sissetulevad teavitused ei paku blokeeriva konfiguratsiooni vastuseid.

Vidina ja Realtime'i seansi API-d

POST /v1/widget/session aktsepteerib tipptasemel objekti variables. Selle avaldatav võti valib salvestatud agendi. Webhooki režiimi võtmed edastavad need väärtused konfiguratsiooni webhookile ja ühendavad vastuse eespool kirjeldatud viisil. Brauseri saadetud vidina/Realtime'i variables on kliendi kontrollitavad, edastatakse pärast eespool kirjeldatud valideerimist ja stringide puhastamist muutmata kujul sündmuses web.incoming ning kajastatakse lõpetamise webhookides ja kõneajaloos. Ära käsitle neid usaldusväärsete identiteedi- või autoriseerimisandmetena.

POST /v1/realtime/sessions aktsepteerib variables koos agent_id-ga (või tekstisisese config-iga). Need on seansi loomise API väljad. Realtime'i WebSocketi sild ei edasta muutujate valikut; edasta see otse seansi loomise API-le. Vidina kliendid peavad lisama variables postitatud seansi koormasse; SDK edastamine ei kuulu selle API muudatuse alla. Builderi mikrofoni- ja simuleeritud testkõned lahendavad vaikimisi väärtused ja puuduvad kohatäited, kuid neil puudub kõnepõhiste muutujate sisend.

Pärast kõnet tagastatavad väärtused

GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete ja web.complete sisaldavad lõplikke ühendatud variables ja unresolved_variables. Pärand-lõpetamise koormad, mis sisaldavad data.history, sisaldavad neid samuti:

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

Salvesta oma CRM-i või ülesande identifikaator muutujate objekti, et ühendada lõpetatud kõne tagasi selle lähtekirjega. Need väljad säilitatakse koos kõnekirjega; saada ainult teavet, mida on sobiv säilitada kõneajaloos ja webhookides.

Ühilduvus olemasolevate promptidega

Renderdamist rakendatakse ka olemasolevatele salvestatud agentide ja A/B-variantide promptidele, reasisestele väljaminevatele ja reaalajas konfiguratsioonidele ning konfiguratsiooni veebikonksude tagastatud promptidele. Tundmatud {{name}} kohatäited muutuvad tühjaks tekstiks isegi siis, kui variables pole määratud. Kontrolli enne juurutamist olemasolevaid prompte, sealhulgas väliselt edastatud reasiseseid/veebikonksu prompte, mida ThunderPhone ei saa inventeerida. Builderi mikrofoni- ja simulatsioonikõnedes rakendatakse sama vaike-/tühikäitumist.