Webhook'ları Yapılandırın

Mesajlar, teslimat durumu güncellemeleri ve kampanya etkinlikleri için gerçek zamanlı bildirimler almak üzere webhook'ları ayarlayın.

campaign.completed - Kampanya tamamlandı

email.complained — Spam olarak işaretlendi

link.clicked — İzlenen bağlantı tıklandı

Bir olay gerçekleşir (örn. mesaj alındı)

200 alınmazsa, üstel geri çekilme ile yeniden deneriz

Olaylar: Hangi olayları alacağınızı seçin

Benzersiz olay kimlik numarası (tekrarlama önleme için kullanın)

Olay türü dizesi (örneğin message.received)

Olayın gerçekleştiği ISO 8601 zaman damgası

Olayi tetikleyen kaynağın kimlik numarası

Olaya özgü payload (olay türüne göre değişir)

attachments dizisi yalnızca mesaj medya içerdiğinde bulunur. Her ek benzersiz bir id, content_type, file_size ve iki indirme URL'si içerir. Desteklenen türler: görsel, video, ses, belge, çıkartma.

url - Sabit API uç noktası. Kimlik doğrulama gerektirir (API anahtarı veya oturum token'ı). Süresi dolmaz.

signed_url - Önceden imzalanmış GCS URL'si. Kimlik doğrulama gerekmez. 24 saat sonra süresi dolar.

Platform medya indirmesi başarısız olursa, zenginlestirilmis alanlar yerine "source": "platform" işaretçisi ile ham platform verisi iletilir. Dosya olmayan türler (konum, kişiler, reaksiyonlar) etkilenmez.

Bir kişi nesnesi içeren her olay, kişinin tüm tanımlayıcılarını listeleyen bir contact_methods[] dizisi de içerir (birincil önce). Geri uyumluluk için üst düzeydeki phone ve email alanları korunmaktadır.

Hızlı yanıtlama ve liste seçimleri message_type "button" olarak gelir. Açıklama "text" alanındadır ve yapılandırılmış bir "meta.button" nesnesi id ile payload'u taşır; böylece metni ayrıştırmadan seçimi yönlendirebilirsiniz.

Düğme tıklama örneğini göster (hızlı yanıtlama / liste)

Mesaj gönderilirken tanımlanan düğmenin kararlı tanımlayıcısı.

Kanal tarafından döndürülen payload (hızlı yanıtlamalar için id ile eşlenir).

Kullanıcının gördüğü ve dokundugu okunabilir açıklama.

Dosya ekleri içeren giden mesajlar, gelen mesajlarla aynı zenginlestirilmis ek şemasını (id, url, signed_url, content_type, file_size) içerir.

error alanı veri düzeyindedir (message.meta içinde değil). Tam conversation ve contact nesneleri de dahil edilir.

Durum güncelleme olayları (delivered, read), bot_session_id veya last_*_at zaman damgası alanları olmadan daha basit bir conversation nesnesi kullanır. contact_method nesnesi dahil edilmez.

E-posta conversation nesneleri ek alanlar içerir: konu bağlamı için email_integration_id ve email_thread_id.

Yeniden açılma olayı diğer görüşme olaylarından daha az görüşme alanı içerir (bot_session_id, last_*_at zaman damgaları veya konu içermez).

contact.updated ve contact.deleted aynı yapıyı kullanır. Olay türü alanı bunları birbirinden ayırır.

Ham istek gövdesini alın (JSON ayrıştırmadan önce)

Webhook sırrınızı kullanarak HMAC-SHA256 hesaplayın

X-SendSeven-Signature başlığıyla karşılaştırın

Zamanlama saldırılarını önlemek için zamanlama güvenli karşılaştırma kullanın

URL'niz herkese açık erişilebilir (localhost değil)

SSL sertifikanız geçerli (kendinden imzalı değil)

SendSeven IP'lerini engelleyen bir güvenlik duvarı yok

Ham gövde yerine ayrıştırılmış JSON kullanma

Yanlış webhook sırrı (ayarlardan tekrar kopyalayın)

Kodlama sorunları (UTF-8 olduğundan emin olun)

Olay kimliğini saklayın ve işlemeden önce yinelenenleri kontrol edin

Mümkün olduğunca hızlı 200 ile yanıt verin (asenkron işleyin)

Webhook'lar, SendSeven'ın uygulamanıza gerçek zamanlı olayları iletmek için kullandığı HTTP geri aramalarıdır. REST API'yi sorgulamak yerine, önemli bir olay gerçekleştiğinde uç noktanız anında bildirim alır - bir mesaj gelir, bir görüşme sona erer, bir kişi oluşturulur veya teslimat durumu değişir. Her webhook isteği güvenlik için HMAC ile imzalanır ve başarısızlık durumunda üstel geri çekilme ile otomatik olarak yeniden denenir, böylece hiçbir olay kaybolmaz.

En az bir bağlı kanalı olan bir SendSeven hesabı

HTTP POST istekleri alabilecek genel bir HTTPS uç noktası

Geçerli bir SSL sertifikasi (Let's Encrypt gayet uygun)

REST API'ler ve JSON hakkında temel bilgi

Uç Nokta Ekle düğmesi vurgulanmış SendSeven paneli Webhook'lar sayfası

SendSeven'de HTTPS URL alanı ve olay abonelikleri bulunan Uç Nokta Ekle diyaloğu

Olaylar: Hangi olayları almak istediğinizi seçin

Authorization Başlığı (isteğe bağlı): Her teslimatla birlikte gönderilen özel kimlik doğrulama başlığı

API üzerinden şunları da yapılandırabilirsiniz: retry_strategy (exponential/linear/none), max_retries (varsayılan 8, maksimum 15) ve timeout_seconds (varsayılan 30, aralık 5–60)

Kopyala düğmesi ile gizli anahtarı gösteren Webhook Başarıyla Oluşturuldu açılır penceresi

SendSeven'de uç nokta URL'si, abone olunan olaylar, teslimat geçmişi ve sağlık durumu gösteren webhook detay sayfası

Panel üzerinden webhook oluşturulurken otomatik olarak

API üzerinden webhook oluşturulurken otomatik olarak (POST /api/v1/webhook-endpoints)

Webhook URL'si güncellendiğinde otomatik olarak

Doğrulama uç noktası üzerinden isteğe bağlı olarak (POST /api/v1/webhook-endpoints/{id}/verify)

  1. Bir webhook uç noktası oluşturun
  2. Webhook'u SendSeven'e kaydedin
  3. Alınacak olay türlerini seçin
  4. Webhook doğrulama sorgulamasını işleyin
  5. Webhook imzasını doğrulayın
  6. Gelen olayları işleyin
  7. Örnek olaylarla test edin

FAQ

Hangi olaylara abone olabilirim?

SendSeven webhook'ları altı temel olay türünü destekler: message.received (gelen mesaj), message.sent (giden mesaj), conversation.closed (görüşme sona erdi), contact.created (yeni kişi), contact.updated (kişi güncellendi) ve delivery.status (durum değişti).

Webhook yeniden denemesi nasıl çalışır?

Uç noktanız 2xx dışında bir durum kodu döndürürse veya 30 saniye içinde yanıt vermezse, SendSeven üstel geri çekilme ile otomatik olarak yeniden dener: hemen, 5 saniye, 30 saniye, 5 dakika, 30 dakika ve 24 saat. 6 başarısız teslimat denemesinden sonra webhook otomatik olarak devre dışı bırakılır ve bir bildirim alırsınız.

Webhook imzalarını nasıl doğrularım?

Her webhook isteği bir X-SendSeven-Signature başlık bilgisi içerir. Doğrulamak için webhook gizli anahtarınızı kullanarak ham istek gövdesinin HMAC-SHA256 değerini hesaplayın, ardından başlık değeriyle karşılaştırın. Eşleşirlerse istek güvenilirdir ve SendSeven'den gelmiştir.

Webhook payload formatı nedir?

Webhook'lar tutarlı bir yapıyla JSON POST istekleri olarak gönderilir: id (benzersiz olay tanımlayıcısı), type (olay türü), timestamp (Unix zaman damgası), ilgili veri nesnesi (mesaj, görüşme veya kişi) ve kanal bağlamı. Payload'lar standart olaylar için genellikle 1-5 KB boyutundadir.

Birden fazla webhook uç noktası yapılandırabilir miyim?

Evet. Çalışma alanı başına en fazla 10 webhook uç noktası ekleyebilirsiniz. Her uç noktanın farklı bir URL'si olabilir ve farklı olay türlerine abone olabilir, böylece olayları farklı sistemlere yönlendirebilirsiniz.

Webhook uç noktami nasıl test ederim?

SendSeven, webhook panelinde gerçek verileri etkilemeden uç noktanıza örnek bir payload gönderen bir "Test Olayi Gönder" düğmesi sağlar. Yerel testler için webhook.site, RequestBin veya ngrok gibi webhook hata ayıklama araçlarını kullanın.

Uç noktam geçici olarak kullanılamazsa ne olur?

Webhook'lar sıraya alınır ve 48 saate kadar yeniden denenir. Bu süre zarfında uç noktanızı düzeltebilirsiniz ve sıradaki olaylar teslim edilir. 48 saat içinde cozulmezse olaylar kalıcı olarak silinir ve webhook teslimat geçmişinize kaydedilir.