İçeriğe geç
enafeedback

Webhook'lar

Talep yönlendirme ve durum değişikliği olaylarını kendi sisteminize HMAC-SHA256 imzalı JSON olarak gönderen webhook'u kurun ve imzayı doğrulayın.

Son güncelleme:

Webhook, EnaFeedback'te bir talep (ticket) yönlendirildiğinde veya durumu değiştiğinde, belirlediğiniz adrese otomatik bir HTTP isteği gönderir. Böylece kendi iş takip sisteminiz, bilgi ekranınız veya iç uygulamanız talepteki değişiklikten anında haberdar olur.

Bu makale webhook'u kurmayı, gönderilen olayları ve gelen isteğin gerçekten EnaFeedback'ten geldiğini imza ile doğrulamayı anlatır.

Gerekli yetki

Webhook ayarı Sistem yönetimi → Entegrasyonlar alanındadır ve yalnızca Sahip rolü tarafından yapılabilir.

Gönderilen olaylar

Bugün gönderilen iş olayları ikidir:

OlayNe zaman
alert.system.ticket.routedBir talep bir veya daha fazla çözüm ekibine yönlendirildiğinde
alert.system.ticket.status_changedTalebin durumu değiştiğinde (Yeni, İşlemde, Kapalı)

Ayrıca ayarlar sayfasından gönderebileceğiniz bir system.test olayı vardır.

Yük içeriği

Webhook yükü kısa tutulmuştur ve temel olarak kimlikler ile durum bilgisini taşır. Talebin tam içeriğine ihtiyaç duyan entegrasyonlar bu yükü bir tetikleyici olarak kullanmalıdır.

Teslim davranışı

  • Kurum başına tek bir webhook adresi tanımlanır.
  • İstek, gövdesi JSON olan bir POST isteğidir.
  • Her olay tek denemede gönderilir; başarısız istekler yeniden denenmez.
  • İsteklerde bir Idempotency-Key başlığı bulunur. Aynı olayı iki kez işlememek için bu değeri saklayın.
  • İmzalama sırrı tanımladıysanız, gövdenin HMAC-SHA256 imzası X-Ena-Signature başlığında gönderilir.
  • Hedef adres, iç ağ adreslerine istek yapılmasını önleyen bir güvenlik denetiminden (SSRF koruması) geçer.
  • Olay bazında abonelik yoktur; adres tanımlandığında yukarıdaki olayların hepsi gönderilir.

Webhook'u kurma

Alıcı uç noktanızı hazırlayın

Kendi sisteminizde, internetten erişilebilen ve HTTPS kullanan bir POST uç noktası açın.

Entegrasyonlar alanını açın

Sistem → Sistem yönetimi → Entegrasyonlar yolunu izleyin ve webhook kanalı için özel webhook sağlayıcısını seçin.

Adresi ve imzalama sırrını girin

Uç nokta adresinizi girin. Güçlü, rastgele bir imzalama sırrı belirleyin ve aynı değeri alıcı sisteminizde güvenli biçimde saklayın.

Test olayı gönderin

Ayarlar sayfasından test olayını gönderin. Alıcınızda system.test olayının geldiğini ve imzanın doğrulandığını kontrol edin.

ENA Gateway webhook göndermez

Webhook kanalı ENA Gateway üzerinde etkin değildir. Webhook almak için mutlaka kendi adresinizi tanımlamanız gerekir.

İmzayı doğrulama

İmza, ham istek gövdesinin imzalama sırrıyla hesaplanan HMAC-SHA256 değeridir. Gövdeyi JSON olarak ayrıştırıp yeniden yazmadan, geldiği haliyle kullanın ve karşılaştırmayı sabit zamanlı yapın.

Aşağıdaki örnekler imzanın onaltılık (hex) metin olarak gönderildiğini varsayar. Canlıya almadan önce test olayıyla gelen başlığın biçimini kontrol edin.

import crypto from 'node:crypto';
import express from 'express';

const app = express();
const SECRET = process.env.ENA_WEBHOOK_SECRET;

app.post('/ena-webhook', express.raw({ type: 'application/json' }), (req, res) => {
  const received = req.get('X-Ena-Signature') ?? '';
  const expected = crypto.createHmac('sha256', SECRET).update(req.body).digest('hex');

  const ok =
    received.length === expected.length &&
    crypto.timingSafeEqual(Buffer.from(received), Buffer.from(expected));
  if (!ok) return res.status(401).end();

  const idempotencyKey = req.get('Idempotency-Key');
  // idempotencyKey daha önce işlendiyse olayı atlayın.
  const event = JSON.parse(req.body.toString('utf8'));
  // event'i işleyin…
  res.status(200).end();
});

İpuçları

  • Yeniden deneme olmadığı için uç noktanızı hızlı yanıt verecek şekilde tasarlayın: isteği kaydedip hemen 200 dönün, ağır işleri arka planda yapın.
  • Kaçırılan bir olay olursa talebin güncel durumunu yönetim panelinden kontrol edin.
  • İmzalama sırrını değiştirdiğinizde alıcı sistemdeki değeri de aynı anda güncelleyin.

Sınırlar

  • Herkese açık bir REST API veya API anahtarı yoktur; webhook dışarıya veri aktaran tek entegrasyon noktasıdır.
  • n8n, Make veya Zapier için hazır bağlayıcı yoktur.
  • Olay bazında abonelik ve yeniden deneme yoktur.

İlgili makaleler

Aradığınızı bulamadınız mı?

Destek ekibimiz kurulumdan raporlamaya kadar her konuda yardımcı olur.

support@enainnovation.com · 0850 308 45 91