كل المشاريع
المرافق والتشغيل الميداني · منشور

نظام إدارة عمليات التشغيل والصيانة

نظام عمليات لشركة تشغيل وصيانة مرافق موزعة على مسارات طرق سريعة، يحوّل بلاغات قروبات واتساب إلى حالات تشغيلية منظمة وقابلة للتتبع.

تدفق الحالة المستهدفWhatsApp Groups → Normalize → Classify → Assign → Notify عملية موحدة وقابلة للقياس
01
المشكلة

ما الذي كان يعطّل العمل؟

تصل البلاغات داخل قروبات واتساب قائمة يستخدمها فرق الميدان فعليًا، بينما لا تسمح واجهة Meta الرسمية بالدخول إلى تلك القروبات؛ فواجهة Groups API محدودة بثمانية مشاركين وتعمل بالدعوة فقط. كان المطلوب الحفاظ على قناة العمل الحالية دون جعلها نقطة ضعف دائمة في بنية النظام.

02
التشخيص

ماذا كشف تحليل العملية؟

أظهر التحليل أن المشكلة ليست في استقبال الرسالة فقط، بل في الخلط بين قناة التواصل ومصدر الحقيقة. القراءة من القروبات تحتاج قناة مرنة قابلة للاستبدال، أما الإشعارات الفردية فتحتاج قناة رسمية مستقرة، وكل ما بينهما يجب أن يعيش داخل قاعدة بيانات محكومة وقابلة للتدقيق.

03
إعادة التصميم

كيف تغيّر منطق التشغيل؟

فُصلت هوية الموقع المقروءة عن المفتاح الأساسي، وصُممت الإسنادات كسجل تاريخي بفترتي valid_from وvalid_to، واشتُقت الصلاحيات من جدول RACI. كما نُقلت المهل والنسب والحدود إلى جداول إعدادات بدل تثبيتها داخل الكود.

04
الأتمتة

ماذا أصبح يتحرك تلقائيًا؟

تقرأ session API القروبات بوصفها قناة قابلة للاستبدال، ثم تُطبّع كل رسالة فورًا داخل Postgres. يتولى Anthropic API التصنيف، وتنفذ Edge Functions العمليات، ويجدول n8n المهام، بينما تُرسل الإشعارات الفردية عبر واجهة Meta الرسمية المستقرة.

05
الأثر

ما النتيجة التشغيلية؟

أصبحت واتساب قناة إدخال لا مخزنًا للبيانات، مع فصل واضح بين القراءة والتسليم، وسجل زمني للمسؤوليات، وسياسات وصول مشتقة من التشغيل نفسه، وعمليات idempotent تمنع تكرار المعالجة. بُني النظام بالكامل عبر Claude Code من مواصفات مكتوبة مسبقًا، ضمن جولات متسلسلة تعرض التصميم قبل كتابة الكود.

Technology Stack

المكدس التقني

SupabasePostgreSQLStorageRealtimeRLSEdge FunctionsNext.jsVercelAnthropic APIn8n
Design Decisions

قرارات تصميمية

  • الرمز المقروء منفصل عن المفتاح الأساسي؛ تغيير رمز الموقع لا يكسر العلاقات.
  • الإسنادات تاريخية عبر valid_from وvalid_to لمعرفة المسؤول وقت الحدث.
  • سياسات RLS مشتقة من جدول RACI بدل قوائم صلاحيات مكتوبة يدويًا.
  • معالجة الرسالة وفتح البلاغ وتوليد المسيّر عمليات idempotent.
  • المهل والنسب والحدود محفوظة في جداول إعدادات، بلا أرقام ثابتة في الكود.
  • واتساب قناة وليست مخزنًا؛ كل رسالة تُطبّع فورًا إلى صفوف في القاعدة.
ملامح التنفيذ

قرارات موثقة داخل منتج حقيقي.

2قناتان مستقلتان للقراءة والتسليم
RACIصلاحيات مشتقة من المسؤوليات
Realtimeحالة تشغيلية قابلة للمتابعة
حالة مشابهة؟

لنحوّلها إلى نظام تشغيل أوضح.

ابدأ بالتقييم، ثم نناقش العملية الأعلى أثرًا في منظمتك.