> ## Documentation Index
> Fetch the complete documentation index at: https://knowledge.flowella.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Giden web kancalarını Ayarlar → Web kancaları bölümünden yapılandırın: uç nokta URL'leri, imza gizli dizileri, etkinlikler ve teslim günlükleri.

<Frame>
  <img src="https://mintcdn.com/flowella/PuGNWwHHg6Nlq3MM/images/Screenshots/flowella-webhooks.png?fit=max&auto=format&n=PuGNWwHHg6Nlq3MM&q=85&s=6b4378754549ac127c02626ed49d468d" alt="Flowella outbound webhooks" width="2774" height="1686" data-path="images/Screenshots/flowella-webhooks.png" />
</Frame>

Web kancaları, Flowella'nin olayları gerçek zamanlı olarak kendi sistemlerinize göndermesini sağlar - örneğin, bir WhatsApp mesajı teslim edildiğinde CRM'nizi bilgilendirin veya bir HubSpot form senkronizasyonu başarısız olduğunda bir arka plan işini başlatın. Bu sayfa uygulama içi **Ayarlar → Webhooks** ekranını kapsar.

Her olayın yük şemaları için [Webhooks referansı](/tr/api-reference/webhooks) bölümüne bakın.

## Web kancalarını kimler yönetebilir

Yalnızca **Owner** ve **Admin** rolleri Ayarlar → Web kancalarını görebilir. Diğer rollerin erişimi yoktur.

## Bir web kancası uç noktası ekleme

<Steps>
  <Step title="Ayarlar → Web Kancaları'nı açın">
    Sol navigasyondan **Ayarlar → Web Kancaları** seçeneğine gidin.
  </Step>

  <Step title="Uç nokta ekle'ye tıklayın">
    Flowella'nin olayları POST etmesi gereken genel HTTPS URL'sini girin. HTTP (TLS olmadan) kabul edilmez.
  </Step>

  <Step title="Hangi etkinliklere abone olacağınızı seçin">
    Bir veya daha fazla olay türü seçin - örneğin, `message.delivered`, `template.approved`, `flow.sync.failed`. Olay listesinin tamamı [Webhooks reference](/tr/api-reference/webhooks) adresinde bulunmaktadır. Tek bir onay kutusu ile tüm etkinliklere abone olabilirsiniz.
  </Step>

  <Step title="İmzalama sırrını kopyalayın">
    Flowella imzalama sırrını **bir kez** oluşturma akışının sonunda gösterir. Güvenli bir depoda saklayın - gelen her istekte HMAC imzasını doğrulamak için kullanacaksınız.
  </Step>

  <Step title="Bir test olayı gönderin">
    Uç noktanızda yapay bir olay başlatmak için **Send test** düğmesini kullanın. Teslimat günlüğü sonucu kaydeder, böylece canlı yayına geçmeden önce işleyicinizin bağlı olduğunu doğrulayabilirsiniz.
  </Step>
</Steps>

## İmzalama ve doğrulama

Her web kancası isteği, uç noktanızın imzalama sırrı ile hesaplanan ham istek gövdesinin HMAC-SHA256 imzasını içeren bir `X-Flowella-Signature` başlığı içerir. Yüke güvenmeden önce bunu doğrulayın:

<CodeGroup>
  ```js Node.js theme={null}
  import crypto from "crypto";

  function verify(rawBody, signature, secret) {
    const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
    return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signature));
  }
  ```

  ```python Python theme={null}
  import hmac, hashlib

  def verify(raw_body: bytes, signature: str, secret: str) -> bool:
      expected = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
      return hmac.compare_digest(expected, signature)
  ```

  ```ruby Ruby theme={null}
  require "openssl"

  def verify(raw_body, signature, secret)
    expected = OpenSSL::HMAC.hexdigest("sha256", secret, raw_body)
    Rack::Utils.secure_compare(expected, signature)
  end
  ```

  ```php PHP theme={null}
  function verify(string $rawBody, string $signature, string $secret): bool {
      $expected = hash_hmac('sha256', $rawBody, $secret);
      return hash_equals($expected, $signature);
  }
  ```
</CodeGroup>

Talep ayrıca şunları da içermektedir:

* `X-Flowella-Timestamp` - gönderme zamanındaki Unix zaman damgası. Yeniden oynatma saldırılarını önlemek için zaman damgasının geçmişte veya gelecekte 5 dakikadan fazla olduğu istekleri reddedin.
* `X-Flowella-Event` - olay türü (örneğin, `message.delivered`).
* `X-Flowella-Delivery` - tekilleştirme için yararlı olan benzersiz bir teslimat kimliği.

## Yeniden denemeler ve geri çekilme

Uç noktanız 2xx olmayan bir durum kodu döndürürse (veya 10 saniye sonra zaman aşımına uğrarsa), Flowella üstel geri alma ile yeniden dener:

\| Deneme | Önceki |'den sonraki gecikme | --- | --- | | 1 (başlangıç) | - | | 2 | 30 saniye | | 3 | 2 dakika | | 4 | 10 dakika | | 5 | 1 saat | | 6 | 6 saat | | 7 (son) | 24 saat |

7 başarısız denemeden sonra teslimat **başarısız** olarak işaretlenir ve bırakılır. Uç nokta **otomatik olarak devre dışı bırakılmaz** - aynı uç nokta üzerinden gelecekteki olayları almaya devam edebilirsiniz.

Ardışık 100 teslimat başarısız olursa, Flowella uç noktayı **otomatik olarak duraklatır** ve bir `WEBHOOK_PAUSED` bildirimi gönderir. Altta yatan sorunu çözdükten sonra satırın menüsünden devam edin.

## Teslimat günlüğü

Her uç nokta satırı, son 7 günlük denemeleri gösteren bir teslimat günlüğüne genişler:

* **Olay türü ve kimliği**
* Durum\*\* - başarılı, başarısız, yeniden deniyor
* **Teşebbüs numarası**
* **Yanıt kodu ve süresi**
* **Yanıt gövdesi** (ilk 1 KB)
* **Gönderildi**

Talebin ve yanıtın tamamını görüntülemek veya manuel olarak **yeniden teslim etmek** için herhangi bir teslimata tıklayın.

## Uç noktaları yönetme

Uç nokta satır menüsünden şunları yapabilirsiniz:

* Düzenle\*\* - URL'yi veya olay aboneliklerini değiştirin. (İmzalama sırrı aynı kalır.)
* **Rotate secret** - yeni bir imzalama sırrı oluşturun. Eski sır hemen çalışmayı durdurur, bu nedenle değişikliği işleyicinizle koordine edin.
* Duraklat\*\* - yapılandırmayı kaybetmeden teslimatları geçici olarak durdurun.
* Devam\*\* - duraklatılmış bir uç noktayı tekrar açın.
* Sil\*\* - uç noktayı ve teslimat geçmişini kaldırır.

## Yaygın sorular

<AccordionGroup>
  <Accordion title="Birden fazla uç noktam olabilir mi?">
    Evet - katı bir sınır yoktur. Çoğu kuruluşun 1-3 uç noktası vardır (üretim, hazırlık ve dahili bir günlük havuzu). Sayıyı düşük tutun, böylece olaylar tahmin edilebilir şekilde yayılır.
  </Accordion>

  <Accordion title="Web kancaları ile API arasındaki fark nedir?">
    API **pull** şeklindedir - kodunuz Flowella'den durum ister. Webhooks **push** - Flowella durum değiştiğinde kodunuza bildirir. Normalde yoklama yapacağınız her şey için web kancalarını kullanın.
  </Accordion>

  <Accordion title="Web kancaları hassas veriler içeriyor mu?">
    Web kancası yükleri konuşma kimliklerini, kişi telefon numaralarını, mesaj içeriğini ve şablon adlarını içerir. Gizli ve uç nokta URL'sini hassas olarak değerlendirin. Altyapınız izin veriyorsa, uç noktanızı Flowella'nin IP aralığından POST kabul edecek şekilde kısıtlayın.
  </Accordion>

  <Accordion title="Web kancalarını yerel olarak nasıl test edebilirim?">
    Localhost uç noktanızı genel bir HTTPS URL'sine göstermek için bir tünel aracı (ngrok, Cloudflare Tunnel) kullanın, ardından bir **Test uç noktasını** buna yönlendirin. Üretim uç noktanıza bir tünel URL'si koymayın - süreleri dolar.
  </Accordion>
</AccordionGroup>

## İlgili

<CardGroup cols={2}>
  <Card title="Web kancaları referansı" icon="webhook" href="/tr/api-reference/webhooks">
    Olay türleri, yük şemaları ve başlıklar.
  </Card>

  <Card title="API anahtarları" icon="key" href="/tr/settings/api-keys">
    Programatik entegrasyonun diğer yarısı.
  </Card>

  <Card title="API tanıtımı" icon="code" href="/tr/api-reference/introduction">
    Hatalar, oran sınırları ve sayfalandırma.
  </Card>

  <Card title="Bildirim etkinlikleri" icon="bell" href="/tr/app/notification-events">
    Aynı etkinlikler uygulama içi akışa ve e-postaya iletilir.
  </Card>
</CardGroup>
