Variabler pr. opkald
Tilpas en gemt agent til hvert opkald uden at ændre dens implementerede prompt, værktøjer eller indstillinger.
Indsæt pladsholdere i din gemte agents prompt, og angiv derefter et variables-objekt, når du starter et opkald. Den gemte konfiguration og versionshistorik forbliver uændret. ThunderPhone gengiver teksten, før opkaldskonfigurationen sendes til stemme-runtime.
Når der ikke er behov for værdier, skal du udelade variables og ikke sende null (afvises med 400).
Pladsholdere og standardværdier
You are calling {{name|Friend}} about account {{account_id}}.
The available appointment is {{ appointment_slot }}.Navne skelner mellem store og små bogstaver og følger [A-Za-z_][A-Za-z0-9_]*. Mellemrum omkring
navnet er tilladt; mellemrum efter | er en del af standardværdien og
bevares. {{name|Friend}} bruger Friend, når name mangler eller er
null; en tom streng er en eksplicit angivet værdi. Manglende værdier uden
en standardværdi bliver til tomme strenge, og deres navne vises i unresolved_variables.
Tekst mellem dobbelte krøllede parenteser, der ikke er en gyldig pladsholder, fjernes. Tekst med dobbelte krøllede
parenteser i hver angivet værdi fjernes uafhængigt; en værdi kan ikke fjerne
omgivende prompttekst eller en anden værdi. Umatchede afgrænsere med dobbelte krøllede parenteser
fjernes også. JSON-eksempler i prompter må ikke bruge {{.
Værdier er ren tekst og evalueres aldrig
som kode eller udvides rekursivt som skabeloner.
Variabler kan også forekomme i bekræftelsesprompter, udgående voicemail-
beskeder og teksten til samtykkeerklæringen, når dette felt sendes for et
opkald. Agenten har ikke et separat first_message-felt: angiv dens indledende
instruktioner i prompten. Eksisterende voicemail-pladsholdere {agent_name} og {org_name}
fungerer fortsat.
Værdier kan være strenge, tal, booleske værdier eller null; booleske værdier gengives som true
og false. Unicode-kontroltegn (Cc) undtagen linjeskift (\n), tabulator (\t)
og vognretur (\r), alle formattegn (Cf) og surrogatkodepunkter (Cs)
fjernes; \r\n normaliseres til \n. Hver værdi
er begrænset til 2.000 tegn ved gengivelse. Angivne strenge renses og
afkortes også før lagring. Det oprindelige objekt skal kunne være inden for 32 KB UTF-8-JSON;
større objekter modtager 400 ved opkalds- eller sessionsanmodninger, mens
kampagneimporter rapporterer ugyldige rækker enkeltvis. Arrays og indlejrede objekter accepteres ikke
som værdier. Metadata-nøgler, der ikke matcher (for eksempel en CSV-overskrift med et
mellemrum), bevares og gentages, men kan ikke refereres af en pladsholder.
Hvor værdier kommer fra
Udgående API
Send variables sammen med agent_id på 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"
}
}Det fungerer også med telefonnummerets standardagent for udgående opkald eller med en indlejret
config.prompt. En idempotensnøgle kan ikke genbruges med forskellige variabler.
Kampagne-CSV
CSV-kolonner, der ikke er telefonnumre, gemmes allerede som kontaktvariabler. Hvert opkaldsforsøg
bruger dem nu automatisk. Brug overskrifter som name, account_id og
appointment_slot til at matche dine pladsholdere. Den eksisterende navnekortlægning kan
kombinere kolonner med fornavn og efternavn til variablen name.
Webhook til dynamisk konfiguration
På stien for den blokerende konfigurationswebhook skal du returnere en gemt agent i din organisation samt eventuelle værdier pr. opkald:
{"agent_id": 12, "variables": {"name": "Ada", "account_id": "A-17"}}Svarnøglerne overskriver variabler på anmodningsniveau, mens andre anmodnings-
nøgler bevares. En svarværdi på null vælger pladsholderens standardværdi.
Det flettede objekt må heller ikke overstige 32 KB. Svar for gemte agenter accepterer kun
agent_id og variables; returner en indlejret konfiguration, når du skal
erstatte prompten eller indstillingerne. Et svar, der indeholder prompt, bruger altid indlejret
konfiguration: ethvert agent_id i det svar ignoreres, herunder null eller
metadata, der ikke er heltal. Den indlejrede prompt skal stadig bestå den normale validering.
Indlejrede webhooksvar kan også indeholde variables. Webhooksvar for gemte agenter
bruger agentens implementerede A/B-opdeling på både telefon- og widgetopkald;
variabler gengives efter valg af variant. Ved indgående telefonopkald skal du bruge et nummer uden tildelt indgående
agent og konfigurere dets webhook for telefonnummeret eller organisationen; widgetnøgler bruger
mode="webhook". Indgående meddelelser fra endpointsystemet leverer ikke blokerende
konfigurationssvar.
API'er til widget- og Realtime-sessioner
POST /v1/widget/session accepterer et variables-objekt på øverste niveau. Dets publicerbare
nøgle vælger den gemte agent. Nøgler i webhooktilstand videresender disse værdier til
konfigurationswebhookpen og fletter svaret som beskrevet ovenfor.
Widget-/realtime-variables, der leveres af browseren, styres af klienten, videresendes
ordret i web.incoming efter valideringen og strengoprydningen beskrevet
ovenfor og gentages i webhookpe for fuldførelse og opkaldshistorik. Behandl dem ikke
som betroede data til identitet eller autorisation.
POST /v1/realtime/sessions accepterer variables sammen med agent_id (eller indlejret
config). Dette er felter i API'et til oprettelse af sessioner. Realtime WebSocket-
broen videresender ikke en variabelindstilling; angiv den direkte til
API'et til oprettelse af sessioner. Widgetklienter skal inkludere variables i den sendte
sessionsnyttelast; videresendelse fra SDK'et er ikke en del af denne API-ændring. Mikrofonopkald i Builder og simulerede
testopkald løser standardværdier og manglende pladsholdere, men har ingen input til variabler pr. opkald.
Værdier returneret efter opkaldet
GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete og web.complete indeholder de
endelige flettede variables og unresolved_variables. Ældre nyttelaster for fuldførelse,
der indeholder data.history, inkluderer dem også:
{
"variables": {"name": "Ada", "account_id": "A-17"},
"unresolved_variables": ["appointment_slot"]
}Gem din CRM- eller opgaveidentifikator i variabelobjektet for at knytte det afsluttede opkald tilbage til dets kilderegistrering. Disse felter bevares sammen med opkaldsregistreringen; send kun oplysninger, der er egnede til at blive bevaret i opkaldshistorik og webhookpe.
Kompatibilitet med eksisterende prompter
Rendering gælder også for eksisterende gemte agent- og A/B-variantprompter, integrerede
udgående konfigurationer og realtidskonfigurationer samt prompter, der returneres af
konfigurationswebhooks. Ukendte {{name}}-pladsholdere bliver til tom tekst, også når der ikke
angives variables. Gennemgå eksisterende prompter før udrulning, herunder
eksternt leverede integrerede webhook-prompter, som ThunderPhone ikke kan registrere.
Builder-mikrofon- og simuleringsopkald anvender den samme standard-/tom-adfærd.