Slack, Discord ve Teams webhook
Webhook (belirtilen bir adrese otomatik mesaj gönderimi), herhangi bir uygulamaya bildirim göndermenin evrensel bir yoludur - Slack, Discord, Microsoft Teams veya kendi sisteminize. Bağlantı kurmak birkaç dakika sürer ve ePulz.io mesajı hedef hizmete göre otomatik olarak biçimlendirir.
ePulz.io, webhook adresine göre hedef hizmet türünü otomatik olarak tanır. Şunları tanıyoruz: Slack (hooks.slack.com/services/...), Discord (discord.com/api/webhooks/... ve discordapp.com/api/webhooks/...), Microsoft Teams dahil Power Automate / Workflows (*.webhook.office.com, outlook.office.com/webhook/..., *.logic.azure.com/workflows/...). Diğer adresler için genel bir JSON payload kullanırız.
Slack bağlama
- Slack'te api.slack.com/apps adresini açın ve Create New App → From scratch seçeneğine tıklayın.
- Uygulamayı adlandırın (örneğin "ePulz Alerts") ve ait olması gereken workspace'i seçin.
- Sol menüde Incoming Webhooks seçeneğini belirleyin ve bunları On konumuna getirin.
- Add New Webhook to Workspace seçeneğine tıklayın ve uyarı almak istediğiniz kanalı seçin.
- Oluşturulan webhook adresini kopyalayın (
https://hooks.slack.com/services/...ile başlar). - ePulz.io'da Ayarlar → Bildirimler → Webhook bölümünü açın, adresi yapıştırın ve kaydedin.
ePulz.io bunun Slack olduğunu otomatik olarak tanır ve renkli bir çubukla (kesintide kırmızı, geri gelişte yeşil) ve panoya geri dönüş bağlantısıyla güzel biçimlendirilmiş mesajlar gönderir.
Discord bağlama
- Discord sunucunuzda kanala sağ tıklayın ve Kanalı düzenle → Entegrasyonlar → Webhook'lar seçeneğini belirleyin.
- Yeni webhook seçeneğine tıklayın, gerekirse botu adlandırın ve bir avatar belirleyin.
- Webhook URL'sini kopyala seçeneğine tıklayın. Adres
https://discord.com/api/webhooks/...biçimindedir. - ePulz.io'da Ayarlar → Bildirimler → Webhook bölümünü açın, adresi yapıştırın ve kaydedin.
Discord için de mesaj biçimini otomatik olarak hazırlarız - monitör adı, sorun açıklaması ve zaman bilgisiyle bir Discord embed (çerçeveli, vurgulanmış mesaj) kullanılır.
Webhook'u test etme
Adresi kaydettikten sonra ayarlarda Test et seçeneğine tıklayın. Hedef kanala bir test mesajı göndeririz, böylece uyarının nasıl görüneceğini hemen görürsünüz. Hiçbir şey gelmezse, adresin tamamını doğru kopyaladığınızı ve botun kanala erişiminin olduğunu kontrol edin.
Microsoft Teams (Adaptive Card)
Microsoft Teams için (Power Automate / Workflow URL'leri logic.azure.com/workflows/... dahil) mesajı, bir mesaja sarmalanmış Adaptive Card v1.4 biçiminde göndeririz:
{
"type": "message",
"attachments": [{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{"type": "TextBlock", "text": "Monitor DOWN: Üretim sitesi", "weight": "bolder", "size": "large"},
{"type": "TextBlock", "text": "Erişilemiyor: HTTP 503", "wrap": true}
],
"actions": [
{"type": "Action.OpenUrl", "title": "ePulz.io'da aç", "url": "https://epulz.io/dashboard/monitor/42"}
]
}
}]
}
Teams'te webhook adresi, kanaldaki Incoming Webhook konnektöründen veya Power Automate "Post to Teams when a HTTP request is received" şablonundan alınır.
Özel webhook (genel endpoint)
Uyarıları kendi uygulamanıza göndermeniz gerekiyorsa, ayarlara endpoint'inizin adresini (hedef adresi) girin. ePulz.io oraya POST yöntemiyle, JSON biçiminde bir gövdeye sahip bir istek gönderir:
{
"event": "down",
"monitor": {
"name": "Üretim sitesi",
"target": "https://example.com",
"url": "https://epulz.io/dashboard/monitor/42"
},
"message": "Erişilemiyor: HTTP 503",
"timestamp": "2026-05-31T14:23:45+00:00",
"source": "epulzio"
}
event alanı şu değerleri alır: down (kesinti), up (geri gelme), ssl (yaklaşan SSL sertifikası süresinin dolması), domain (yaklaşan alan adı süresinin dolması), anomaly (yanıt anomalisi) veya test (test gönderimi). monitor.name alanı monitör adıdır, monitor.target izlenen adrestir ve monitor.url ePulz.io panosuna geri dönüş bağlantısıdır.
İmza doğrulama (HMAC)
İsteğe bağlı olarak ayarlarda imzalamayı etkinleştirebilirsiniz - o zaman her isteği gizli bir anahtarla (HMAC SHA-256) imzalar ve iki başlık ekleriz:
X-ePulzio-Signature- istek gövdesindensha256=<hex digest>biçiminde imzaX-ePulzio-Event- olay türü (gövdedekieventalanıyla aynı değer)
Endpoint'inizde, alınan gövdenin HMAC SHA-256 değerini aynı gizli anahtarla hesaplayıp başlıkla karşılaştırmanız yeterlidir. Eşleşiyorlarsa istek gerçektir ve aktarım sırasında değiştirilmemiştir.
#alerts). Böylece kanal başka tartışmalarla dolup taşmaz ve kritik mesajlar kimsenin gözünden kaçmaz.