Ana içeriğe atla
Journey Webhook’ları, bir Journey adımından sunucularınıza veya herkese açık erişilebilir herhangi bir endpoint’e HTTP istekleri gönderir. HTTP yöntemini, URL’yi, başlıkları ve gövde içeriğini yapılandırırsınız. İstekler, Liquid sözdizimi kullanılarak kullanıcıya özgü verilerle kişiselleştirilebilir, böylece Journey olaylarını CRM’ler, analiz platformları veya özel backend’lerle gerçek zamanlı olarak senkronize edebilirsiniz.

Gereksinimler

  • Erişim için OneSignal satış ekibiyle iletişime geçin.
  • URL veya IP adresi geçerli ve HTTP veya HTTPS üzerinden erişilebilir olmalıdır.
  • Uç noktalar genel olarak yönlendirilebilir olmalıdır — bir güvenlik duvarının arkasında veya localhost’ta olmamalıdır.
  • Alan adlarının geçerli bir üst düzey alan adı olmalıdır (.com, .org, .net vb.).
Journey webhook’ları OneSignal API’lerini çağıramaz. Yalnızca harici sistemlere veri göndermek için tasarlanmıştır.

Kurulum

Journey’niz oluşturulduktan sonra şu adımları izleyin:
  1. OneSignal panosunda Data > Webhooks’a gidin.
  2. Yeni bir webhook oluşturmak için tıklayın.
  3. Şunları tanımlayın:
    • HTTP yöntemi (genellikle POST)
    • Hedef URL
    • Özel başlıklar (örneğin, kimlik doğrulama token’ları)
    • Gövde içeriği (düz metin veya JSON, isteğe bağlı olarak Liquid kullanarak)
HTTP yöntemi, URL, başlıklar ve gövde alanları bulunan webhook kurulum formu

İzin verilmeyen başlıklar

Aşağıdaki başlıkları ayarlayamazsınız:
  • content-length
  • referer
  • metadata-flavor
  • x-google-metadata-request
  • host
  • x-onesignal ile başlayan herhangi bir başlık

Webhook’ları test etme

Uç noktanızı curl gibi bir araç kullanarak manuel olarak da test edebilirsiniz:
curl -X POST https://yourserver.com/webhook \
  -H "Content-Type: application/json" \
  -d '{ "user_id": "abc123" }'
Bu, endpoint’i bir Journey’ye eklemeden önce erişilebilir ve çalışır durumda olduğunu doğrular.

Kişiselleştirme

Tüm webhook alanları Liquid sözdizimini destekler, bu da istek içine kullanıcı ve abonelik verilerini dinamik olarak eklemenize olanak tanır. Kullanılabilir özelliklerin tam listesi için Mesaj kişiselleştirme’ye bakın.

Kullanıcı verisi referansı

user nesnesinden aşağıdaki özellikler, Liquid sözdizimi aracılığıyla webhook alanlarında kullanılabilir:
ÖzellikTürKullanımTestte Mevcut mu?
OneSignal IDString{{ user.onesignal_id }}
External IDString{{ user.external_id }}
TagsObject{{ user.tags.your_tag_key_here }}
LanguageString{{ user.language }}
Etiketler, aktif bir Journey dışında webhook’ları test ederken kullanılamaz. Canlıya geçmeden önce davranışı doğrulamak için Test abonelikleri’ni kullanın.

Bir Journey’ye webhook ekleme

  1. Webhook’unuzu oluşturduktan ve test ettikten sonra Journey’nizi açın.
  2. Gerektiğinde bir Webhook adımı ekleyin.
  3. Daha önce yapılandırdığınız webhook’u seçin.
Bir kullanıcı bu adıma her ulaştığında, webhook kişiselleştirilmiş verileriyle tetiklenir.
Mesaj adımları arasında bağlı bir webhook adımı içeren Journey canvas'ı

Hata ayıklama ve günlükler

Webhook istatistikleri

Webhook’unuzun nasıl performans gösterdiğini görüntülemek için webhook’un Stats sekmesine gidin. Bu şunları içerir:
  • Gönderilen toplam olay sayısı
  • Yanıt süresi trendleri
  • Durum kodu dağılımı
Olay sayısı, yanıt süresi trendleri ve durum kodu dağılımını içeren webhook istatistikleri sekmesi

Günlükler sekmesi

Daha ayrıntılı içgörüler için Günlükler sekmesi şunları görüntüler:
  • Son istek/yanıt verileri
  • Durum kodları ve hata mesajları
  • Başlıklar ve yükler (uygulanabilir olduğunda)
Son istekler, durum kodları ve yükleri içeren webhook günlükleri sekmesi

Yeniden deneme mantığı ve devre dışı bırakma davranışı

OneSignal, kurtarılabilir hatalar için başarısız webhook isteklerini yeniden dener (örneğin 429 Too Many Requests). Yeniden denemeler, girişimler arasında artan gecikmeler kullanır. Yeniden denemeler tekrar tekrar başarısız olursa, webhook kalıcı olarak başarısız olarak işaretlenir ve başka deneme yapılmaz.

Otomatik devre dışı bırakma

Bir webhook sürekli olarak başarısız olursa, OneSignal daha fazla sorunu önlemek için onu devre dışı bırakır. Yöneticiler, devre dışı bırakmadan önce ve sonra e-posta uyarıları ve bir pano başlığı alır. Kök nedeni belirleyin ve yeniden etkinleştirmeden önce webhook’u test edin. Uç noktanız Journey’nizin ürettiği olay hacmini işleyebilmelidir. API’nizin ihtiyaç duyduğu işlem hacmini tahmin etmek için uygulamanızın mesaj gönderme hacmini inceleyin.

Performans rehberliği

  • Yavaş veya aşırı yüklenmiş uç noktalar (özellikle 429 yanıtları döndürenler) otomatik devre dışı bırakmayı tetikleyebilir.
  • Zaman aşımlarını önlemek için olayları hızla kaydedin ve ek işlemleri erteleyin.
  • Hacim, kullanıcı etkinliğiyle ölçeklenir — uç noktanızın zirve işlem hacmini kaldırabildiğinden emin olun.
  • Gelen olayları tekilleştirmek için event.id değerini (başlık veya gövdede mevcut) kullanın.

Güvenilirlik en iyi uygulamaları

  • Önce kendi sunucunuz üzerinden yönlendirin, doğrudan üçüncü taraf hizmetlere değil. Bu size günlük kaydı, kimlik doğrulama, kısıtlama ve kuyruğa alma üzerinde kontrol sağlar. Üçüncü taraf hizmetler, hacim artışları sırasında istekleri hız sınırlayabilir veya engelleyebilir ve OneSignal bu sınırları yönetmez.
  • Ani artışları planlayın. Webhook yürütme, kullanıcılar adıma ulaştığında hemen gerçekleşir. Birçok kullanıcı bir webhook adımına aynı anda ulaşırsa, OneSignal hız sınırlaması olmadan bir HTTP istek patlaması gönderir. Webhook’ları güvenilir bir şekilde alan, hız sınırları veya toplu işleme uygulayan ve istekleri üçüncü taraf hizmetlerinize uygun şekilde yönlendiren hafif bir API katmanı veya kuyruğa alma proxy’si oluşturmayı düşünün.
  • Üçüncü taraf API sınırlarını inceleyin. Slack, Twilio ve Segment gibi popüler araçlar genel HTTP API’leri sunar, ancak kendi hız sınırları, kimlik doğrulama gereksinimleri ve hata işleme yapıları vardır. Doğrudan bağlanmadan önce belgelerini kontrol edin.

Webhook’unuzu güvence altına alma

İsteklerin OneSignal’den geldiğini ve kurcalanmadığını doğrulamak için:
  • HMAC imzası: Webhook yapılandırmasına paylaşılan bir gizli anahtar ekleyin. OneSignal, her isteği sunucunuzun yükü işlemeden önce doğrulayabileceği bir HMAC başlığıyla imzalar.
  • Özel kimlik doğrulama token’ı: Özel bir yetkilendirme başlığı ekleyin (örneğin, Authorization: Bearer GIZLI_TOKEN_UNUZ) ve isteği kabul etmeden önce sunucu tarafında doğrulayın.

SSS

Webhook’ları OneSignal API’lerini çağırmak için kullanabilir miyim?

Hayır. Journey Webhook’ları yalnızca harici sistemlere veri göndermek için tasarlanmıştır. OneSignal API’lerini çağıramazlar. Journey olaylarına dayalı olarak OneSignal verilerini güncellemek için, webhook’u kendi sunucunuz üzerinden yönlendirin ve sunucunuzun OneSignal API’sini çağırmasını sağlayın.

Webhook’um neden otomatik olarak devre dışı bırakıldı?

OneSignal, daha fazla sorunu önlemek için sürekli başarısız olan webhook’ları devre dışı bırakır. Hata ayrıntıları (durum kodları, yanıt gövdeleri) için Günlükler sekmesini kontrol edin, kök nedeni düzeltin ve yeniden etkinleştirmeden önce webhook’u test edin. Yaygın nedenler arasında uç nokta kesintileri, kimlik doğrulama hataları ve hız sınırlaması yer alır.

Webhook olaylarını nasıl tekilleştiririm?

Benzersiz olayları tanımlamak için event.id değerini (başlık veya istek gövdesinde mevcut) kullanın. İşlenmiş olay ID’lerini sunucunuzda depolayın ve tüm kopyaları atlayın. Yeniden denemeler aynı olayı birden fazla kez teslim ediyorsa bu özellikle önemlidir.

OneSignal webhook isteklerini hız sınırlıyor mu?

Hayır. OneSignal, kullanıcılar adıma ulaştığında hız sınırlaması olmadan webhook isteklerini hemen gönderir. Birçok kullanıcı aynı anda bir webhook adımına ulaşırsa, uç noktanız bir istek patlaması alır. Zirve hacmi kaldırabilmek için uç noktanızı oluşturun veya istekleri ara belleğe almak ve toplu işlemek için bir kuyruğa alma proxy’si kullanın.

Journey başlatmadan webhook’ları test edebilir miyim?

Evet. Örnek istek göndermek için webhook yapılandırmasındaki Test düğmesini kullanın. Etiketlerin test isteklerinde mevcut olmadığını unutmayın — tam doğrulama için canlı bir Journey’de test abonelikleri kullanın.

İlgili sayfalar

Journey'lere genel bakış

Journey’lere giriş ve çok kanallı iş akışlarının nasıl çalıştığı.

Journey eylemleri

Bekleme adımları, dallanma mantığı, zaman pencereleri ve bölünmüş yollar ekleyin.

Liquid sözdizimi

OneSignal mesajları ve webhook’larında Liquid şablonu için tam referans.

Mesaj kişiselleştirme

Etiketler, Liquid ve dinamik içerik dahil tüm kişiselleştirme yöntemlerine genel bakış.