Webhook ve olaylar
Calleague çağrı yaşam döngüsü olaylarına abone olun ve gerçek zamanlı tepki verin — bir webhook kaydedin, olaylar tablosunu okuyun, yükü ele alın ve yeniden denemeler ile doğrulamayla baş edin.
Calleague, çağrılar ilerlerken neler olduğunu kendi sistemlerinize bildirebilir. REST API'ye sürekli "bitti mi?" diye sormak yerine çağrı yaşam döngüsü olaylarına abone olur ve bir çağrı başladığı, bağlandığı, bittiği ya da bir kayıt veya döküm hazır olduğu anda bir mesaj alırsınız. Bu sayfa bir webhook'u nasıl kaydedeceğinizi, alabileceğiniz olayları, yük yapısını, doğrulamayı ve yeniden denemeleri kapsar.
Bir bakışta
| Konu | Özet |
|---|---|
| Teslim | Calleague, sizin barındırdığınız bir web adresine JSON POST gönderir. |
| Taşıma | Yalnızca güvenli bağlantı; uç noktanız hızlıca 2xx yanıtlamalı. |
| Kimlik doğrulama | Her teslim, anahtarınızı Bearer token olarak taşır. |
| Seçim | Hangi olayları istediğinizi siz seçersiniz. |
| Güvenilirlik | Başarısız bir teslim, artan bir bekleyişle yeniden denenir. |
| Sıra | Olayları sırasız kabul edin; callId + olay adı üzerinden eşleştirin. |
Nasıl çalışır
Bir webhook, hizmetinizin barındırdığı bir web adresidir. Bu adresi Calleague'e kaydeder ve önemsediğiniz olayları seçersiniz; ardından Calleague, eşleşen bir olay her tetiklendiğinde oraya bir JSON POST gönderir.
Bir uç nokta oluşturun
Kendi uygulamanızda, güvenli bir bağlantı üzerinden JSON gövdeli bir POST kabul eden bir yol kurun. Hemen 2xx yanıtlayın, ağır işleri sonra yapın.
Adres kaydedildikten sonra Calleague'in teslimlerinin buraya geldiğini göreceksiniz.
Kaydedin
Adresi ve istediğiniz olayları kaydedin — uygulamanın entegrasyonlar alanından ya da tek bir istekle. Gövde, çağrılacak url'yi ve gönderilecek events'i listeler.
curl -s -X POST https://app.calleague.ai/api/core/webhook \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.example.com/hooks/calleague",
"events": ["call.started", "call.completed", "recording.ready"]
}'Karşılığında sonradan güncelleyebileceğiniz veya kaldırabileceğiniz bir webhook kaydı alırsınız.
Her teslimi doğrulayın
Gövdeye güvenmeden önce gelen Authorization: Bearer token'ının anahtarınızla eşleştiğini doğrulayın, sonra 2xx yanıtlayın.
2xx ile onayladığınızda yeniden denemelerin durduğunu göreceksiniz.
Her teslim API anahtarınızı taşır; böylece gerçekten Calleague'den geldiğini doğrulayabilirsiniz:
Authorization: Bearer $TOKENAlabileceğiniz olaylar
| Olay | Ne zaman tetiklenir | Anahtar alanlar |
|---|---|---|
call.started | Bir çağrı başlatılır veya alınır. | callId, agentId, direction |
call.connected | Çağrı bağlanır ve ses başlar. | callId, connectedAt |
call.completed | Çağrı normal şekilde biter. | callId, durationSec, endedReason |
call.failed | Çağrı bağlanamadı veya hata verdi. | callId, endedReason |
recording.ready | Bir kayıt işlendi ve hazır. | callId, recordingId |
transcript.ready | Bir döküm işlendi ve hazır. | callId, transcriptId |
Buradaki olay adları ve alanları, entegrasyonun yapısını tanımlar, donmuş bir liste değil. Hesabınızın gerçekten gönderdiği olaylara göre yazın ve tanımadığınız alanları yok sayın; böylece yenileri güvenle eklenebilir.
Örnek yük
Abone olduğunuz bir olay tetiklendiğinde Calleague uç noktanıza JSON gönderir:
{
"event": "call.completed",
"deliveryId": "dl_4c19",
"occurredAt": "2026-01-01T12:01:24.000Z",
"data": {
"callId": "cl_8f2a",
"agentId": "ag_123",
"direction": "inbound",
"durationSec": 84,
"endedReason": "completed",
"language": "tr",
"metadata": { "orderId": "A-1042" }
}
}Çağrıyı başlatırken geçtiğiniz metadata burada geri yansıtılır; böylece olayı kendi kaydınızla ikinci bir aramaya gerek kalmadan eşleştirirsiniz.
Hızlı yanıtlayın — uç noktanız ağır işlere başlamadan önce onaylamalıdır:
HTTP/1.1 200 OKDoğrulama
| Adım | Neden |
|---|---|
Authorization: Bearer token'ını kontrol edin | Teslimin bir taklitçiden değil, Calleague'den geldiğini doğrular. |
| Uç noktanızda güvenli bağlantı şart koşun | Yolda yükü ve token'ı korur. |
event'i abone olduğunuz listeyle karşılaştırın | İstemediğiniz olay türlerini yok sayın. |
deliveryId (veya callId + olay) üzerinde tekilleştirin | Aynı teslim birden çok kez gelebilir. |
Doğrulayamadığınız bir webhook'a göre hareket etmeyin. Bearer token anahtarınızla eşleşmiyorsa yeniden denemeleri durdurmak için 2xx yanıtlayın ama gövdeyi atın — ve sızdığını düşünüyorsanız anahtarınızı değiştirin.
Yeniden denemeler ve güvenilirlik
Uç noktanız 2xx yanıtlamazsa (hata verir, zaman aşımına uğrar veya erişilemezse), Calleague teslimi sınırlı bir pencere boyunca artan bir bekleyişle yeniden dener. Yeniden denemeler altında doğru kalmak için:
- Tekrarlanabilir olun. İşlemenizi
deliveryId(veyacallId+ olay) üzerine kurun ve tekrarı bir işlem yapmama olarak ele alın. - Önce onaylayın, sonra çalışın. Hemen
2xxyanıtlayın, sonra ağır işi kuyruğa alın. - Engellemeyin. Yavaş bir işleyici zaman aşımına yol açar, bu da daha çok yeniden denemeyi tetikler.
- Sırasız teslime tolerans gösterin. Önceki bir olayın yeniden denemesi, sonraki birinden sonra gelebilir.
Bir şey farklı görünüyorsa
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Hiç teslim gelmiyor | Adres kayıtlı değil veya eşleşen olay yok | Kayıtlı url ve events listesini yeniden kontrol edin |
| Aynı olay iki kez işleniyor | İşleyici tekrarlanabilir değil | deliveryId üzerinde tekilleştirin |
| Teslimler sürekli yeniden deneniyor | Uç nokta 2xx dışı dönüyor veya zaman aşımı | Hızlıca 2xx yanıtlayın; ağır işi kuyruğa taşıyın |
| Yük güvenilmez diye reddedildi | Bearer token uyuşmazlığı | Etkin anahtarınızla karşılaştırın; sızdıysa değiştirin |
| Beklediğiniz bir alan eksik | Bu olayda isteğe bağlı/yeni alan yok | Önce var olup olmadığını kontrol edin; isteğe bağlı alanları zorunlu kılmayın |
| Olaylar sırasız geliyor | Yeniden denemelerde normal | Gelme zamanına değil occurredAt'a göre sıralayın |
Webhook ile REST karşılaştırması
| Şunu istiyorsanız… | Kullanın |
|---|---|
| Bir çağrı olayı olduğu anda tepki vermek | Bir webhook aboneliği |
| Geçmiş çağrıları veya asistanları istek üzerine okumak | REST API |
| Kesintiden sonra arayı kapatmak | Kaçırdığınız pencere için REST API'yi okuyun |
Sık sorulan sorular
Sırada ne var
Son güncelleme