Variabler per samtale
Tilpass en lagret agent for hver samtale uten å endre den distribuerte ledeteksten, verktøyene eller innstillingene.
Plasser plassholdere i prompten til den lagrede stemmeagenten, og oppgi deretter et variables-objekt når du starter en samtale. Den lagrede konfigurasjonen og versjonshistorikken forblir uendret. ThunderPhone gjengir teksten før samtalekonfigurasjonen sendes til stemmekjøretiden.
Når ingen verdier trengs, utelat variables; ikke send null (avvises med 400).
Plassholdere og standardverdier
You are calling {{name|Friend}} about account {{account_id}}.
The available appointment is {{ appointment_slot }}.Navn skiller mellom store og små bokstaver og følger [A-Za-z_][A-Za-z0-9_]*. Mellomrom rundt
navnet er tillatt; mellomrom etter | er en del av standardverdien og
beholdes. {{name|Friend}} bruker Friend når name mangler eller er
null; en tom streng er en eksplisitt oppgitt verdi. Manglende verdier uten
standardverdi blir tomme strenger, og navnene deres vises i unresolved_variables.
Tekst mellom doble krøllparenteser som ikke er en gyldig plassholder, fjernes. Tekst med doble krøllparenteser
i hver oppgitte verdi fjernes uavhengig; en verdi kan ikke fjerne
omkringliggende prompttekst eller en annen verdi. Umatchede skilletegn med doble krøllparenteser
fjernes også. JSON-eksempler i prompter må ikke bruke {{.
Verdier er ren tekst og evalueres aldri
som kode eller utvides rekursivt som maler.
Variabler kan også vises i bekreftelsesprompter, utgående telefonsvarermeldinger
og teksten i samtykkeerklæringen når dette feltet sendes for en
telefonsamtale. Agenten har ikke et eget first_message-felt: legg inn
åpningsinstruksjonene i prompten. Eksisterende telefonsvarersplassholdere {agent_name} og {org_name}
fortsetter å fungere.
Verdier kan være strenger, tall, boolske verdier eller null; boolske verdier gjengis som true
og false. Unicode-kontrolltegn (Cc) unntatt linjeskift (\n), tabulator (\t)
og vognretur (\r), alle formateringstegn (Cf) og surrogatkodepunkter (Cs)
fjernes; \r\n normaliseres til \n. Hver verdi
er begrenset til 2 000 tegn når den gjengis. Oppgitte strenger renses og
avkortes også før lagring. Det opprinnelige objektet må få plass i 32 KB med
UTF-8-JSON; større objekter får 400 i samtale-/øktforespørsler, mens
kampanjeimporter rapporterer ugyldige rader enkeltvis. Matriser og nestede objekter godtas ikke
som verdier. Metadatanøkler som ikke samsvarer (for eksempel en CSV-overskrift med et
mellomrom) beholdes og gjengis, men kan ikke refereres av en plassholder.
Hvor verdiene kommer fra
Utgå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"
}
}Dette fungerer også med telefonnummerets standard agent for utgående samtaler, eller med en innebygd
config.prompt. En idempotensnøkkel kan ikke gjenbrukes med andre variabler.
Kampanje-CSV
CSV-kolonner som ikke er telefonnumre, lagres allerede som kontaktvariabler. Hver oppringing
bruker dem nå automatisk. Bruk overskrifter som name, account_id og
appointment_slot for å samsvare med plassholderne dine. Den eksisterende navnekoblingen kan
kombinere kolonner for fornavn og etternavn i variabelen name.
Webhook for dynamisk konfigurasjon
I banen for den blokkerende konfigurasjonswebhooken returnerer du en lagret agent i organisasjonen din samt eventuelle verdier per samtale:
{"agent_id": 12, "variables": {"name": "Ada", "account_id": "A-17"}}Svarnøklene overskriver variabler på forespørselsnivå, mens andre forespørselsnøkler
beholdes. En svarverdi på null velger plassholderens standardverdi.
Det sammenslåtte objektet må også være innenfor 32 KB. Svar for lagrede agenter godtar kun
agent_id og variables; returner en innebygd konfigurasjon når du trenger å
erstatte prompten eller innstillingene. Et svar som inneholder prompt, bruker alltid innebygd
konfigurasjon: enhver agent_id i det svaret ignoreres, inkludert null eller
metadata som ikke er heltall. Den innebygde prompten må fortsatt bestå vanlig validering.
Innebygde webhook-svar kan også inkludere variables. Webhook-svar for lagrede agenter
bruker agentens utrullede A/B-fordeling for både telefon- og widget-samtaler;
variabler gjengis etter valg av variant. For innkommende telefonsamtaler bruker du et nummer uten en tilordnet innkommende
agent og konfigurerer webhooken for telefonnummeret eller organisasjonen; widget-nøkler bruker
mode="webhook". Innkommende varsler fra endepunktsystemet leverer ikke blokkerende
konfigurasjonssvar.
API-er for widget- og Realtime-økter
POST /v1/widget/session godtar et variables-objekt på øverste nivå. Den publiserbare
nøkkelen velger den lagrede agenten. Nøkler i webhook-modus videresender disse verdiene til
konfigurasjonswebhooken og slår sammen svaret som beskrevet ovenfor.
Widget-/realtime-variables som leveres av nettleseren, styres av klienten, videresendes
ordrett i web.incoming etter valideringen og oppryddingen av strenger som er beskrevet
ovenfor, og gjentas i webhooker for fullføring og samtalehistorikk. Ikke behandle dem
som pålitelige identitets- eller autorisasjonsdata.
POST /v1/realtime/sessions godtar variables sammen med agent_id (eller innebygd
config). Dette er felt for API-et som oppretter økter. Realtime WebSocket-
broen videresender ikke et variabelalternativ; oppgi det direkte til
API-et som oppretter økten. Widget-klienter må inkludere variables i den postede
øktnyttelasten; videresending via SDK er ikke en del av denne API-endringen. Byggerens mikrofon- og simulerte
testanrop løser standardverdier og manglende plassholdere, men har ingen inndata for variabler per samtale.
Verdier som returneres etter samtalen
GET /v1/calls, GET /v1/calls/{call_id}, telephony.complete og web.complete inkluderer de
endelige sammenslåtte variables og unresolved_variables. Eldre nyttelaster for fullføring
som inkluderer data.history, inkluderer dem også:
{
"variables": {"name": "Ada", "account_id": "A-17"},
"unresolved_variables": ["appointment_slot"]
}Lagre CRM- eller oppgaveidentifikatoren din i variabelobjektet for å koble den fullførte samtalen tilbake til kilderegistreringen. Disse feltene beholdes sammen med samtaleregistreringen; send bare informasjon som er egnet for lagring i samtalehistorikk og webhooker.
Kompatibilitet med eksisterende prompter
Rendering gjelder også for eksisterende lagrede agent- og A/B-variantprompter, innebygde
utgående konfigurasjoner og sanntidskonfigurasjoner, samt prompter returnert av
konfigurasjonswebhooks. Ukjente {{name}}-plassholdere blir til tom tekst, også når ingen
variables oppgis. Kontroller eksisterende prompter før utrulling, inkludert
eksternt leverte innebygde prompter og webhook-prompter som ThunderPhone ikke kan kartlegge.
Mikrofon- og simuleringsanrop i Builder bruker samme standard-/tom-atferd.