Geliştiriciler
Webhook olayları ve imza doğrulama
Gönderilen olaylar, gövde alanları, başlıklar, imza doğrulama ve yeniden denemeler.
Bu sayfada
Webhook bağlantısı, seçtiğiniz olaylarda adresinize imzalı bir POST isteği gönderir. Kurulum: Ayarlar → Entegrasyonlar → Webhook (CRM) (bkz. Webhook makalesi).
Olaylar
| Olay | Ne zaman? |
|---|---|
call.finalized (Görüşme sonuçlandı) |
Her görüşmenin sonucu kesinleştiğinde, bir kez. Test aramaları da gönderilir (is_test). |
meeting.scheduled (Toplantı ayarlandı) |
Asistan bir görüşmede toplantı ayarladığında. |
contact.dnc (Kişi aranmak istemiyor) |
Aranmayacaklar listesine yeni bir numara eklendiğinde. |
action_rule.triggered (Otomasyon kuralı çalıştı) |
Kanalı "Webhook" olan bir otomasyon kuralı çalıştığında. |
ping (Test) |
Test et'e bastığınızda. |
İlk üç olayı webhook formundaki Gönderilecek olaylar listesinden seçersiniz. action_rule.triggered, otomasyon kurallarıyla gönderilir.
İstek
{
"id": "5f0c…",
"event": "call.finalized",
"created_at": "2026-10-01T14:09:30+03:00",
"data": { … }
}
Başlıklar: Content-Type: application/json, X-Arar-Event, X-Arar-Event-Id (gövdedeki id), X-Arar-Timestamp (Unix saniye) ve X-Arar-Signature.
data alanları
call.finalized
call:id,direction,is_test,status,outcome,outcome_label,interest_score,duration_seconds,answered_at,ended_at,callback_at,summary,notes,next_actioncampaign:id,namecontact:id,first_name,last_name,company,email,phone,custom_fields
meeting.scheduled
meeting:id,call_id,starts_at,duration_minutes,timezone,meet_link,calendar_link,status,notescampaign(veyanull) vecontact(yukarıdaki gibi)
contact.dnc
phone,source(agent: görüşmede talep,manual: elle eklendi),reason,call_id,contact_ids
action_rule.triggered
call.finalizedile aynı alanlar verule:id,name
İmza doğrulama
X-Arar-Signature = v1= + HMAC-SHA256(imza anahtarınız, X-Arar-Timestamp + "." + ham gövde). İmzayı sabit zamanlı karşılaştırmayla doğrulayın ve 5 dakikadan eski istekleri reddedin.
İmza anahtarı (whsec_…) webhook'u ilk kaydettiğinizde bir kez gösterilir. Kaybettiyseniz kartta Anahtarı yenile'ye basın; eski anahtar hemen geçersiz olur.
Örnek (PHP):
$body = file_get_contents('php://input');
$timestamp = (int) $_SERVER['HTTP_X_ARAR_TIMESTAMP'];
$expected = 'v1=' . hash_hmac('sha256', $timestamp . '.' . $body, $secret);
if (! hash_equals($expected, $_SERVER['HTTP_X_ARAR_SIGNATURE'] ?? '') || abs(time() - $timestamp) > 300) {
http_response_code(401);
exit;
}
$event = json_decode($body, true); // ['id' => …, 'event' => 'call.finalized', 'data' => […]]
Yeniden denemeler
- Adresiniz 2xx dönmelidir. İstek 10 saniyede zaman aşımına uğrar.
- Bağlantı hatası, 408, 429 ve 5xx yanıtlarında istek artan aralıklarla (30 saniyeden 1 saate kadar) toplam 6 kez denenir. Diğer 4xx yanıtları yeniden denenmez.
- Yeniden denemelerde aynı
X-Arar-Event-Idgelir; tekrarları bu kimlikle ayıklayın. - Yönlendirmeler (3xx) izlenmez; adres
https://olmalı ve herkese açık bir sunucuya ait olmalıdır.