Webhooks الصادرة
تتيح Webhooks الصادرة لـ Momentumpro دفع الأحداث إلى أنظمتك الخاصّة — Slack، Zapier، n8n، الخدمات الداخلية. في الوقت الفعلي، موقَّعة بـ HMAC.
ما يمكنك الاشتراك فيه
تقريباً كل حدث ذي معنى:
employee.created،employee.updated،employee.terminatedattendance.clock_in،attendance.clock_out،attendance.exceptionleave.requested،leave.approved،leave.rejectedexpense.submitted،expense.approved،expense.paidpo.issued،po.received،po.invoicedincident.reported،incident.closedpayroll.locked،payroll.published- ...والكثير غيرها
القائمة الكاملة في /admin/webhooks/event-catalog في عميلك.
إضافة webhook
- Admin ← Webhooks ← New endpoint.
- اضبط:
- URL — نقطة النهاية الخاصّة بك.
- الأحداث — اختر أي الأحداث تُحفّز هذه النقطة.
- السرّ — للتحقّق من توقيع HMAC.
- احفظ.
ما تستلمه
كل حدث يُرسل POST إلى رابطك مع حمولة JSON:
{
"event": "leave.approved",
"occurred_at": "2026-04-29T14:32:11Z",
"data": {
"id": 123,
"employee_id": 45,
"leave_type": "Annual",
"from": "2026-05-10",
"to": "2026-05-14",
"days": 5,
"approved_by": 12
}
}
بالإضافة إلى ترويسة X-Momentumpro-Signature — HMAC-SHA256 للجسم، موقَّع بسرّك.
التحقّق من التوقيعات
ارفض أي webhook حيث:
- ترويسة التوقيع لا تطابق
HMAC-SHA256(body, secret). X-Momentumpro-Timestampأقدم من 5 دقائق.
هذا يمنع هجمات الإعادة. كود متحقّق نموذجي:
import hmac, hashlib
def verify(body: bytes, header_sig: str, secret: str) -> bool:
expected = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header_sig)
المحاولات
إذا أعادت نقطتك خطأ 5xx أو انتهت مهلة، تعيد Momentumpro المحاولة:
- دقيقة واحدة
- 5 دقائق
- 30 دقيقة
- ساعتان
- 12 ساعة
بعد 5 محاولات فاشلة، يُسقَط الحدث. لوحة الصحّة للنقطة تعرض حالة التسليم الأخيرة.
التكاملات الشائعة
- Slack — احصل على رسالة في #operations عند تقديم حادث ذي أولوية عالية.
- Zapier — حفّز صفّ Google Sheets عند دفع فاتورة.
- n8n — أتمتة سير عمل كاملة.
- PagerDuty — راسل شخصاً للحوادث الحرجة.