POST isteği gönderir.
Webhook’ları uygulamada Settings → Webhooks altından (Giden webhook’ları ekleme ve yönetme sayfasına bakın) veya webhook API’siyle yönetebilirsiniz. Bu sayfa, Flowella’nın ne gönderdiğine ilişkin referanstır.
Olay türleri
Bir webhook eklerken bu olayları işaretleyin veya API ile bir webhook oluştururken bunlarıevents içinde iletin.
Kişi olayları yalnızca bu tek kişilik API çağrıları için tetiklenir.
POST /v1/contacts/bulk-upsert için, gelen mesajlarla oluşturulan kişiler için veya uygulamada yapılan ya da HubSpot’tan senkronize edilen değişiklikler için tetiklenmez.
Flowella ayrıca uygulamada Send test event seçeneğini belirlediğinizde veya POST /v1/webhooks/{id}/test çağrısı yaptığınızda webhook.test gönderir. Bu olaya abone olamazsınız. data değeri { "test": true, "sentAt": "<ISO 8601 time>" } şeklindedir.
Tek bir giden mesaj iki
message.sent olayı oluşturabilir: biri Flowella mesajı Meta’ya teslim ettiğinde, diğeri Meta mesajı gönderildi olarak bildirdiğinde. İkisinin üst düzey id değerleri farklıdır. Bunları aynı mesaja bağlamak için data.messageId kullanın.İstek biçimi
Flowella her olayı şu başlıklarla bir HTTPPOST olarak gönderir:
Flowella başka özel başlık göndermez. Olay türü ve kimliği gövdededir.
Gövde
Her webhook’un, webhook API’si tarafındanpayloadVersion olarak döndürülen bir yük sürümü vardır. Sürüm 1 her webhook için varsayılandır ve bunu değiştirmek için uygulamada veya API’de bir ayar yoktur. İki sürüm şu zarfları kullanır:
Flowella,
data değeri 256 KB’tan büyük olan bir olayı göndermez.
Webhook imzalarını doğrulama
Her isteğe güvenmeden önce imzasını kontrol edin. Flowella,X-Flowella-Signature değerini şöyle hesaplar:
- Algoritma: SHA-256 ile HMAC.
- Anahtar: tam olarak kaydedildiği şekliyle, UTF-8 metin olarak imzalama gizli anahtarı. API tarafından oluşturulan bir gizli anahtar
whsec_önekini içerir. - Mesaj: Flowella’nın gönderdiği şekliyle, bayt bayt ham istek gövdesi. Başka hiçbir şey imzalanmaz: imzada zaman damgası veya URL yoktur.
- Çıktı:
sha256=öneki olmadan, 64 karakterlik küçük harfli onaltılık değer.
Yanıtlar, yeniden denemeler ve zaman aşımları
Flowella birden fazla olayı aynı anda teslim eder, bu nedenle olaylar sırasız ulaşabilir. Sıra önemliyse
created_at veya occurred_at kullanın. İmza doğrulanır doğrulanmaz bir 2xx durumuyla yanıt verin, ardından olayı arka planda işleyin. Yeniden denemelerin uygulamada nasıl göründüğü için Yeniden denemeler ve geri çekilme bölümüne bakın.
Yinelenen olayları ayıklama
Uç noktanız aynı olayı birden fazla kez alabilir: uç noktanız zaman aşımına uğradığı halde isteği yine de işlediğinde yapılan bir yeniden deneme veya API üzerinden bir yeniden oynatma. Yinelenenleri üst düzeyid değerine göre ayıklayın:
- İşlediğiniz her olayın
iddeğerini saklayın. - Gelen bir
idzaten saklanmışsa200ile yanıt verin ve başka bir şey yapmayın. - Saklanan kimlikleri en az teslimatları yeniden oynatabileceğiniz süre boyunca tutun.
data.messageId değerine göre ayıklamayın. message.sent ve message.delivered gibi aynı mesajla ilgili farklı olaylar bu değeri paylaşır.
Olay akışı
Olay akışı, webhook’lara çekme tabanlı bir alternatiftir.GET /v1/events, hiçbir webhook’un abone olmadığı olaylar dahil son 7 güne ait olayları döndürür. events:read kapsamını gerektirir. type (tek bir tür veya virgülle ayrılmış bir liste), occurredAfter ve occurredBefore ile filtreleyin ve limit ve cursor ile sayfalandırın.
Her öğede id, type, occurredAt, version, correlationId ve data bulunur. id, webhook gövdesindeki id ile eşleşir; böylece uç noktanız çalışmadığı dönemdeki boşlukları doldurmak için akışı kullanabilirsiniz.
Webhook’ları API ile yönetme
Tüm webhook uç noktaları,webhooks:manage kapsamına sahip bir API anahtarı veya OAuth erişim token’ı gerektirir. Uygulamada oluşturulan anahtarlar bu kapsama sahiptir. Kimlik doğrulama için API girişi sayfasına bakın.
Webhook nesneleri
id, name, url, events, isActive, consecutiveFailures, signingSecretPrefix (mevcut gizli anahtarın ilk 8 karakteri), payloadVersion, lastTriggeredAt, disabledAt, createdAt ve updatedAt alanlarını içerir.
API üzerinden yönetilen webhook’lar için birkaç kural geçerlidir:
- İmzalama gizli anahtarını API üzerinden seçemezsiniz.
POST /v1/webhooks,whsec_ile başlayan bir anahtar oluşturur ve bunusigningSecretolarak bir kez döndürür. - Yeniden oynatmalar başarısızlık sayacına dahil edilmez ve sayacı sıfırlamaz. Flowella bir yeniden oynatmayı yalnızca webhook etkinken ve o olay türüne hâlâ abone iken teslim eder.
- URL, uygulamadakiyle aynı URL kurallarına uymalıdır.
Bir imzalama gizli anahtarını döndürme
Bir gizli anahtarın sızdığını düşündüğünüzde veya düzenli bir programla anahtarı döndürün. Döndürme, uygulamada gizli anahtarını kendiniz yazdığınız webhook’lar dahil, gizli anahtarı olan her webhook için çalışır.1
Yeni bir gizli anahtar isteyin
Döndürme uç noktasını çağırın ve yanıttaki
signingSecret değerini saklayın. Flowella bunu yalnızca bir kez döndürür.2
24 saat boyunca iki gizli anahtarı da kabul edin
Yeni teslimatlar
X-Flowella-Signature içinde yeni gizli anahtarla ve X-Flowella-Signature-Previous içinde eski gizli anahtarla imzalanır. Hâlâ eski gizli anahtarı kullanan bir işleyici, Webhook imzalarını doğrulama bölümündeki örnekte olduğu gibi iki başlığı da kontrol ederse çalışmaya devam eder.3
Yeni gizli anahtara geçin
İşleyicinizi 24 saat içinde yeni gizli anahtarla güncelleyin. Bundan sonra Flowella
X-Flowella-Signature-Previous göndermeyi bırakır.Yerel olarak test etme
Webhook’ları kendi bilgisayarınızda almak için yerel sunucunuzu ngrok veya Cloudflare Tunnel gibi herkese açık bir tünel üzerinden dışarıya açın. Uç nokta olarak tünelin herkese açık URL’sini kullanın. Ardından ihtiyaç duyduğunuzda istek göndermek için Send test event seçeneğini kullanın. Flowella yerel ve özel adresleri reddeder, bu nedenle birlocalhost URL’si çalışmaz.
İlgili
Webhook'ları uygulamada yönetme
Uç noktalar ekleyin, test olayları gönderin ve teslimat günlüğünü okuyun.
API girişi
Kimlik doğrulama, kapsamlar, hız sınırları ve hatalar.
API anahtarları
Webhook API’si için ihtiyacınız olan anahtarı oluşturun.
Geliştirici merkezi
Son API istekleri, hızlı başlangıç kılavuzları ve API sandbox.

