Så fungerar det
- Du definierar verktyg med ett schema (vilka argument verktyget accepterar)
- Du anger en
endpoint-konfiguration (var ThunderPhone anropar ditt API) — eller utelämnar den för att ta emot verktygsanrop på organisationens webhook - Under ett samtal avgör AI:n när ett verktyg ska användas baserat på konversationen
- ThunderPhone anropar din endpoint med verktygsargumenten
- Ditt API-svar skickas tillbaka till AI:n för att fortsätta konversationen
Funktionsverktyg är alternativet där du använder ditt eget API. ThunderPhone
innehåller även plattformshanterade verktyg som inte kräver någon endpoint:
appanslutningar (HubSpot, Salesforce, Slack,
Google Calendar, Google Sheets, Cal.com),
API-anslutningar och
MCP-servrar.
Verktygsschema
Varje verktyg följer den här strukturen:Funktionsdefinition
Endpoint-konfiguration
endpoint-konfigurationen skickas inte till AI-modellen — den används endast av ThunderPhone för att utföra verktygsanropet.Två anropsvägar
Vilken begäran din server tar emot beror på om verktyget har enendpoint:
Båda vägarna är blockerande — AI:n väntar mitt i en mening på
resultatet — med en timeout på 20 s. Håll hanterare snabba. Det går
bra att kombinera: i ett samtal vars organisation har en webhook-URL
anropas verktyg med en
endpoint direkt, medan övriga använder
webhooken som reserv.
Direkta endpointanrop
När AI:n anropar ett verktyg som har enendpoint skickar ThunderPhone
en begäran till din URL:
Begärandehuvuden
endpoint.headers inkluderas alltid
ordagrant, plus två ThunderPhone-namnområdesindelade huvuden:
X-ThunderPhone-Signature— HMAC-SHA256 av de exakta bytevärdena i begärandetexten, med din organisations webhook-hemlighet som nyckelX-ThunderPhone-Call-ID— ID:t för det aktuella samtalet
Content-Type: application/json anges om inte din endpoint.headers
åsidosätter det — en anpassad Content-Type gäller.
Begärandetext
FörPOST / PUT / PATCH innehåller texten endast
verktygsargumenten (utan omslag), serialiserade kanoniskt (sorterade
nycklar, kompakta avgränsare):
GET / DELETE skickas argumenten som frågeparametrar
och texten är tom — signaturen beräknas då över den tomma
bytesträngen. Se
Verifiera webhook-signaturer.
Svar
Returnera ett JSON-svar med verktygsresultatet:{"data": "<text>"};
tidsgränser och anslutningsfel rapporteras till AI:n som fel, så att
röstagenten kan be om ursäkt och gå vidare i stället för att fastna.
Utskick i webhook-läge
Verktyg utan enendpoint skickas till organisationens äldre
webhook-URL som en signerad telephony.tool-begäran (telefonsamtal)
eller web.tool-begäran (webbsamtal). Till skillnad från
granskningsnotiserna som levereras till
webhook-endpoints efter körning är denna begäran själva körningen —
ditt HTTP-svar är verktygsresultatet.
web.tool innehåller origin_domain i stället för from_number /
to_number. Svara med verktygsresultatet som JSON — samma
svarskontrakt som för direkta endpointanrop. Begäran signeras med
organisationens webhook-hemlighet över den råa texten, precis som alla
andra webhooks.
Prenumererande webhook-endpoints får dessutom
en icke-blockerande
telephony.tool / web.tool-notis efter
varje verktygskörning (oavsett vilken väg som körde den), inklusive
verktygets svar — användbart för granskningsloggar. Se
händelsekatalogen.Signaturverifiering
Direkta verktygsanrop signeras på samma sätt som webhooks:- HMAC-SHA256 över de exakta byte i begärandetexten (den kanoniska JSON-strukturen — sorterade nycklar, inga extra blanksteg)
- Nycklad med organisationens webhook-hemlighet
GET- /DELETE-verktyg signerar den tomma bytesträngen
Exempel: Komplett bokningsflöde
Här är en uppsättning verktyg för ett komplett system för tidsbokning:Bästa praxis
Skriv tydliga beskrivningar
Skriv tydliga beskrivningar
Fältet
description hjälper AI:n att förstå när verktyget ska användas. Var specifik med vad det gör och när det är lämpligt.Hantera fel på ett smidigt sätt
Hantera fel på ett smidigt sätt
Returnera felmeddelanden som AI:n kan förstå:
{"error": "No slots available for that date"} i stället för generella 500-fel.Håll svaren kortfattade
Håll svaren kortfattade
Returnera endast det AI:n behöver för att fortsätta samtalet. Stora nyttolaster förlänger svarstiderna.
Använd obligatoriska fält med eftertanke
Använd obligatoriska fält med eftertanke
Markera fält som
required endast när det verkligen behövs. AI:n ber användaren om obligatorisk information innan verktyget anropas.Relaterat
Appanslutningar
Plattformshanterade verktyg för HubSpot, Salesforce, Slack, Google
Calendar, Google Sheets och Cal.com — ingen endpoint krävs.
MCP-servrar
Anslut en MCP-server och låt agenten anropa dess verktyg.
API-anslutningar
Återanvändbara REST-integrationer som du kan ansluta till agenter.
Verifiera webhook-signaturer
En verifieringshjälpare för webhooks och verktygsanrop.