Skip to main content
A funkcióeszközök lehetővé teszik, hogy AI-ügynökei telefonhívások közben külső API-kat hívjanak meg. Használja őket ügyféladatok lekérdezésére, elérhetőség ellenőrzésére, időpontfoglalásra vagy bármely, a háttérrendszere által támogatott művelet elvégzésére.

Működése

  1. Sémával definiálja az eszközöket (milyen argumentumokat fogad el az eszköz)
  2. Megad egy endpoint konfigurációt (ahol a ThunderPhone meghívja az API-ját) — vagy kihagyja, hogy az eszközhívásokat a szervezete webhookján fogadja
  3. Hívás közben az AI a beszélgetés alapján dönti el, mikor használjon egy eszközt
  4. A ThunderPhone meghívja az endpointját az eszköz argumentumaival
  5. Az API válasza visszakerül az AI-hoz, hogy folytathassa a beszélgetést
A funkcióeszközök a saját API használatára szolgáló megoldást jelentik. A ThunderPhone olyan, platform által kezelt eszközöket is kínál, amelyekhez nincs szükség endpointra: alkalmazáskapcsolatok (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), API-kapcsolatok és MCP-szerverek.

Eszközséma

Minden eszköz ezt a struktúrát követi:

Funkciódefiníció

Endpoint konfiguráció

Az endpoint konfiguráció nem kerül elküldésre az AI-modellnek — azt csak a ThunderPhone használja az eszközhívás végrehajtására.

Két meghívási útvonal

Az, hogy a szervere melyik kérést kapja, attól függ, hogy az eszköz rendelkezik-e endpoint konfigurációval: Mindkét útvonal blokkoló — az AI a mondat közepén vár az eredményre —, és 20 mp időkorláttal rendelkezik. Tartsa gyorsan a kezelőket. A vegyes használat is megfelelő: olyan hívás esetén, amelynek szervezete rendelkezik webhook URL-lel, az endpoint konfigurációval rendelkező eszközök közvetlenül hívódnak meg, a többi pedig a webhookra vált vissza.

Közvetlen végpont-hívások

Amikor az AI-ügynök meghív egy endpoint-tal rendelkező eszközt, a ThunderPhone kérést küld az Ön URL-jére:

Kérésfejlécek

Az endpoint.headers egyéni fejlécei mindig változatlanul szerepelnek, valamint két ThunderPhone-névterű fejléc:
  • X-ThunderPhone-Signature — a pontos kéréstörzs bájtjainak HMAC-SHA256 értéke, az Ön szervezeti webhooktitkával kulcsolva
  • X-ThunderPhone-Call-ID — Az aktuális hívásazonosító
A Content-Type: application/json be van állítva, kivéve, ha az endpoint.headers felülírja — az egyéni Content-Type élvez elsőbbséget.
Az aláírás a szervezetszintű webhooktitokkal van kulcsolva, amely a GET /v1/webhook végpontból származik. Ha az Ön szervezete még soha nem konfigurálta a régi webhookot, nincs titok, és az eszközhívások csak az X-ThunderPhone-Call-ID fejlécet tartalmazzák — egy hiányzó aláírás esetén hibával leálló kezelő elutasítaná őket. Konfigurálja a régi webhookot a titok megszerzéséhez, vagy helyezze el saját megosztott titkát az endpoint.headers mezőben.

Kéréstörzs

POST / PUT / PATCH esetén a törzs csak az eszköz argumentumait tartalmazza (burkoló nélkül), kanonikusan szerializálva (rendezett kulcsok, tömör elválasztók):
GET / DELETE esetén az argumentumok lekérdezési paraméterekként kerülnek elküldésre, a törzs pedig üres — az aláírás ilyenkor az üres bájtsoron kerül kiszámításra. Lásd: Webhook-aláírások ellenőrzése.

Válasz

Adjon vissza egy JSON-választ az eszköz eredményével:
A válasz formázásra kerül, és az AI megkapja a beszélgetés folytatásához. A nem JSON-válaszok {"data": "<text>"} formában vannak becsomagolva; az időtúllépéseket és a kapcsolati hibákat az AI hibaként kapja meg, így az ügynök bocsánatot kérhet és továbbléphet, ahelyett hogy megakadna.

Webhook módú továbbítás

Az endpoint nélküli eszközök a szervezete régi webhook-URL-jére kerülnek továbbításra aláírt telephony.tool (telefonhívások) vagy web.tool (webes hívások) kérésként. A végrehajtás után webhook-végpontokra kézbesített auditértesítésekkel ellentétben ez a kérés maga a végrehajtás — az Ön HTTP-válasza az eszköz eredménye.
A web.tool a from_number / to_number helyett origin_domain mezőt tartalmaz. Az eszköz eredményét JSON-ként adja vissza — ugyanaz a válaszszerződés, mint a közvetlen végpont-hívásoknál. A kérés a szervezeti webhooktitokkal, a nyers törzs alapján van aláírva, mint minden más webhook.
A feliratkozott webhook-végpontok ezen felül nem blokkoló telephony.tool / web.tool értesítést kapnak minden eszköz végrehajtása után (bármelyik útvonal futtatta is), beleértve az eszköz válaszát is — hasznos auditnaplókhoz. Lásd az eseménykatalógust.

Aláírás-ellenőrzés

A közvetlen eszközhívások aláírása ugyanúgy történik, mint a webhookoké:
  • HMAC-SHA256 a kérés törzsének pontos bájtjain (a kanonikus JSON-on — rendezett kulcsokkal, extra szóközök nélkül)
  • Az Ön szervezetének webhooktitkával kulcsolva
  • A GET / DELETE eszközök az üres bájtsorozatot írják alá
A teljes példák — beleértve az üres törzs esetét és a titok hiányára vonatkozó megjegyzést — a Webhook-aláírások ellenőrzése útmutatóban találhatók.

Példa: teljes foglalási folyamat

Íme egy teljes időpontfoglalási rendszerhez tartozó eszközkészlet:

Ajánlott eljárások

A description mező segít az AI-nak megérteni, mikor használja az eszközt. Pontosan írja le, mit végez, és mikor célszerű használni.
Az AI számára érthető hibaüzeneteket adjon vissza: {"error": "No slots available for that date"} általános 500-as hibák helyett.
Csak azt adja vissza, amire az AI-nak szüksége van a beszélgetés folytatásához. A nagy adatcsomagok lassítják a válaszidőt.
Csak akkor jelölje a mezőket required értékűként, ha valóban szükséges. Az AI az eszköz meghívása előtt bekéri a felhasználótól a kötelező információkat.

Kapcsolódó témák

Alkalmazáskapcsolatok

A platform által kezelt eszközök a HubSpothoz, a Salesforce-hoz, a Slackhez, a Google Calendarhoz, a Google Sheetshöz és a Cal.comhoz — nincs szükség végpontra.

MCP-szerverek

Csatlakoztasson MCP-szervert, és engedje, hogy az ügynök meghívja annak eszközeit.

API-kapcsolatok

Újrahasználható REST-integrációk, amelyeket ügynökökhöz csatolhat.

Webhook-aláírások ellenőrzése

Egy ellenőrzési segédfüggvény webhookokhoz és eszközhívásokhoz.