Webhook Entegrasyonu

Sensium'daki olayları (alarm, cihaz durumu değişikliği vb.) ERP, MRP veya MES sisteminize webhook ile gönderin.

Webhook Oluşturma

Dashboard → Ayarlar → Webhook'lar sayfasından yeni webhook ekleyebilirsiniz.

Olay Tipleri

OlayAçıklama
alert.createdYeni alarm oluştu
alert.acknowledgedAlarm onaylandı
alert.resolvedAlarm çözüldü
device.onlineCihaz çevrimiçi
device.offlineCihaz çevrimdışı (60 sn veri yok)
machine.status_changedMakine durumu değişti (online → warning vb.)
machine.assigned_to_groupMakine bir gruba eklendi/çıkarıldı
ai.anomaly_detectedAI yardımcı anormallik tespit etti
audit.entity_changedBir varlıkta CRUD işlemi (audit log)

Webhook Payload

POSTWebhook İsteği
POST https:300">"text-slate-500">//erp.sirketiniz.com/pulse-webhook
Content-Type: application/json
X-Sensium-Signature: sha256=abc123...
X-Sensium-Event: alert.created
X-Sensium-Delivery: 7c1b9f4e-...
X-Sensium-Tenant: 41e1833a-...

{
  300">"event": 300">"alert.created",
  300">"timestamp": 300">"2026-05-04T12:00:00Z",
  300">"data": {
    300">"id": 300">"550e8400-...",
    300">"severity": 300">"critical",
    300">"sensorType": 300">"temperature",
    300">"triggeredValue": 87.5,
    300">"threshold": 85,
    300">"machineId": 300">"abc-...",
    300">"machineName": 300">"CNC Tezgah 1",
    300">"groupIds": [300">"pres-atolyesi-uuid"],
    300">"deviceKey": 300">"cnc-001",
    300">"sensorKey": 300">"spindleTemperature"
  }
}

İmza Doğrulama

Her webhook isteği X-Sensium-Signature header'ı ile imzalanır. Gelen istekleri doğrulamak için:

verify-signature.js
const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const expected = 'sha256=' +
    crypto.createHmac('sha256', secret)
      .update(JSON.stringify(payload))
      .digest('hex');

  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

300">"text-slate-500">// Express middleware örneği
app.post('/pulse-webhook', (req, res) => {
  const signature = req.headers['x-sensium-signature'];
  if (!verifySignature(req.body, signature, 'wh_sizin_secret')) {
    return res.status(401).json({ error: 'Invalid signature' });
  }
  300">"text-slate-500">// İşle...
  res.json({ received: true });
});

Yeniden Deneme

Başarısız webhook gönderimleri (HTTP 4xx/5xx veya timeout) üç kez yeniden denenir:

1. denemeAnlık
2. deneme1 dakika sonra
3. deneme5 dakika sonra

Plan Sınırlamaları

PlanWebhook Limiti
Başlangıç1 webhook
Profesyonel5 webhook
KurumsalSınırsız