Skip to main content
Funktiotyökalujen avulla AI-agenttisi voivat kutsua ulkoisia API-rajapintoja puheluiden aikana. Käytä niitä asiakastietojen hakemiseen, saatavuuden tarkistamiseen, tapaamisten varaamiseen tai mihin tahansa toimintoon, jota taustajärjestelmäsi tukee.

Näin se toimii

  1. Määrität työkalut skeemalla (mitä argumentteja työkalu hyväksyy)
  2. Määrität endpoint-kokoonpanon (mihin ThunderPhone kutsuu API-rajapintaasi) — tai jätät sen pois vastaanottaaksesi työkalukutsut organisaatiosi webhookissa
  3. Puhelun aikana AI päättää keskustelun perusteella, milloin työkalua käytetään
  4. ThunderPhone kutsuu päätepistettäsi työkalun argumenteilla
  5. API-vastauksesi välitetään takaisin AI:lle keskustelun jatkamiseksi
Funktiotyökalut ovat tapa käyttää omaa API-rajapintaasi. ThunderPhone tarjoaa myös alustahallinnoituja työkaluja, jotka eivät tarvitse päätepistettä: sovellusintegraatiot (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), API-integraatiot ja MCP-palvelimet.

Työkalun skeema

Jokainen työkalu noudattaa tätä rakennetta:

Funktion määritelmä

Päätepisteen kokoonpano

endpoint-kokoonpanoa ei lähetetä AI-mallille — ThunderPhone käyttää sitä vain työkalukutsun suorittamiseen.

Kaksi kutsupolkua

Palvelimesi vastaanottama pyyntö riippuu siitä, onko työkalulla endpoint: Molemmat polut ovat synkronisia — AI odottaa tulosta kesken lauseen — ja niiden aikakatkaisu on 20 s. Pidä käsittelijät nopeina. Voit käyttää molempia: puhelussa, jonka organisaatiolla on webhook-URL, työkalut, joilla on endpoint, kutsutaan suoraan ja muut palaavat webhookiin.

Suorat päätepistekutsut

Kun tekoäly kutsuu työkalua, jolla on endpoint, ThunderPhone lähettää pyynnön URL-osoitteeseesi:

Pyyntöotsakkeet

Mukautetut otsakkeet kohdasta endpoint.headers sisällytetään aina sellaisinaan sekä kaksi ThunderPhone-nimiavaruuteen kuuluvaa otsaketta:
  • X-ThunderPhone-Signature — HMAC-SHA256 pyynnön tarkasta runkodatan tavujonosta käyttäen avaimena organisaatiosi webhook-salaisuutta
  • X-ThunderPhone-Call-ID — Nykyisen puhelun tunnus
Content-Type: application/json asetetaan, ellei endpoint.headers ohita sitä — mukautettu Content-Type on ensisijainen.
Allekirjoituksessa käytetään organisaatiotason webhook-salaisuutta, joka haetaan osoitteesta GET /v1/webhook. Jos organisaatiosi ei ole koskaan määrittänyt vanhaa webhookia, salaista avainta ei ole, ja työkalukutsut sisältävät vain X-ThunderPhone-Call-ID-otsakkeen — käsittelijä, joka epäonnistuu puuttuvan allekirjoituksen vuoksi, hylkäisi ne. Määritä joko vanha webhook saadaksesi salaisen avaimen tai lisää oma jaettu salainen avain kohtaan endpoint.headers.

Pyyntödata

Kohdissa POST / PUT / PATCH runko sisältää vain työkalun argumentit (ilman käärettä), kanonisesti sarjoitettuna (avaimet lajiteltuina, tiiviit erottimet):
Kohdissa GET / DELETE argumentit lähetetään kyselyparametreina ja runko on tyhjä — allekirjoitus lasketaan tällöin tyhjälle tavujonolle. Katso Webhook-allekirjoitusten vahvistaminen.

Vastaus

Palauta JSON-vastaus, joka sisältää työkalun tuloksen:
Vastaus muotoillaan ja annetaan tekoälylle keskustelun jatkamista varten. Muut kuin JSON-vastaukset kääritään muotoon {"data": "<text>"}; aikakatkaisuista ja yhteysvirheistä ilmoitetaan tekoälylle virheinä, jotta agentti voi pahoitella ja jatkaa sen sijaan, että se jäisi odottamaan.

Webhook-tilan reititys

Työkalut, joilla ei ole endpoint-määrittelyä, reititetään organisaatiosi vanhaan webhook-URL-osoitteeseen allekirjoitettuna telephony.tool- (puhelut) tai web.tool-pyyntönä (verkkopuhelut). Toisin kuin auditointi-ilmoitukset, jotka toimitetaan webhook-päätepisteisiin suorituksen jälkeen, tämä pyyntö on suoritus — HTTP-vastauksesi on työkalun tulos.
web.tool sisältää origin_domain-kentän kenttien from_number / to_number sijaan. Vastaa työkalun tuloksella JSON-muodossa — sama vastaussopimus kuin suorissa päätepistekutsuissa. Pyyntö allekirjoitetaan organisaation webhook-salaisuudella raa’an rungon perusteella, kuten jokainen muukin webhook.
Tilatut webhook-päätepisteet vastaanottavat lisäksi ei-estävän telephony.tool / web.tool ilmoituksen jokaisen työkalusuorituksen jälkeen (riippumatta siitä, mitä reittiä se suoritettiin), mukaan lukien työkalun vastauksen — hyödyllistä auditointijälkiä varten. Katso tapahtumaluettelo.

Allekirjoituksen vahvistus

Suorat työkalukutsut allekirjoitetaan samalla tavalla kuin webhookit:
  • HMAC-SHA256 tarkkojen pyynnön rungon tavujen yli (kanoninen JSON — lajitellut avaimet, ei ylimääräisiä välilyöntejä)
  • Avaimena organisaatiosi webhook-salaisuus
  • GET- / DELETE-työkalut allekirjoittavat tyhjän tavumerkkijonon
Täydelliset ohjeet — mukaan lukien tyhjän rungon tapaus ja salaisuuden puuttumista koskeva huomautus — ovat kohdassa Webhook-allekirjoitusten vahvistaminen.

Esimerkki: täydellinen varausprosessi

Tässä on työkalujoukko täydellistä ajanvarausjärjestelmää varten:

Parhaat käytännöt

description-kenttä auttaa tekoälyä ymmärtämään, milloin työkalua käytetään. Kerro tarkasti, mitä se tekee ja milloin sen käyttö on sopivaa.
Palauta virheilmoituksia, jotka tekoäly ymmärtää: {"error": "No slots available for that date"} yleisten 500-virheiden sijaan.
Palauta vain se, mitä tekoäly tarvitsee keskustelun jatkamiseksi. Suuret hyötykuormat hidastavat vastausaikoja.
Merkitse kentät required-kentiksi vain, kun se on todella tarpeen. Tekoäly pyytää käyttäjältä vaaditut tiedot ennen työkalun kutsumista.

Aiheeseen liittyvää

Sovellusliitännät

Alustan hallinnoimat työkalut HubSpotille, Salesforcelle, Slackille, Google Calendarille, Google Sheetsille ja Cal.comille — päätepistettä ei tarvita.

MCP-palvelimet

Liitä MCP-palvelin ja anna agentin kutsua sen työkaluja.

API-liitännät

Uudelleenkäytettävät REST-integraatiot, jotka voit liittää agentteihin.

Vahvista webhook-allekirjoitukset

Yksi vahvistusapuri webhookeille ja työkalukutsuille.