ThunderPhone 2.0 je tu.Všetko zvládnete sami, už od 2 centov/min.Prečítať oznámenie

Developer cookbook

Premenné pre jednotlivé hovory

Prispôsobte uloženého agenta pre každý hovor bez zmeny jeho nasadeného promptu, nástrojov alebo nastavení.

Vložte zástupné symboly do výzvy uloženého agenta a potom pri začatí hovoru zadajte objekt variables. Uložená konfigurácia a história verzií zostanú nezmenené. ThunderPhone vykreslí text pred odoslaním konfigurácie hovoru do hlasového runtime.

Ak nie sú potrebné žiadne hodnoty, variables vynechajte, neposielajte null (odmietnuté s 400).

Zástupné symboly a predvolené hodnoty

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

Názvy rozlišujú veľkosť písmen a riadia sa vzorom [A-Za-z_][A-Za-z0-9_]*. Medzery okolo názvu sú povolené; medzery za znakom | sú súčasťou predvolenej hodnoty a zachovajú sa. {{name|Friend}} použije Friend, keď name chýba alebo má hodnotu null; prázdny reťazec je explicitne zadaná hodnota. Chýbajúce hodnoty bez predvolenej hodnoty sa zmenia na prázdne reťazce a ich názvy sa zobrazia v unresolved_variables. Text medzi dvojitými zloženými zátvorkami, ktorý nie je platným zástupným symbolom, sa odstráni. Text v dvojitých zložených zátvorkách v každej zadanej hodnote sa odstraňuje nezávisle; hodnota nemôže odstrániť okolité texty výzvy ani inú hodnotu. Odstránia sa aj nespárované oddeľovače dvojitých zložených zátvoriek. Príklady JSON vo výzvach nesmú používať {{. Hodnoty sú obyčajný text a nikdy sa nevyhodnocujú ako kód ani sa rekurzívne nerozbaľujú ako šablóny.

Premenné sa môžu zobrazovať aj vo výzvach na potvrdenie, v odchádzajúcich hlasových správach a v texte oznámenia o súhlase, keď sa toto pole odosiela pre telefónny hovor. Agent nemá samostatné pole first_message: úvodné pokyny vložte do výzvy. Existujúce zástupné symboly hlasovej správy {agent_name} a {org_name} naďalej fungujú.

Hodnoty môžu byť reťazce, čísla, booleovské hodnoty alebo null; booleovské hodnoty sa vykreslia ako true a false. Riadiace znaky Unicode (Cc) okrem nového riadka (\n), tabulátora (\t) a návratu vozíka (\r), všetky formátovacie znaky (Cf) a kódové body náhradných párov (Cs) sa odstránia; \r\n sa normalizuje na \n. Každá hodnota je pri vykreslení obmedzená na 2 000 znakov. Zadané reťazce sa pred uložením tiež vyčistia a skráti. Pôvodný objekt sa musí zmestiť do 32 KB JSON v UTF-8; väčšie objekty dostanú 400 pri požiadavkách na hovor alebo reláciu, zatiaľ čo importy kampaní nahlásia neplatné riadky jednotlivo. Polia a vnorené objekty sa ako hodnoty neprijímajú. Kľúče metadát, ktoré nezodpovedajú vzoru (napríklad hlavička CSV s medzerou), sa zachovajú a vrátia, ale nie je možné na ne odkazovať zástupným symbolom.

Odkiaľ pochádzajú hodnoty

Odchádzajúce API

Odošlite variables spolu s agent_id v požiadavke 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"
  }
}

Funguje to aj s predvoleným odchádzajúcim agentom telefónneho čísla alebo s vloženým config.prompt. Kľúč idempotentnosti nemožno opätovne použiť s odlišnými premennými.

CSV kampane

Stĺpce CSV, ktoré neobsahujú telefónne čísla, sú už uložené ako kontaktné premenné. Každé volanie ich teraz používa automaticky. Použite hlavičky, napríklad name, account_id a appointment_slot, aby sa zhodovali s vašimi zástupnými symbolmi. Existujúce mapovanie mena môže skombinovať stĺpce s krstným menom a priezviskom do premennej name.

Webhook dynamickej konfigurácie

V blokujúcej ceste webhooku konfigurácie vráťte uloženého agenta vo vašej organizácii spolu s ľubovoľnými hodnotami pre konkrétne volanie:

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

Kľúče odpovede prepíšu premenné na úrovni požiadavky, zatiaľ čo ostatné kľúče požiadavky zostanú zachované. Hodnota odpovede null vyberie predvolenú hodnotu zástupného symbolu. Zlúčený objekt sa musí tiež zmestiť do 32 KB. Odpovede uloženého agenta prijímajú iba agent_id a variables; ak potrebujete nahradiť výzvu alebo nastavenia, vráťte vloženú konfiguráciu. Odpoveď obsahujúca prompt vždy používa vloženú konfiguráciu: každé agent_id v tejto odpovedi sa ignoruje vrátane metadát s hodnotou null alebo necelým číslom. Vložená výzva musí aj naďalej prejsť bežnou validáciou. Vložené odpovede webhooku môžu obsahovať aj variables. Odpovede webhooku uloženého agenta používajú nasadené A/B rozdelenie agenta pri telefónnych aj widgetových volaniach; premenné sa vykreslia po výbere variantu. Pri prichádzajúcich telefónnych hovoroch použite číslo bez priradeného prichádzajúceho agenta a nakonfigurujte jeho webhook telefónneho čísla alebo organizácie; kľúče widgetu používajú mode="webhook". Prichádzajúce oznámenia systému koncových bodov neposkytujú blokujúce odpovede konfigurácie.

API relácií widgetu a Realtime

POST /v1/widget/session prijíma objekt variables na najvyššej úrovni. Jeho publikovateľný kľúč vyberá uloženého agenta. Kľúče v režime webhooku preposielajú tieto hodnoty do webhooku konfigurácie a zlúčia odpoveď podľa vyššie uvedeného popisu. Widgetové/realtime variables dodané prehliadačom riadi klient, po validácii a vyčistení reťazcov opísaných vyššie sa doslovne preposielajú v web.incoming a kopírujú sa do webhookov dokončenia a histórie volaní. Nepovažujte ich za dôveryhodné údaje identity ani autorizácie.

POST /v1/realtime/sessions prijíma variables spolu s agent_id (alebo vloženým config). Ide o polia API na vytvorenie relácie. Most Realtime WebSocket nepreposiela možnosť variables; zadajte ju priamo do API na vytvorenie relácie. Klienti widgetu musia zahrnúť variables do odoslaného údaja relácie; preposielanie cez SDK nie je súčasťou tejto zmeny API. Testovacie hovory mikrofónu v nástroji Builder a simulované testovacie hovory vyriešia predvolené hodnoty a chýbajúce zástupné symboly, ale nemajú vstup pre premenné konkrétneho volania.

Hodnoty vrátené po hovore

GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete a web.complete obsahujú konečné zlúčené variables a unresolved_variables. Staršie dátové štruktúry dokončenia, ktoré obsahujú data.history, ich obsahujú tiež:

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

Uložte identifikátor CRM alebo úlohy do objektu premenných, aby ste dokončený hovor prepojili späť s jeho zdrojovým záznamom. Tieto polia sa uchovávajú so záznamom hovoru; odosielajte iba informácie vhodné na uchovávanie v histórii volaní a webhookoch.

Kompatibilita existujúcich promptov

Vykresľovanie sa vzťahuje aj na existujúce prompty uložených agentov a variantov A/B, vložené odchádzajúce konfigurácie a konfigurácie v reálnom čase, ako aj na prompty vrátené konfiguračnými webhookmi. Neznáme zástupné symboly {{name}} sa zmenia na prázdny text, aj keď nie sú poskytnuté žiadne variables. Pred nasadením skontrolujte existujúce prompty vrátane externe dodávaných vložených promptov a promptov webhookov, ktoré ThunderPhone nedokáže evidovať. Volania mikrofónu v nástroji Builder a simulačné volania používajú rovnaké predvolené správanie so zadanou hodnotou alebo prázdnym textom.