Skip to main content
İşlev araçları, yapay zeka ajanlarınızın telefon görüşmeleri sırasında harici API’leri çağırmasına olanak tanır. Bunları müşteri verilerini sorgulamak, uygunluk durumunu kontrol etmek, randevu oluşturmak veya arka ucunuzun desteklediği herhangi bir işlemi gerçekleştirmek için kullanın.

Nasıl Çalışır

  1. Araçları bir şemayla tanımlarsınız (aracın kabul ettiği argümanlar)
  2. Bir endpoint yapılandırması sağlarsınız (ThunderPhone’un API’nizi çağırdığı yer) veya araç çağrılarını kuruluşunuzun webhook’unda almak için bunu boş bırakırsınız
  3. Görüşme sırasında yapay zeka, konuşmaya göre ne zaman araç kullanacağına karar verir
  4. ThunderPhone, araç argümanlarıyla birlikte endpoint’inizi çağırır
  5. API yanıtınız, konuşmanın devam etmesi için yapay zekaya geri iletilir
İşlev araçları, kendi API’nizi kullanma seçeneğidir. ThunderPhone ayrıca endpoint gerektirmeyen, platform tarafından yönetilen araçlar da sunar: uygulama bağlantıları (HubSpot, Salesforce, Slack, Google Calendar, Google Sheets, Cal.com), API bağlantıları ve MCP sunucuları.

Araç Şeması

Her araç bu yapıyı izler:

İşlev Tanımı

Endpoint Yapılandırması

endpoint yapılandırması yapay zeka modeline gönderilmez; yalnızca ThunderPhone tarafından araç çağrısını yürütmek için kullanılır.

İki çağırma yolu

Sunucunuzun aldığı isteğin türü, aracın bir endpoint değeri olup olmamasına bağlıdır: Her iki yol da bloklayıcıdır — yapay zeka cümle ortasında sonucu bekler — ve 20 sn zaman aşımına sahiptir. İşleyicileri hızlı tutun. Karma kullanım mümkündür: kuruluşunda webhook URL’si bulunan bir görüşmede, endpoint içeren araçlar doğrudan çağrılır, diğerleri ise webhook’a geri döner.

Doğrudan endpoint çağrıları

Yapay zeka bir endpoint içeren bir aracı çağırdığında ThunderPhone, URL’nize bir istek gönderir:

İstek Başlıkları

endpoint.headers içindeki özel başlıklar her zaman aynen eklenir; bunlara ek olarak ThunderPhone ad alanına ait iki başlık bulunur:
  • X-ThunderPhone-Signaturekuruluş webhook gizli anahtarınızla anahtarlanmış, tam istek gövdesi baytlarının HMAC-SHA256 değeri
  • X-ThunderPhone-Call-ID — Geçerli çağrı kimliği
endpoint.headers ile geçersiz kılınmadığı sürece Content-Type: application/json ayarlanır — özel bir Content-Type önceliklidir.
İmza, GET /v1/webhook içindeki kuruluş düzeyindeki webhook gizli anahtarıyla anahtarlanır. Kuruluşunuz eski webhook’u hiç yapılandırmadıysa gizli anahtar yoktur ve araç çağrıları yalnızca X-ThunderPhone-Call-ID içerir — eksik bir imzada kesin olarak başarısız olan bir işleyici bu çağrıları reddeder. Gizli anahtar edinmek için eski webhook’u yapılandırın veya kendi paylaşılan gizli anahtarınızı endpoint.headers içine ekleyin.

İstek Gövdesi

POST / PUT / PATCH için gövde, kanonik olarak serileştirilmiş (sıralanmış anahtarlar, sıkıştırılmış ayırıcılar) yalnızca araç bağımsız değişkenlerini içerir (sarmalayıcı yoktur):
GET / DELETE için bağımsız değişkenler sorgu parametreleri olarak gönderilir ve gövde boştur — imza bu durumda boş bayt dizisi üzerinden hesaplanır. Bkz. Webhook imzalarını doğrulama.

Yanıt

Araç sonucunu içeren bir JSON yanıtı döndürün:
Yanıt biçimlendirilir ve konuşmaya devam etmesi için yapay zekaya sağlanır. JSON olmayan yanıtlar {"data": "<text>"} olarak sarmalanır; zaman aşımları ve bağlantı hataları yapay zekaya hata olarak bildirilir; böylece ajan duraklamak yerine özür dileyip devam edebilir.

Webhook modu dağıtımı

endpoint içermeyen araçlar, kuruluşunuzun eski webhook URL’sine imzalı bir telephony.tool (telefon çağrıları) veya web.tool (web çağrıları) isteği olarak gönderilir. Yürütmeden sonra webhook endpoint’lerine teslim edilen denetim bildirimlerinden farklı olarak, bu istek yürütmenin kendisidir — HTTP yanıtınız araç sonucudur.
web.tool, from_number / to_number yerine origin_domain taşır. Araç sonucuyla JSON olarak yanıt verin — doğrudan endpoint çağrılarıyla aynı yanıt sözleşmesi geçerlidir. İstek, diğer tüm webhook’lar gibi, ham gövde üzerinden kuruluş webhook gizli anahtarıyla imzalanır.
Abone olunan webhook endpoint’leri, her araç yürütmesinden sonra (hangi yol yürüttüyse yürütülsün) aracın yanıtını da içeren, engellemeyen bir telephony.tool / web.tool bildirimi ek olarak alır — denetim izleri için kullanışlıdır. Bkz. olay kataloğu.

İmza Doğrulama

Doğrudan araç çağrıları, webhook’larla aynı şekilde imzalanır:
  • Tam istek gövdesi baytları üzerinden HMAC-SHA256 (kanonik JSON — sıralanmış anahtarlar, ek boşluk olmadan)
  • Kuruluşunuzun webhook gizli anahtarıyla anahtarlanır
  • GET / DELETE araçları boş bayt dizisini imzalar
Boş gövde durumu ve gizli anahtar olmamasıyla ilgili uyarı da dahil olmak üzere tüm örnekler Webhook imzalarını doğrulama bölümünde yer alır.

Örnek: Eksiksiz Randevu Akışı

Eksiksiz bir randevu rezervasyon sistemi için araç seti aşağıdadır:

En İyi Uygulamalar

description alanı, yapay zekanın aracı ne zaman kullanacağını anlamasına yardımcı olur. Aracın ne yaptığını ve ne zaman uygun olduğunu açıkça belirtin.
Genel 500 hataları yerine yapay zekanın anlayabileceği hata mesajları döndürün: {"error": "No slots available for that date"}
Yalnızca yapay zekanın konuşmaya devam etmek için ihtiyaç duyduğu bilgileri döndürün. Büyük yükler yanıt sürelerini yavaşlatır.
Alanları yalnızca gerçekten gerekli olduğunda required olarak işaretleyin. Yapay zeka, aracı çağırmadan önce kullanıcıdan gerekli bilgileri isteyecektir.

İlgili

Uygulama bağlantıları

HubSpot, Salesforce, Slack, Google Calendar, Google Sheets ve Cal.com için platform tarafından yönetilen araçlar — uç nokta gerekmez.

MCP sunucuları

Bir MCP sunucusu bağlayın ve ajanın araçlarını çağırmasına izin verin.

API bağlantıları

Ajanlara bağlayabileceğiniz yeniden kullanılabilir REST entegrasyonları.

Webhook imzalarını doğrulayın

Webhook’lar ve araç çağrıları için tek bir doğrulama yardımcısı.