İçeriğe atla
Clevera Yardım Merkezi

Temsilci etkinlikleri için Webhook'ları ayarlama

Bir temsilcinin işi bittiğinde veya başarısız olduğunda, bir temsilci onay beklediğinde ya da bir doküman sitesi yayınlandığında kendi https uç noktanızda imzalı bir POST isteği alın. Etkinlikler, yükler, imza doğrulama, yeniden denemeler ve otomatik devre dışı bırakma.

Güncellenme 7 dk okuma

Bir webhook, bir temsilcinin işinin bitmesi veya bir temsilcinin onay beklemesi gibi bir durum gerçekleştiği anda kendi uç noktanıza imzalı bir POST gönderir, böylece sistemlerinizin sürekli sorgulama yapmasına gerek kalmaz. Bu makale; bir uç nokta eklemeyi, etkinlikleri, yükü, imza doğrulamayı ve teslimatlar başarısız olduğunda neler yaşandığını kapsar.

Başlamadan önce

  • Webhook'lar Pro, Business ve Custom planlarında mevcuttur ("Webhook'lar Pro ve üzeri planlarda mevcuttur.").
  • Webhook'ları yalnızca çalışma alanı sahibi ve yöneticileri yönetebilir. Diğer üyeler "Webhook'ları yalnızca sahipler ve yöneticiler yönetebilir" uyarısını görür.
  • 10 saniye içinde 2xx durumuyla yanıt veren herkese açık bir https adresine ihtiyacınız vardır.
  • Bir çalışma alanında en fazla 10 webhook bulunabilir.

Webhook ekleme

  1. Webhook'lar sekmesini açma

    Çalışma alanı menüsünü açın, AI agents & API seçeneğini belirleyin ve ardından Webhooks kısmına girin. Yeni webhook düğmesine tıklayın.

    example.com adresinde bir uç noktası, aldığı etkinlikler ve en son ne zaman gönderim yaptığı gösterilen Webhook'lar sekmesi.
    Her webhook; aldığı etkinlikleri, en son ne zaman gönderim yaptığını ve gizli anahtarının son kısmını gösterir.
  2. Uç noktayı girme

    • Endpoint URL: "Herkese açık bir HTTPS adresi." Örneğin https://example.com/clevera/webhooks.
    • Açıklama: isteğe bağlı, en fazla 200 karakter, örneğin "Slack aktarıcısı".
  3. Etkinlikleri seçme

    Almak istediğiniz etkinlikleri işaretleyin veya Yeni etkinlikler dahil tüm etkinlikler seçeneğini belirleyin. Yakında olarak işaretlenen etkinlikler kabul edilir ancak "Henüz bu etkinliği gönderen bir şey yok."

    Yeni webhook iletişim kutusu: uç nokta URL'si, açıklama ve gönderilecek etkinlikler; henüz gönderilmeyen etkinlikler Yakında olarak işaretlenmiştir.
    Yakında olarak işaretlenen etkinlikler kabul edilir ancak henüz gönderilmez.
  4. Oluşturma ve gizli anahtarı kaydetme

    Create webhook düğmesine tıklayın. Signing secret (whsec_ ile başlar) yalnızca bir kez gösterilir: "Şimdi kopyalayın: tekrar göremezsiniz. Clevera-Signature başlığını kontrol etmek için kullanın." Bir parola gibi saklayın ve ardından Kaydettim düğmesine tıklayın.

  5. Test etkinliği gönderme

    Webhook'un ⋯ menüsünü açın ve Test etkinliği gönder seçeneğini belirleyin. Clevera bir kez imzalı ping etkinliği gönderir (yeniden deneme yapılmaz). "Test etkinliği gönderildi" ifadesi, etkinliğin Clevera'dan çıktığı anlamına gelir; uç noktanızın yanıtı için Teslimatlar kısmını kontrol edin.

Etkinlikler

Etkinlik Ne zaman gönderilir
job.started Bir temsilcinin başlattığı iş çalışmaya başladığında.
job.needs_input Bir iş bir kişiyi beklediğinde, örneğin bir onay. Bağlantıyı ve isteğin ne zaman sona ereceğini içerir.
job.succeeded İş tamamlandığında.
job.failed İş başarısız olduğunda. Hata kodunu içerir.
job.canceled İş iptal edildiğinde veya onayı reddedildiğinde ya da süresi dolduğunda.
approval.requested Bir temsilci Temsilci istekleri üzerinden onay istediğinde.
approval.decided Birisi isteği onayladığında veya reddettiğinde ya da istek süresi dolduğunda.
site.published Bir doküman sitesi yayınlandığında.
site.build_failed Bir doküman sitesi yayını başarısız olduğunda.
ping Test etkinliği gönder düğmesine tıkladığınızda. Abonelik gerektirmez.

Bu etkinlikler Yakında olarak listelenmiştir ve henüz gönderilmemektedir: job.progress, video.ready, article.ready, research.completed, insights.weekly.

İş etkinlikleri, insanların uygulamada başlattığı videoları değil, temsilcilerin (bir API anahtarı veya bağlı bir uygulama aracılığıyla) başlattığı işleri kapsar.

Clevera'nın gönderdikleri

Her teslimat, JSON gövdesine ve şu başlıklara sahip bir POST'dır:

Başlık Değer
Content-Type application/json
User-Agent Clevera-Webhooks/1.0
Clevera-Event job.succeeded gibi etkinlik adı
Clevera-Delivery Teslimatın benzersiz kimliği. Yeniden teslimat aynı kimliği tekrarlar, bu yüzden kopyaları yoksaymak için kullanın.
Clevera-Signature t=<unix time>,v1=<signature>

Yükler; kimlikleri, bağlantıları, durumları ve sayıları taşır, içeriğin kendisini asla taşımaz. Tamamlanmış bir videoyu veya makaleyi okumak için bir belirteçle API'yi çağırın.

job.succeeded
{
  "id": "6f1c2d3e-4b5a-4c6d-8e9f-0a1b2c3d4e5f",
  "event": "job.succeeded",
  "created_at": "2026-10-20T14:03:11Z",
  "data": {
    "job": {
      "id": "job_8k2m4n6p8r0t2v4x",
      "kind": "video.create",
      "status": "succeeded",
      "error_code": null,
      "subject": { "type": "video", "id": "vid_example" },
      "credits_spent": 64
    },
    "needs_input": null,
    "workspace": { "id": "tm_example" }
  }
}
approval.requested
{
  "id": "0b9a8c7d-6e5f-4a3b-9c2d-1e0f9a8b7c6d",
  "event": "approval.requested",
  "created_at": "2026-10-20T14:01:02Z",
  "data": {
    "approval": {
      "id": "apr_example",
      "kind": "spend",
      "status": "pending",
      "credits_high": 80,
      "expires_at": "2026-10-21T14:01:02Z",
      "decided_at": null,
      "url": "https://app.clevera.ai/agents?tab=requests&team=tm_example"
    },
    "job": { "id": "job_8k2m4n6p8r0t2v4x", "kind": "video.create" },
    "workspace": { "id": "tm_example" }
  }
}

İmzayı doğrulama

Güvenmeden önce her teslimatı kontrol edin. İmza, imzalama gizli anahtarınızla anahtarlanmış bir HMAC-SHA256'dır; zaman damgası, bir nokta ve ham istek gövdesinden oluşur: <t>.<body>.

  1. Clevera-Signature başlığından t ve v1 değerlerini okuyun.
  2. HMAC-SHA256(secret, t + "." + rawBody) değerini onaltılık (hex) olarak hesaplayın.
  3. Bunu sabit sürede v1 ile karşılaştırın.
  4. Yakalanan bir isteğin tekrar oynatılmaması için t değeri 5 dakikadan eski olan teslimatları reddedin.
verify.js
import crypto from 'node:crypto';

export function verifyClevera(rawBody, header, secret, toleranceSeconds = 300) {
  const parts = Object.fromEntries(header.split(',').map((p) => p.trim().split('=')));
  const t = Number(parts.t);
  if (!parts.v1 || !Number.isInteger(t)) return false;
  if (Math.abs(Date.now() / 1000 - t) > toleranceSeconds) return false;
  const expected = crypto.createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex');
  return expected.length === parts.v1.length &&
    crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(parts.v1));
}

Gövdeyi tam olarak alındığı gibi kullanın. JSON'ı önce ayrıştırıp yeniden kodlamak baytları değiştirir ve imza eşleşmez.

Yeniden denemeler ve hatalar

Bir teslimat, uç noktanız 2xx durumuyla yanıt verdiğinde teslim edilmiş sayılır. Başka herhangi bir durum denemeyi başarısız kılar:

  • yönlendirmeler dahil diğer tüm durumlar (3xx takip edilmez);
  • 10 saniye içinde yanıt gelmemesi (bağlanmak için 5 saniye);
  • artık genel internete çözümlenmeyen bir adres.

Clevera başarısız bir teslimatı 1 dakika, 5 dakika, 30 dakika, 2 saat ve 6 saat sonra olmak üzere 5 kez yeniden dener. Uç noktanızın yanıt gövdesi asla okunmaz.

Arka arkaya 15 teslimat başarısız olduğunda, webhook kapatılır: "Arka arkaya 15 başarısız teslimattan sonra kapatıldı. Uç noktayı düzeltin ve ardından açın." Sahip ve yöneticiler "host için webhook kapatıldı" şeklinde bir bildirim alır: "Teslimatları başarısız olmaya devam etti. Uç noktayı düzeltin ve ardından tekrar açın." Kapalıyken gerçekleşen etkinlikler gönderilmez. Test etkinlikleri bu sayıya dahil edilmez.

Webhook yönetimi

Günlüğünü görmek için bir webhook üzerindeki Teslimatlar seçeneğine tıklayın veya geri kalanı için ⋯ menüsünü açın:

Seçenek Ne işe yarar
Düzenle URL'yi, etkinlikleri veya açıklamayı değiştirin.
Teslimatlar Durumları (Teslim edildi, Başarısız, Gönderiliyor), Denemeler ve HTTP kodu ile son 100 teslimat. Yeniden teslim et birini tekrar gönderir. Teslimatlar 30 gün boyunca saklanır.
Test etkinliği gönder İmzalı bir ping gönderir.
Gizli anahtarı yeniden oluştur "Teslimatlar hemen yeni gizli anahtarla imzalanır. Uç noktanızı bunu kontrol edecek şekilde güncelleyin." Çakışma yoktur, bu yüzden uç noktanızı hemen ardından güncelleyin.
Kapat / Aç Teslimatları duraklatın ve devam ettirin.
Sil "Ona etkinlik göndermeyi durdururuz ve teslimat günlüğünü sileriz. Bu işlem geri alınamaz."

Çalışma alanı Pro planından ayrılırsa

Webhook'lar listelenmeye devam eder ve düzenlenip silinebilir, ancak hiçbir şey gönderilmez. Yeniden deneme bekleyen teslimatlar plan_locked ile başarısız olarak sonuçlanır ve Test etkinliği gönder ile Yeniden teslim et seçenekleri "Webhook'lar planınızda mevcut değil" uyarısını verir. Tekrar Pro'ya yükseltmek gönderimi başlatır; hiçbir şey silinmez.

Sorun giderme

İleti Neden Çözüm
"Webhook'lar planınızda mevcut değil." Çalışma alanı Pro, Business veya Custom planında değil. Pro'ya yükseltin.
"https:// adresi kullanın." URL http:// ile başlıyor. Uç noktayı HTTPS üzerinden sunun.
"IP adresi değil, ana bilgisayar adı kullanın." URL bir IP adresi kullanıyor. Bir alan adı kullanın.
"Bu adres genel internette erişilebilir değil." Ana bilgisayar özel veya yerel bir adrese çözümleniyor. Genel bir uç nokta veya aktarıcı kullanın.
"Adresten kullanıcı adını ve parolayı kaldırın." URL user:password@ içeriyor. Bunları kaldırın; bunun yerine imzayı kontrol edin.
"Geçerli bir web adresi girin." URL geçerli değil. Yazım hatalarını kontrol edin.
"En az bir etkinlik seçin." Hiçbir etkinlik işaretlenmemiş. En az bir etkinlik işaretleyin.
"Bu çalışma alanında zaten 10 webhook var." Çalışma alanı sınırı. Kullanmadığınız birini silin.
"Önce webhook'u tekrar açın." Kapalı bir webhook'ta yeniden teslimat yapmaya çalıştınız. Açın ve ardından yeniden teslim edin.
"Bu teslimat hala gönderiliyor." Teslimat hala yeniden deneniyor. Bitmesini bekleyin.
Teslimatlar HTTP koduyla başarısız oluyor Uç noktanız bir hatayla yanıt verdi. Uç noktanızın günlüklerini kontrol edin ve 2xx değerini hızlıca döndürdüğünden emin olun; yavaş işlemleri yanıt verdikten sonra yapın.
İmzalar asla eşleşmiyor Gövde kontrol edilmeden önce değiştirildi veya gizli anahtar eski. Ham gövdeye karşı doğrulayın; emin değilseniz gizli anahtarı yeniden oluşturun.