Slik fungerer det
- Du definerer verktøy med et skjema (hvilke argumenter verktøyet godtar)
- Du oppgir en
endpoint-konfigurasjon (der ThunderPhone kaller API-et ditt) — eller utelater den for å motta verktøykall på organisasjonens webhook - Under en samtale avgjør AI-en når den skal bruke et verktøy basert på samtalen
- ThunderPhone kaller endepunktet ditt med verktøyargumentene
- API-svaret ditt mates tilbake til AI-en for å fortsette samtalen
Funksjonsverktøy er alternativet der du bruker ditt eget API. ThunderPhone
leverer også plattformadministrerte verktøy som ikke trenger noe endepunkt:
appkoblinger (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
API-koblinger og
MCP-servere.
Verktøyskjema
Hvert verktøy følger denne strukturen:Funksjonsdefinisjon
Endepunktkonfigurasjon
endpoint-konfigurasjonen sendes ikke til AI-modellen—den brukes bare av ThunderPhone til å utføre verktøykallet.To kallingsveier
Hvilken forespørsel serveren din mottar, avhenger av om verktøyet har etendpoint:
Begge veier er blokkerende — AI-en venter midt i en setning på
resultatet — med en tidsavbruddsgrense på 20 s. Hold handlerne raske. En blanding fungerer fint:
i en samtale der organisasjonen har en webhook-URL, blir verktøy med et
endpoint
kalt direkte, mens resten faller tilbake til webhooken.
Direkte endepunktkall
Når AI-en kaller et verktøy som har etendpoint, sender ThunderPhone
en forespørsel til URL-en din:
Forespørselsheadere
endpoint.headers inkluderes alltid
ordrett, i tillegg til to ThunderPhone-navngitte headere:
X-ThunderPhone-Signature— HMAC-SHA256 av de nøyaktige bytene i forespørselsbrødteksten, med organisasjonens webhook-hemmelighet som nøkkelX-ThunderPhone-Call-ID— ID-en til den gjeldende samtalen
Content-Type: application/json angis med mindre endpoint.headers
overstyrer den — en egendefinert Content-Type har forrang.
Forespørselsbrødtekst
ForPOST / PUT / PATCH inneholder brødteksten kun
verktøyargumentene (ingen innpakning), serialisert kanonisk (sorterte
nøkler, kompakte skilletegn):
GET / DELETE sendes argumentene som spørringsparametere,
og brødteksten er tom — signaturen beregnes da over den tomme
bytestrengen. Se
Verifiser webhook-signaturer.
Svar
Returner et JSON-svar med verktøyresultatet:{"data": "<text>"};
tidsavbrudd og tilkoblingsfeil rapporteres til AI-en som feil, slik
at stemmeagenten kan beklage og gå videre i stedet for å stoppe opp.
Utsending i webhook-modus
Verktøy uten etendpoint sendes til organisasjonens eldre
webhook-URL som en signert telephony.tool-forespørsel (telefonsamtaler)
eller web.tool-forespørsel (nettsamtaler). I motsetning til
revisjonsvarslingene som leveres til webhook-endepunkter
etter kjøring, er denne forespørselen selve kjøringen — HTTP-svaret
ditt er verktøyresultatet.
web.tool inneholder origin_domain i stedet for from_number /
to_number. Svar med verktøyresultatet som JSON — samme svarkontrakt
som for direkte endepunktkall. Forespørselen signeres med
organisasjonens webhook-hemmelighet over den rå brødteksten, som alle
andre webhooks.
Abonnerte webhook-endepunkter mottar i tillegg
et ikke-blokkerende
telephony.tool- / web.tool-varsel etter
at hvert verktøy kjøres (uansett hvilken bane som kjørte det), inkludert
verktøyets svar — nyttig for revisjonsspor. Se
hendelseskatalogen.Signaturverifisering
Direkte verktøykall signeres på samme måte som webhooks:- HMAC-SHA256 over de nøyaktige byteverdiene i forespørselskroppen (den kanoniske JSON-en — sorterte nøkler, ingen ekstra mellomrom)
- Med organisasjonens webhook-hemmelighet som nøkkel
GET- /DELETE-verktøy signerer den tomme byte-strengen
Eksempel: Komplett bestillingsflyt
Her er et sett med verktøy for et komplett system for timebestilling:Beste praksis
Skriv tydelige beskrivelser
Skriv tydelige beskrivelser
Feltet
description hjelper AI-en med å forstå når verktøyet skal brukes. Vær spesifikk om hva det gjør, og når det er passende å bruke det.Håndter feil på en god måte
Håndter feil på en god måte
Returner feilmeldinger som AI-en kan forstå:
{"error": "No slots available for that date"} i stedet for generiske 500-feil.Hold svarene konsise
Hold svarene konsise
Returner bare det AI-en trenger for å fortsette samtalen. Store nyttelaster gir tregere responstider.
Bruk obligatoriske felt med omhu
Bruk obligatoriske felt med omhu
Merk felt som
required bare når det virkelig er nødvendig. AI-en vil be brukeren om obligatorisk informasjon før den kaller verktøyet.Relatert
Appkoblinger
Plattformadministrerte verktøy for HubSpot, Salesforce, Slack, Google
Kalender, Google Sheets og Cal.com — ingen endepunkt kreves.
MCP-servere
Koble til en MCP-server, og la agenten kalle verktøyene dens.
API-koblinger
Gjenbrukbare REST-integrasjoner som du kan koble til agenter.
Bekreft webhook-signaturer
Én bekreftelseshjelper for webhooks og verktøykall.