Skip to main content
Instrumentele de funcție le permit agenților dvs. AI să invoce API-uri externe în timpul apelurilor telefonice. Folosiți-le pentru a căuta date despre clienți, a verifica disponibilitatea, a programa întâlniri sau a efectua orice acțiune acceptată de backendul dvs.

Cum funcționează

  1. Definiți instrumente cu o schemă (ce argumente acceptă instrumentul)
  2. Furnizați o configurație endpoint (unde ThunderPhone apelează API-ul dvs.) — sau omiteți-o pentru a primi apeluri de instrumente pe webhookul organizației dvs.
  3. În timpul unui apel, AI-ul decide când să utilizeze un instrument pe baza conversației
  4. ThunderPhone apelează endpointul dvs. cu argumentele instrumentului
  5. Răspunsul API-ului dvs. este transmis înapoi AI-ului pentru a continua conversația
Instrumentele de funcție reprezintă opțiunea în care vă furnizați propriul API. ThunderPhone oferă și instrumente gestionate de platformă, care nu necesită endpoint: conexiuni de aplicații (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), conexiuni API și servere MCP.

Schema instrumentului

Fiecare instrument urmează această structură:

Definiția funcției

Configurarea endpointului

Configurația endpoint nu este trimisă modelului AI — este utilizată doar de ThunderPhone pentru a executa apelul instrumentului.

Două căi de invocare

Solicitarea pe care o primește serverul dvs. depinde de existența unui endpoint pentru instrument: Ambele căi sunt blocante — AI-ul așteaptă rezultatul în mijlocul propoziției — cu o expirare după 20 s. Mențineți handlerele rapide. O combinație este acceptată: într-un apel a cărui organizație are un URL de webhook, instrumentele cu un endpoint sunt apelate direct, iar celelalte revin la webhook.

Apeluri directe către endpoint

Când AI-ul invocă un instrument care are un endpoint, ThunderPhone trimite o solicitare către URL-ul dumneavoastră:

Antete de solicitare

Antetele personalizate din endpoint.headers sunt întotdeauna incluse literal, plus două antete cu spațiu de nume ThunderPhone:
  • X-ThunderPhone-Signature — HMAC-SHA256 al octeților exacți ai corpului solicitării, folosind ca cheie secretul webhook al organizației
  • X-ThunderPhone-Call-ID — ID-ul apelului curent
Content-Type: application/json este setat, cu excepția cazului în care endpoint.headers îl suprascrie — un Content-Type personalizat are prioritate.
Semnătura folosește ca cheie secretul webhook la nivel de organizație din GET /v1/webhook. Dacă organizația dumneavoastră nu a configurat niciodată webhook-ul vechi, nu există niciun secret, iar apelurile de instrumente conțin doar X-ThunderPhone-Call-ID — un gestionar care eșuează automat când lipsește o semnătură le-ar respinge. Configurați fie webhook-ul vechi pentru a obține un secret, fie introduceți propriul secret partajat în endpoint.headers.

Corpul solicitării

Pentru POST / PUT / PATCH, corpul conține doar argumentele instrumentului (fără înveliș), serializate canonic (chei sortate, separatori compacți):
Pentru GET / DELETE, argumentele sunt trimise ca parametri de interogare iar corpul este gol — semnătura este apoi calculată peste șirul gol de octeți. Consultați Verificarea semnăturilor webhook.

Răspuns

Returnați un răspuns JSON cu rezultatul instrumentului:
Răspunsul este formatat și furnizat AI-ului pentru a continua conversația. Răspunsurile non-JSON sunt încapsulate ca {"data": "<text>"}; expirările și erorile de conexiune sunt raportate AI-ului ca erori, astfel încât agentul să poată să își ceară scuze și să continue, în loc să se blocheze.

Direcționare în modul webhook

Instrumentele fără un endpoint sunt direcționate către URL-ul webhook vechi al organizației dumneavoastră ca o solicitare semnată telephony.tool (apeluri telefonice) sau web.tool (apeluri web). Spre deosebire de notificările de audit livrate către endpoint-uri webhook după execuție, această solicitare este execuția — răspunsul dumneavoastră HTTP este rezultatul instrumentului.
web.tool conține origin_domain în loc de from_number / to_number. Răspundeți cu rezultatul instrumentului ca JSON — același contract de răspuns ca pentru apelurile directe către endpoint. Solicitarea este semnată cu secretul webhook al organizației peste corpul brut, la fel ca orice alt webhook.
Endpoint-urile webhook abonate primesc suplimentar o notificare neblocantă telephony.tool / web.tool după executarea fiecărui instrument (indiferent de calea care l-a executat), inclusiv răspunsul instrumentului — utilă pentru piste de audit. Consultați catalogul de evenimente.

Verificarea semnăturii

Apelurile directe de instrumente sunt semnate în același mod ca webhookurile:
  • HMAC-SHA256 peste octeții exacți ai corpului cererii (JSON-ul canonic — chei sortate, fără spații suplimentare)
  • Folosind secretul webhook al organizației dumneavoastră
  • Instrumentele GET / DELETE semnează șirul de octeți gol
Rețetele complete — inclusiv cazul corpului gol și avertismentul privind absența unui secret — sunt disponibile în Verificarea semnăturilor webhook.

Exemplu: flux complet de programare

Iată un set de instrumente pentru un sistem complet de programare a întâlnirilor:

Bune practici

Câmpul description ajută AI-ul să înțeleagă când să utilizeze instrumentul. Specificați clar ce face și când este potrivit să fie utilizat.
Returnați mesaje de eroare pe care AI-ul le poate înțelege: {"error": "No slots available for that date"} în locul erorilor 500 generice.
Returnați doar informațiile de care AI-ul are nevoie pentru a continua conversația. Încărcăturile utile mari încetinesc timpii de răspuns.
Marcați câmpurile ca required numai atunci când este cu adevărat necesar. AI-ul va cere utilizatorului informațiile obligatorii înainte de a apela instrumentul.

Resurse conexe

Conexiuni de aplicații

Instrumente gestionate de platformă pentru HubSpot, Salesforce, Slack, Google Calendar, Google Sheets și Cal.com — nu este necesar niciun endpoint.

Servere MCP

Atașați un server MCP și permiteți agentului să îi apeleze instrumentele.

Conexiuni API

Integrări REST reutilizabile pe care le puteți atașa agenților.

Verificați semnăturile webhook

Un singur ajutor de verificare pentru webhook-uri și apeluri de instrumente.