Ana içeriğe atla
Journey Webhook’ları ile, müşteri yaşam döngüsünde tam olarak doğru anda OneSignal Journey’lerinden sunucularınıza—veya internete erişilebilen herhangi bir hizmete—HTTP istekleri gönderebilirsiniz. Entegrasyon gereksinimlerinize uyacak şekilde HTTP yöntemini, URL’yi, başlıkları ve gövde içeriğini yapılandırın. İstekler, kullanıcıya özgü verilerle dinamik olarak kişiselleştirilebilir, bu da webhook’ları Journey’lerinizi pazarlama yığınınızın geri kalanıyla senkronize etmek için güçlü bir yol haline getirir.

Gereksinimler

Olaylar gönderilebilmeden önce, şunlardan emin olun:
  • Erişim için satış ekibimizle iletişime geçin.
  • URL/IP adresi geçerli ve HTTP veya HTTPS üzerinden erişilebilir.
  • Uç noktalar genel olarak yönlendirilebilir (yani, bir güvenlik duvarının arkasında veya localhost’ta değil).
  • Alan adlarının geçerli bir üst düzey alan adı olmalıdır (ör. .com, .org, .net).
  • Journey webhook’ları OneSignal API’lerini çağırmak için kullanılamaz.

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 (ör. kimlik doğrulama için)
    • Gövde içeriği (düz metin veya JSON, isteğe bağlı olarak Liquid kullanarak)

Webhook yapılandırma ekranı

İ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:
bash
curl -X POST https://yourserver.com/webhook \
  -H "Content-Type: application/json" \
  -d '{ "user_id": "abc123" }'
Bir Journey’ye eklemeden önce uç noktanızın erişilebilir ve çalışıyor olduğunu doğrulamak için kullanışlıdır.

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 özellikler hakkında daha fazla ayrıntı 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.

Bir journey içinde webhook adımı


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ı

Webhook raporları sayfası

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)

Webhook günlük sayfası


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

OneSignal, kurtarılabilir hatalar için başarısız webhook isteklerini yeniden dener (ör. 429 Too Many Requests). Yeniden denemeler artan gecikmelerle gerçekleşir. 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, bir webhook devre dışı bırakılmadan önce ve sonra e-posta uyarıları ve bir pano başlığı alır. Bu olursa, yeniden etkinleştirmeden önce webhook’u sorun giderme, düzeltme ve test etme için biraz zaman ayırdığınızdan emin olun. Bir webhook’u alan API’nin, mesaj göndermeleri tarafından üretilen olay hacmini işleyebilmesi önemlidir. Uygulamanız tarafından üretilen mesaj gönderme hacmini gözden geçirmek, API’nizin gerektirdiği performansı yansıtacaktır.

Performans rehberliği

  • Yavaş veya aşırı yüklenmiş uç noktalar (özellikle 429 yanıtlarıyla) devre dışı bırakmayı tetikleyebilir.
  • API’ler olayları hızlı bir şekilde kaydetmeli ve zaman aşımlarını önlemek için ek işlemleri ertlemelidir.
  • Hacim, kullanıcı etkinliğiyle ölçeklenir—uç noktanızın bu iş 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.

Başarı için ipuçları

  • Webhook’ları önce kendi sunucularınıza bağlayın, doğrudan üçüncü taraf hizmetlere değil.
    • OneSignal webhook’ları herhangi bir genel API’yi çağırabilirken, kendi sunucunuz üzerinden yönlendirme size daha fazla kontrol sağlar.
    • Hata ayıklama, günlük ekleme, kimlik doğrulamayı işleme ve gerektiğinde istekleri kısıtlama veya kuyruğa alma daha kolaydır.
    • Üçüncü taraf hizmetler, hacim artarsa istekleri hız sınırlayabilir veya engelleyebilir ve OneSignal bu sınırları yönetmez.
  • Webhook yürütme, kullanıcılar Journey’deki bu adıma ulaştıkları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.
    • Bu, harici hizmetleri kolayca bunaltabilir, hız sınırlarını tetikleyebilir veya beklenmeyen ücretlere neden olabilir.
    • Şunları yapabilen hafif bir API katmanı veya kuyruk proxy’si oluşturmayı düşünün:
      • Webhook’ları güvenilir bir şekilde almak
      • Hız sınırları veya toplu işleme uygulamak
      • İstekleri üçüncü taraf hizmetlerinize zarif bir şekilde yönlendirmek
  • Üçüncü taraf API’lerini dikkatli kullanın:
    • En popüler araçların (ör. Slack, Twilio, Segment) çoğu genel HTTP API’leri sunar.
    • Hız sınırlarını, kimlik doğrulama gereksinimlerini ve hata işleme stratejilerini gözden geçirin.
    • Webhook isteğinizin nasıl görünmesi gerektiğini görmek için belgelerinde kod örneklerini arayın.

Webhook’unuzu güvence altına alma

İsteklerin OneSignal’den geldiğinden ve kurcalanmadığından emin olmak için:
  • Paylaşılan bir sırla bir HMAC imza başlığı kullanın
  • Başlığa özel bir kimlik doğrulama belirteci ekleyin ve sunucu tarafında doğrulayın

İlgili bağlantılar: