Nasıl çalışır
telephony.incoming(telefon) veyaweb.incoming(widget) etkinliğine abone olun. Her ikisi de engelleyici webhook’lardır: ThunderPhone, aramaya devam etmeden önce yanıtınızı en fazla 10 saniye bekler.- ThunderPhone size
{call_id, from_number, to_number}gönderir (widget oturumları numaralar yerine widget’a özgü alanlar içerir — bkz. istek şeması). - Sunucunuz bir ajan yapılandırmasıyla yanıt verir (istem, ses, ürün, araçlar). ThunderPhone bu yapılandırmayı arama için kullanır.
{}döndürürseniz, zaman aşımı oluşursa veya hata meydana gelirse, statik olarak atanmış ajan yedek olarak kullanılır. Güvenli varsayılan.
İster bir webhook uç noktasına ister eski tek URL’li webhook’a teslim edilsin,
telefon aramaları (
telephony.incoming) ve widget oturumları (web.incoming)
için aynı şekilde çalışır.1. Webhook hedefini yapılandırın
- Telefon aramaları
- Web widget
Telefon numaraları için uç noktanızı Yanıt, tek kullanımlık bir
telephony.incoming etkinliğine abone edin:secret içerir — kaydedin; bunu
imza doğrulaması için kullanacaksınız.2. İşleyiciyi uygulayın
Üç temel kural:- Her istekte imzayı doğrulayın (webhook imzalarını doğrulama bölümüne bakın). Bunu geliştirme ortamında atlamayın — bir kez doğru yapın ve yeniden kullanın.
- Hızlı yanıt verin. On saniye kesin sınırdır ve her saniye arayan için sessizliktir. Gerekiyorsa veritabanı sorguları yapın, ancak alt seviye LLM’leri eşzamanlı olarak çağırmayın — dinamik istem oluşturmak istiyorsanız önceden hesaplayın ve önbelleğe alın.
- Temiz bir şekilde geri dönün. Beklenmeyen her durum, statik olarak atanan ajanın çağrıyı işlemesi için
{}döndürmelidir.
3. Yanıt şeması
Yanıt gövdesi, gelen çağrı yanıt şemasıyla tam olarak eşleşir. Sık kullanılan alanlar:Çağrı başına konuşma sırası ve
max_hold_seconds, webhook yanıtında kullanılamaz.
Bunları başvurduğunuz Ajan üzerinde ayarlayın.Kalıplar
Oturum açmış kullanıcı bağlamı
Webhook modundaki widget’larda ziyaretçinin sayfası, kim olduğunu zaten bilir. Widget SDK’sının ilettiği bir sorgu dizesi parametresiyle (?customer_id=123)
webhook’unuzu çağırın ve müşteriyi sunucu tarafında bulun.
A/B istemi kullanıma sunma
Bunu kendiniz geliştirmeden önce, ThunderPhone’un varyantları tanımlayan, trafiği bölen ve varyant başına sonuçları karşılaştıran yerel bir Deneyler özelliği (/dashboard/experiments ve ajan oluşturucunun A/B sekmesi) olduğunu
unutmayın — webhook gerekmez.
Yine de webhook tarafında kontrol gerekiyorsa: call_id değerini hash’leyin → kovaya ayırın;
0..49 için A istemini, 50..99 için B istemini sunun. Seçtiğiniz
kovayı kendi veritabanınıza kaydedin ve daha sonra tamamlanan çağrının
notuyla ilişkilendirin.
Zamana dayalı yönlendirme
Mesai saatleri → “canlı destek” ajanı; mesai dışı → “mesaj alın” ajanı. İşleyicinizdenew Date().getUTCHours() üzerinde basit bir geçiş yeterlidir.
Sonraki adımlar
Gelen çağrı webhook başvurusu
Her yapılandırma anahtarı dahil olmak üzere tam istek ve yanıt şemaları.
Webhook imzalarını doğrulayın
HMAC’i bir kez doğru uygulayın; her yerde yeniden kullanın.
Bir araç entegrasyonu oluşturun
Dinamik yönlendirmeyi ajan başına araçlarla birleştirin.
Teslimat semantiği
Yeniden denemeler, sıralama, zaman aşımları.