تفعيل الويب هوك (Webhooks)
يشرح هذا المقال كيف تفعّل الويب هوك في منصتك لتربطها مع خدمات أخرى. وهو موجه لمدير المنصة.
ما هي الويب هوك (Webhooks)؟
الويب هوك (Webhooks) ميزة متقدمة ترسل الأحداث (events) التي تحدث داخل منصتك إلى رابط تحدده، لتتمكن من ربط منصتك مع خدمات أخرى مثل أدوات الأتمتة أو الأنظمة الخارجية.
طريقة إعداد الويب هوك (Webhooks)
تنويه
الويب هوك متاح في باقتي النمو والاحترافية للمواقع الإلكترونية، وفي الفترة التجريبية. في الباقات الأخرى تظهر لك رسالة تطلب منك تطوير الخطة.
-
سجّل الدخول إلى منصتك بحساب المدير.

-
من القائمة الجانبية، انتقل إلى الإعدادات واختر التكامل.

-
في صفحة التكامل، اختر Webhooks.

-
ستظهر لك قائمة جانبية لإعداد بيانات Webhooks.

إضافة Webhook جديد
-
في حقل Webhook url، أدخل الرابط الذي سيستقبل البيانات، مثل
https://example.com/webhook. -
اختر الأحداث (Events) التي تريد تتبعها:
submission.created: يُرسل طلب POST عندما يرفع الطالب تسليمًا جديدًا.ticket.created: يُرسل طلب POST عند إنشاء تذكرة دعم جديدة.student.created: يُرسل طلب POST عند تسجيل طالب جديد في دورة.payment.completed: يُرسل طلب POST عندما يُتم الطالب عملية دفع لدورة أو كتاب أو استشارة أو دبلوم.

-
فعّل خيار مفعل.
-
اضغط على زر إضافة. سيظهر لك مفتاح HMAC لتستخدمه.

أمثلة على شكل الأحداث
student.created
{
"event": "student.created",
"timestamp": "2026-03-30T12:00:00Z",
"data": {
"id": 42,
"user": {
"id": 10,
"name": "Ahmed Ali",
"email": "ahmed@example.com"
},
"cohort": {
"id": 3,
"name": "Cohort 2026"
},
"course": {
"id": 5,
"name": "Web Development"
},
"team": {
"id": 7,
"name": "Team Alpha"
},
"tags": ["scholarship", "part-time"],
"created_at": "2026-03-30T12:00:00.000Z"
}
}
submission.created
{
"event": "submission.created",
"timestamp": "2026-03-30T12:00:00Z",
"data": {
"id": 101,
"course": {
"id": 5,
"name": "Web Development"
},
"students": [42, 43],
"created_at": "2026-03-30T12:00:00.000Z",
"updated_at": "2026-03-30T12:00:00.000Z",
"target_id": 20,
"checklist": [
{
"kind": "longText",
"title": "Describe your approach",
"result": "I used a modular architecture...",
"status": "noAnswer"
}
],
"level_number": 2,
"target": {
"id": 20,
"title": "Build a REST API",
"evaluation_criteria": [
{
"id": 1,
"name": "Code Quality",
"max_grade": 4,
"grade_labels": ["Bad", "Okay", "Good", "Excellent"]
}
]
},
"files": [
{
"filename": "solution.zip",
"content_type": "application/zip",
"byte_size": 204800,
"checksum": "abc123def456...",
"url": "https://www.example.com/rails/active_storage/blobs/..."
}
],
"evaluator": "Dr. Sarah",
"evaluated_at": "2026-03-30T14:00:00.000Z",
"grades": {
"1": 3
}
}
}
ticket.created
{
"event": "ticket.created",
"timestamp": "2026-03-30T12:00:00Z",
"data": {
"id": 55,
"title": "Cannot access course materials",
"description": "I'm getting a 403 error when trying to view lessons",
"status": "open",
"user": {
"id": 10,
"name": "Ahmed Ali",
"email": "ahmed@example.com"
},
"created_at": "2026-03-30T12:00:00.000Z"
}
}
payment.completed
{
"event": "payment.completed",
"data": {
"id": 1234,
"user": {
"id": 567,
"name": "Ahmed",
"email": "ahmed@example.com"
},
"product": {
"id": 89,
"type": "Course",
"name": "Introduction to Web Development"
},
"price": 299.99,
"gateway": "ZamnPay",
"payment_method": "VISA/MASTER",
"end_at": null,
"subscription": null,
"created_at": "2026-04-05T14:30:00.000Z"
}
}
payment.completed لدفعة اشتراك متكرر
{
"event": "payment.completed",
"data": {
"id": 1235,
"user": {
"id": 567,
"name": "Ahmed",
"email": "ahmed@example.com"
},
"product": {
"id": 12,
"type": "Consultation",
"name": "Consultation Name"
},
"price": 150.0,
"gateway": "ZamnPay",
"payment_method": "MADA",
"end_at": "2026-05-05T23:59:59.999Z",
"subscription": {
"id": 42,
"status": "active"
},
"created_at": "2026-04-05T14:45:00.000Z"
}
}