أتمتة جاهزة للاستيراد في n8n تستقبل طلب التشغيل، تُنفّذ طلبات HTTP حقيقية للمواقع الثلاثة، ثم تُعيد النتائج إلى Project OS عبر Callback.
1. افتح n8n ثم اختر Workflows ← Import from File. 2. حدّد الملف n8n/site-check-workflow.json. 3. فعّل الـ Workflow (زر Active) ليعمل الـ Webhook على المسار:
POST /webhook/site-check
في وضع الاختبار يكون المسار /webhook-test/site-check ويحتاج ضغطة Execute workflow مرة واحدة.
{
"runId": "معرّف التشغيل من Project OS",
"callbackUrl": "رابط استقبال النتائج في Project OS",
"sites": [
{ "label": "Project OS", "url": "https://projectos.smvapp.cloud" },
{ "label": "n8n", "url": "https://n8n.smvapp.cloud" },
{ "label": "Student Tutor", "url": "https://student.smvapp.cloud" }
]
}
callbackUrl اختياري: عند إرساله تُرسَل النتائج إليه بطلب POST، وبدونه تُعاد النتائج في استجابة الـ Webhook مباشرة.sites اختياري: عند إهماله تُفحص المواقع الثلاثة نفسها المحدّدة في متطلبات المشروع، وبحد أقصى 20 موقعًا (استضافة HTTPS عامة فقط).site.check){
"runId": "…",
"kind": "site.check",
"completedAt": "2026-09-12T13:30:00.000Z",
"summary": { "total": 3, "ok": 2, "down": 1 },
"results": [
{
"url": "https://projectos.smvapp.cloud",
"label": "Project OS",
"ok": true,
"statusCode": 200,
"latencyMs": 145,
"error": null
}
]
}
تصنيف كل موقع في عقدة تجهيز نتيجة الفحص:
| الحقل | المعنى | | --- | --- | | ok: true | وصلت استجابة HTTP فعلية ورمزها أقل من 400 | | ok: false | خطأ شبكة (لم تصل استجابة، ويُوضع نص الخطأ في error) أو رمز 400 وأعلى | | statusCode | رمز HTTP عند توفره، وإلا null | | latencyMs | زمن الاستجابة بالملي ثانية، مقاس من لحظة بدء طلب ذلك الموقع مباشرة |
طلب التشغيل (Webhook)
→ تجهيز طلب الفحص
→ توزيع المواقع
→ فحص موقعًا بموقع (Split In Batches، موقع واحد في كل دورة)
├ المخرج «loop»: توقيت بداية الفحص → طلب HTTP حقيقي (مهلة 10 ثوانٍ، لا يُوقف عند الخطأ)
│ → تجهيز نتيجة الفحص → يعود إلى الحلقة
└ المخرج «done»: تجميع النتائج
→ هل يوجد رابط Callback؟
├ نعم → إرسال النتائج إلى Project OS (POST إلى callbackUrl)
└ لا → إرجاع النتائج للمُشغِّل (Respond to Webhook)
الفحص يمرّ على المواقع موقعًا بموقع حتى يُقاس زمن استجابة كل موقع بدقة (لحظة بدء الفحص تُسجَّل قبل طلب ذلك الموقع مباشرة)، وطلب HTTP لكل موقع لا يُوقف الـ Workflow عند الفشل بل يتحول إلى نتيجة ok: false.
لا تستدعي الواجهة الـ Webhook مباشرة ولا تعرض أي مفاهيم n8n للمستخدم. زر «فحص المواقع الآن» في index.html يستدعي نقطة الأتمتة المُدارة في Project OS:
POST /api/app/automations/<automationId>/run
GET /api/app/automations/runs/<runId>
يقوم Project OS بتشغيل الـ Workflow في n8n (HTTP Request حقيقي للمواقع الثلاثة)، ثم تستقبل الواجهة النتائج عبر الاستعلام الدوري عن حالة التشغيل وتطابقها مع البطاقات عبر حقل url وتعرضها. عند فشل التشغيل تُعرض رسالة الخطأ كما وردت، ولا تعرض الواجهة نتائج وهمية إطلاقًا.