Променљиве по позиву
Персонализујте сачуваног агента за сваки позив без промене његовог постављеног упита, алата или подешавања.
Ставите резервисана места у упит свог сачуваног агента, а затим наведите објекат variables
при покретању позива. Сачувана конфигурација и историја верзија остају
непромењене. ThunderPhone приказује текст пре слања конфигурације позива
гласовном окружењу за извршавање.
Када вредности нису потребне, изоставите variables; немојте слати null (одбија се са 400).
Резервисана места и подразумеване вредности
You are calling {{name|Friend}} about account {{account_id}}.
The available appointment is {{ appointment_slot }}.Називи разликују велика и мала слова и прате образац [A-Za-z_][A-Za-z0-9_]*. Размаци око
назива су дозвољени; размак после | је део подразумеване вредности и
задржава се. {{name|Friend}} користи Friend када name недостаје или је
null; празан ниска је изричито наведена вредност. Недостајуће вредности без
подразумеване вредности постају празне ниске, а њихови називи се појављују у unresolved_variables.
Текст између двоструких витичастих заграда који није важеће резервисано место се уклања. Текст у двоструким витичастим
заградама унутар сваке наведене вредности уклања се независно; вредност не може уклонити
окружујући текст упита или другу вредност. Неусклађени раздвајачи са двоструким витичастим заградама
такође се уклањају. JSON примери у упитима не смеју користити {{.
Вредности су обичан текст и никада се не извршавају
као код нити се рекурзивно проширују као шаблони.
Променљиве се такође могу појавити у упитима за потврду, одлазним порукама говорне поште
и тексту обавештења о пристанку када се то поље шаље за
телефонски позив. Агент нема засебно поље first_message: уводна
упутства ставите у упит. Постојећа резервисана места за говорну пошту {agent_name} и {org_name}
настављају да раде.
Вредности могу бити ниске, бројеви, логичке вредности или null; логичке вредности се приказују као true
и false. Контролни Unicode (Cc) знакови осим новог реда (\n), табулатора (\t)
и повратка носача (\r), сви форматирајући (Cf) знакови и сурогатне (Cs)
кодне тачке се уклањају; \r\n се нормализује у \n. Свака вредност
је ограничена на 2.000 знакова при приказивању. Достављене ниске се таксама чисте и
скраћују пре складиштења. Оригинални објекат мора стати у 32 KB UTF-8 JSON-а; већи објекти добијају 400
код захтева за позив/сесију, док увози кампања појединачно пријављују неисправне редове. Низови и угнежђени објекти се не
прихватају као вредности. Неодговарајући кључеви метаподатака (на пример, CSV заглавље са
размаком) задржавају се и враћају, али се не могу референцирати резервисаним местом.
Одакле потичу вредности
Одлазни API
Пошаљите variables уз agent_id у захтеву 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"
}
}Ово функционише и са подразумеваним одлазним агентом телефонског броја, као и са уметнутим
config.prompt. Кључ идемпотентности не може се поново користити са различитим променљивама.
CSV кампање
CSV колоне које нису телефонски бројеви већ се чувају као променљиве контакта. Свако позивање
их сада аутоматски користи. Користите заглавља као што су name, account_id и
appointment_slot да бисте их ускладили са својим местодржачима. Постојеће мапирање имена може
да обједини колоне за име и презиме у променљиву name.
Вебхук за динамичку конфигурацију
На путањи блокирајућег вебхука за конфигурацију вратите сачуваног агента у својој организацији и све вредности по позиву:
{"agent_id": 12, "variables": {"name": "Ada", "account_id": "A-17"}}Кључеви одговора замењују променљиве на нивоу захтева, док остали кључеви захтева
остају. Вредност одговора null бира подразумевану вредност местодржача.
Обједињени објекат такође мора да буде мањи од 32 KB. Одговори за сачуваног агента прихватају само
agent_id и variables; вратите уметнуту конфигурацију када треба да
замените упит или подешавања. Одговор који садржи prompt увек користи уметнуту
конфигурацију: сваки agent_id у том одговору се занемарује, укључујући нулту вредност или
метаподатке који нису цели бројеви. Уметнути упит и даље мора да прође уобичајену валидацију.
Уметнути одговори вебхука такође могу да садрже variables. Одговори вебхука за сачуваног агента
користе објављену A/B поделу агента и за телефонске позиве и за позиве виџета;
променљиве се приказују након избора варијанте. За долазне телефонске позиве користите број без додељеног долазног
агента и конфигуришите његов вебхук за телефонски број или организацију; кључеви виџета користе
mode="webhook". Долазна обавештења система крајњих тачака не обезбеђују блокирајуће
одговоре за конфигурацију.
API-ји за сесије виџета и Realtime-а
POST /v1/widget/session прихвата објекат variables на највишем нивоу. Његов кључ
за објављивање бира сачуваног агента. Кључеви у режиму вебхука прослеђују ове вредности вебхуку
за конфигурацију и обједињују одговор како је горе описано.
Прегледачем достављене variables за виџет/Realtime контролише клијент, прослеђују се
без измена у web.incoming након горе описане валидације и чишћења стрингова
и понављају се у вебхуковима по завршетку и историји позива. Немојте их сматрати
поузданим подацима за идентитет или ауторизацију.
POST /v1/realtime/sessions прихвата variables уз agent_id (или уметнути
config). Ово су поља API-ја за креирање сесије. WebSocket
премосник за Realtime не прослеђује опцију променљивих; доставите је директно у
API за креирање сесије. Клијенти виџета морају да укључе variables у послати
терет сесије; прослеђивање путем SDK-а није део ове измене API-ја. Позиви преко микрофона у Builder-у и симулирани
тестни позиви разрешавају подразумеване вредности и недостајуће местодржаче, али немају унос променљивих по позиву.
Вредности враћене након позива
GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete и web.complete укључују
коначне обједињене variables и unresolved_variables. Застарели терети по завршетку
који укључују data.history такође их садрже:
{
"variables": {"name": "Ada", "account_id": "A-17"},
"unresolved_variables": ["appointment_slot"]
}Сачувајте идентификатор свог CRM-а или задатка у објекту променљивих да бисте довршени позив повезали са његовим изворним записом. Ова поља се чувају уз запис позива; шаљите само информације које је примерено чувати у историји позива и вебхуковима.
Компатибилност са постојећим упитима
Приказивање се примењује и на постојеће упите сачуваних агената и A/B варијанти, уметнуте одлазне конфигурације и конфигурације у реалном времену, као и на упите враћене путем webhook-ова за конфигурацију. Непознати чувари места {{name}} постају празан текст, чак и када није наведено variables. Проверите постојеће упите пре увођења, укључујући спољно достављене уметнуте/webhook упите које ThunderPhone не може да евидентира. Позиви преко микрофона у Builder-у и симулациони позиви примењују исто подразумевано/празно понашање.