Webhooklar
Enafeedback'ten kendi sistemlerinizde gerçek zamanlı olay bildirimleri almak için webhook'ları ayarlayın.
Son güncelleme:
Webhooklar, Enafeedback'ten olay tabanlı bildirimler almanıza olanak tanır. Bir olay gerçekleştiğinde (örn. yeni bir anket yanıtı), Enafeedback yapılandırılmış uç noktanıza JSON yük içeren bir HTTP POST isteği gönderir.
Webhook Oluşturma
- Global Ayarlar → Entegrasyonlar → Webhooklar'a gidin.
- Webhook uç noktası ekle'ye tıklayın.
- Uç Nokta URL'si — olayları alacak HTTPS URL'sini girin.
- Abone olmak istediğiniz Olayları seçin.
- Kaydet'e tıklayın.
İmza doğrulama için otomatik olarak bir gizli anahtar oluşturulur.
Webhook uç noktaları HTTPS kullanmalıdır. HTTP uç noktaları güvenlik nedeniyle reddedilir.
Olaylar
| Olay | Tetikleyici |
|---|---|
survey.response.created | Ziyaretçi anket yanıtı gönderir |
survey.response.updated | Ziyaretçi önceki yanıtını günceller |
hygiene.submission.created | Ziyaretçi hijyen değerlendirmesi gönderir |
feedback.ticket.created | Yeni geri bildirim bileti gönderilir |
feedback.ticket.status_changed | Bir biletin durumu değişir |
cleaning.log.created | Temizlik personeli giriş gönderir |
poster.scanned | Bir QR kodu okutulur (form yüklenmeden önce tetiklenir) |
Tüm olaylara (*) veya belirli bir alt kümeye abone olabilirsiniz.
Yük Formatı
Tüm webhook yükleri ortak bir zarf paylaşır:
{
"id": "evt_01HXYZ...",
"event": "survey.response.created",
"created_at": "2026-06-07T10:30:00Z",
"workspace_id": "ws_abc123",
"data": {
// Olaya özgü alanlar
}
}Örnek: survey.response.created
{
"id": "evt_01HXYZ",
"event": "survey.response.created",
"created_at": "2026-06-07T10:30:00Z",
"workspace_id": "ws_abc123",
"data": {
"session_id": "ses_001",
"survey_id": "srv_456",
"survey_version": 3,
"location_id": "loc_789",
"location_name": "Resepsiyon",
"completed_at": "2026-06-07T10:30:00Z",
"duration_seconds": 47,
"answers": [
{ "question_id": "q1", "type": "rating", "value": 5 },
{ "question_id": "q2", "type": "text", "value": "Çok yardımsever personel" }
]
}
}İmza Doğrulama
Her webhook isteği bir X-Enafeedback-Signature başlığı içerir. Bu, uç noktanızın gizli anahtarı kullanılarak ham istek gövdesinin HMAC-SHA256 imzasıdır.
İmzayı doğrulamak için:
import { createHmac } from 'node:crypto';
function verifyWebhook(body: string, signature: string, secret: string): boolean {
const expected = createHmac('sha256', secret)
.update(body)
.digest('hex');
return `sha256=${expected}` === signature;
}Yükleri işlemeden önce her zaman imzaları doğrulayın.
Yeniden Deneme Politikası
Uç noktanız 2xx olmayan bir yanıt döndürürse (veya zaman aşımına uğrarsa), Enafeedback üstel geri çekilmeyle yeniden dener:
| Deneme | Gecikme |
|---|---|
| 1. yeniden deneme | 30 saniye |
| 2. yeniden deneme | 5 dakika |
| 3. yeniden deneme | 30 dakika |
| 4. yeniden deneme | 2 saat |
4 başarısız yeniden denemeden sonra teslimat başarısız olarak işaretlenir ve başka yeniden deneme yapılmaz. Başarısız teslimatlar webhook teslimat günlüğünde görünür.
Teslimat Günlüğü
Global Ayarlar → Entegrasyonlar → Webhooklar → [Uç Nokta] → Teslimatlar şunları gösterir:
- Olay türü
- Teslimat zaman damgası
- HTTP yanıt durumu
- Yanıt gövdesi (hata ayıklama için)
- Yeniden deneme sayısı
Bu günlükten herhangi bir başarısız teslimatı manuel olarak yeniden deneyebilirsiniz.
Webhook Testi
Uç nokta yapılandırma sayfasından Test olayı gönder'e tıklayarak uç noktanıza örnek bir yük gönderin. Test olayı sahte veriler kullanır ve yükte "test": true ile açıkça işaretlenir.
Uç Noktaları Devre Dışı Bırakma ve Silme
- Devre dışı bırak — Yapılandırmayı kaybetmeden geçici olarak olay göndermeyi durdurur. İstediğiniz zaman yeniden etkinleştirin.
- Sil — Uç noktayı ve teslimat günlüğünü kalıcı olarak kaldırır. Gizli anahtar hemen geçersiz hâle gelir.