يا جماعة الخير، السلام عليكم ورحمة الله.
اسمحوا لي أرجع بالذاكرة لكم سنة لورا. كانت الساعة حوالي أربعة ونص عصر يوم خميس، وأنا وزملائي في المكتب بنلملم أغراضنا ومستعجلين نروّح على بيوتنا. الأجواء كانت حلوة، والإنجاز كان طيب خلال الأسبوع، والكل نفسيته مرتاحة. فجأة، بيوصل إيميل من مدير المشروع، أبو خليل، الله يمسّيه بالخير. العنوان: “تقرير الإنجاز الأسبوعي”.
فتحنا الإيميل، والمطلوب كان واضح: “يا شباب، يعطيكم العافية. قبل ما تروّحوا، ابعتولي ملخص بسيط وواضح للميزات الجديدة اللي اشتغلتوا عليها هالأسبوع عشان أشاركها مع العميل بكرة الصبح”.
طلعنا في بعض، وشفنا نظرة الإحباط على وجوه الكل. إحنا طول الأسبوع بنكتب كود، بنحل مشاكل، وبنعمل “commits” على GitHub برسائل مثل: “Fix: Null pointer exception on user logout” أو “Refactor: Optimized database query for dashboard”. مين فينا عنده طاقة أو وقت يترجم هالأمور “الهندسية” لكلام بسيط ومفهوم لمدير أعمال أو عميل ما بعرف شو يعني “Null pointer”؟
قعدنا حوالي ساعة كاملة، نفلتر الـ commits، نتذكر شو عملنا، ونحاول نكتب كم سطر “بلغة البشر”. كانت عملية مملة ومحبطة، وسرقت منا فرحة نهاية الأسبوع. يومها، قلت لنفسي: “لازم يكون في حل أحسن. إحنا مبرمجين، شغلتنا نعمل أتمتة لكل شي ممل ومتكرر!”.
ومن هنا، بدأت رحلتي مع حل هذه المشكلة، وهو الحل الذي سأشاركه معكم اليوم.
المشكلة الأزلية: الفجوة بين لغة الكود ولغة الأعمال
القصة اللي حكيتها مش مجرد موقف شخصي، بل هي واقع يعيشه آلاف المبرمجين والمطورين حول العالم. نحن نتحدث لغة، وباقي العالم (مدراء، عملاء، تسويق، مبيعات) يتحدث لغة أخرى. الفجوة هذه تخلق الكثير من المشاكل:
- ضياع الوقت والجهد: قضاء ساعات في نهاية كل أسبوع أو “Sprint” في كتابة تقارير يدوية.
- سوء الفهم: عندما نحاول شرح الأمور التقنية، قد لا تصل الفكرة بشكل صحيح، مما يؤدي إلى توقعات غير دقيقة.
- تقليل قيمة العمل: إنجاز تقني كبير قد يبدو بسيطًا أو غير مهم إذا لم يتم شرحه بطريقة تسلط الضوء على قيمته للمستخدم أو للعمل.
- كره التوثيق: بصراحة، معظمنا لم يدخل مجال البرمجة ليكتب تقارير. هذا الشعور بالملل يجعلنا نؤجل المهمة أو نؤديها بأقل جودة ممكنة.
لكن ماذا لو أخبرتكم أن بإمكاننا بناء جسر آلي فوق هذه الفجوة؟ جسر يأخذ لغتنا التقنية ويترجمها تلقائيًا إلى لغة الأعمال الواضحة والمقنعة. هذا الجسر اسمه n8n.
n8n: المايسترو الذي ينسق سير العمليات
قبل أن ندخل في التفاصيل التقنية، دعوني أقدم لكم صديقنا الجديد n8n. ببساطة، n8n هي أداة مفتوحة المصدر لأتمتة سير العمليات (Workflow Automation). فكر فيها كأنها “ليجو” رقمي يسمح لك بربط تطبيقات وخدمات مختلفة معًا لتنفيذ مهام معينة بشكل تلقائي.
الجميل في n8n أنها مرئية (Visual). أنت تسحب وتفلت “عُقد” (Nodes)، كل عقدة تمثل تطبيقًا (مثل GitHub, Google Docs, Slack) أو وظيفة (مثل قراءة ملف، إرسال طلب HTTP)، ثم تربطها ببعضها لتصنع مسار عمل متكامل. وهذا يجعلها سهلة الاستخدام حتى لمن ليس لديهم خبرة برمجية عميقة.
الآن، لنستخدم هذا “المايسترو” لحل مشكلة التقارير الأسبوعية مرة واحدة وللأبد.
ورشة العمل: بناء نظام تقارير آلي باستخدام n8n والذكاء الاصطناعي
سنقوم ببناء سير عمل (Workflow) يقوم بالخطوات التالية تلقائيًا:
- يعمل في نهاية كل أسبوع.
- يسحب كل رسائل الـ “commits” من مستودع المشروع على GitHub.
- يستخدم الذكاء الاصطناعي (Vertex AI كمثال) لإعادة صياغة هذه الرسائل إلى ملخص مزايا (Release Notes) مفهوم.
- ينشر هذا الملخص في صفحة على Notion (أو ملف Google Docs).
هيا بنا نبدأ، خطوة بخطوة.
الخطوة الأولى: المُشغِّل (Trigger) – متى يبدأ العمل؟
كل سير عمل في n8n يحتاج إلى “مُشغِّل” (Trigger) ليخبره متى يبدأ. في حالتنا، نريد أن يعمل النظام بشكل دوري. أفضل مشغل لهذا هو Cron Job.
في n8n، ستضيف عقدة “Cron”. في إعداداتها، يمكنك تحديد التوقيت بدقة. على سبيل المثال، لتشغيله كل يوم جمعة الساعة 4:00 عصرًا، سيكون الإعداد شيئًا كهذا:
// Mode: Every Week
// Day of the Week: Friday
// Hour: 16
// Minute: 0
هذه العقدة ستكون نقطة انطلاق سير العمل بأكمله، حيث “تستيقظ” في الوقت المحدد وتُفعِّل العقدة التالية في السلسلة.
الخطوة الثانية: سحب البيانات من GitHub
بعد أن تم تفعيل سير العمل، نحتاج إلى جلب البيانات. سنستخدم عقدة GitHub Node.
- المصادقة (Authentication): ستحتاج أولاً إلى ربط حسابك في GitHub مع n8n باستخدام “Credential” جديد. هذه عملية تتم مرة واحدة فقط.
- الإعدادات:
- Resource: اختر
Commit. - Operation: اختر
Get All. - Repository Owner: اسم المستخدم أو المنظمة صاحبة المستودع.
- Repository Name: اسم المستودع.
- Resource: اختر
للحصول على commits الأسبوع الماضي فقط، يمكنك استخدام خيار “Additional Fields” وإضافة since. يمكننا جعل التاريخ ديناميكيًا باستخدام تعابير n8n البرمجية (Expressions) لحساب تاريخ بداية الأسبوع. على سبيل المثال: {{ $now.minus({ days: 7 }).toISO() }}.
بعد تشغيل هذه العقدة، ستحصل على مصفوفة من الكائنات (JSON Array)، كل كائن يمثل commit ويحتوي على معلومات كثيرة، لكن ما يهمنا بشكل أساسي هو commit.message.
الخطوة الثالثة: سحر الذكاء الاصطناعي مع Vertex AI
هنا يكمن السر كله. لدينا الآن قائمة من الرسائل التقنية، ونريد تحويلها إلى نص إنساني. سنستخدم عقدة نموذج لغوي كبير (LLM)، وفي مثالنا هذا Vertex AI (Google)، لكن يمكنك استخدام OpenAI أو أي نموذج آخر يدعمه n8n.
أولاً، سنحتاج إلى تجميع كل رسائل الـ commits في نص واحد. يمكننا استخدام عقدة “Code” بسيطة قبل عقدة الذكاء الاصطناعي للقيام بذلك.
بعد ذلك، في عقدة Vertex AI:
- المصادقة: مرة أخرى، ستحتاج إلى ربط حسابك في Google Cloud.
- النموذج (Model): اختر نموذجًا قويًا مثل
gemini-pro. - الأمر (Prompt): هذا هو الجزء الأهم. يجب أن نكتب أمرًا واضحًا جدًا للذكاء الاصطناعي. هذا ما أسميه “هندسة الأوامر” (Prompt Engineering).
مثال على أمر (Prompt) فعّال:
أنت كاتب تقني خبير في تحويل الملاحظات الفنية إلى ملخصات واضحة لمديري الأعمال. مهمتك هي قراءة قائمة رسائل الـ commit التالية من نظام Git، وتلخيصها في شكل “ملاحظات إصدار” (Release Notes) احترافية.التعليمات:
1. ركز على “القيمة” و”الفائدة” للمستخدم النهائي أو للعمل. ماذا يمكن للمستخدم أن يفعل الآن ولم يكن يستطيع من قبل؟
2. تجاهل التفاصيل التقنية البحتة مثل أسماء الدوال أو إصلاحات الأخطاء الصغيرة جدًا، إلا إذا كانت تؤثر على تجربة المستخدم بشكل كبير.
3. قم بتجميع الرسائل المتشابهة في نقطة واحدة.
4. استخدم لغة بسيطة، واضحة، وإيجابية.
5. قم بتنسيق المخرجات كقائمة نقطية (bullet points).هذه هي رسائل الـ commit لهذا الأسبوع:
{{ $('PREPARE_PROMPT_NODE').item.json.all_commits }}
لاحظ كيف استخدمنا تعبيرًا برمجيًا {{...}} لإدخال مخرجات العقدة السابقة (التي جمعت رسائل الـ commits) مباشرة في الأمر. سيقوم الذكاء الاصطناعي الآن بمعالجة هذا الطلب وتوليد نص جميل ومنسق.
الخطوة الرابعة: نشر التقرير على Notion (أو Google Docs)
الخطوة الأخيرة هي أخذ النص الرائع الذي ولّده الذكاء الاصطناعي ووضعه في مكانه النهائي. سنستخدم عقدة Notion Node.
- المصادقة: اربط حسابك في Notion.
- الإعدادات:
- Resource: اختر
Page. - Operation: اختر
Create. - Database/Page ID: حدد الصفحة الرئيسية التي تريد إضافة التقرير كصفحة فرعية بداخلها (مثلاً، صفحة “تقارير الأسبوعية”).
- Title: يمكننا استخدام تعبير برمجي لإنشاء عنوان ديناميكي، مثل: “تقرير الإنجاز الأسبوعي – {{ $now.toFormat(‘dd-MM-yyyy’) }}”.
- Content: هذا هو الأهم. هنا، ستقوم بربط مخرجات عقدة الذكاء الاصطناعي. ستسحب حقل النص الذي يحتوي على الملخص وتضعه هنا.
- Resource: اختر
وهكذا، بضغطة زر “Execute Workflow”، سيتم تنفيذ السلسلة بأكملها، وفي غضون ثوانٍ، ستجد صفحة Notion جديدة، منظمة، وجاهزة للمشاركة مع أبو خليل وكل الفريق. وداعًا لساعات الإحباط يوم الخميس!
نصائح من خبرة أبو عمر
بناء هذا النظام علمني بعض الدروس التي أود مشاركتها معكم:
- جودة المُدخلات تحدد جودة المُخرجات: كلما كانت رسائل الـ commit الأصلية أفضل وأكثر وصفًا، كانت نتيجة الذكاء الاصطناعي أروع. شجع فريقك على كتابة رسائل commit واضحة (حتى لو كانت تقنية).
- لا تبخل على هندسة الأوامر: استثمر وقتًا في تحسين الـ prompt الذي تعطيه للذكاء الاصطناعي. جرب صيغًا مختلفة، أعطه أمثلة، حدد له “شخصية” (مثلاً: “اكتب كمدير منتج”). الفرق في النتائج سيكون هائلاً.
- ابدأ بسيطًا ثم توسع: لا تحاول بناء نظام معقد من أول مرة. ابدأ بالأساسيات (GitHub -> AI -> Notion). لاحقًا، يمكنك إضافة تحسينات مثل إرسال إشعار على Slack عند اكتمال التقرير، أو تصنيف الميزات تلقائيًا (Bug Fix, New Feature).
- المراجعة البشرية لا تزال مهمة: الأتمتة مساعد خارق، وليست بديلاً كاملاً. قبل مشاركة التقرير، ألقِ نظرة سريعة (دقيقتين فقط) للتأكد من أن كل شيء منطقي ومثالي. هذا يضمن أعلى جودة ممكنة.
الخلاصة: من كود إلى قيمة بضغطة زر 🚀
يا جماعة، نحن كمبرمجين نملك قوة الأتمتة بين أيدينا. مهمة مملة ومتكررة مثل كتابة التقارير الأسبوعية لا يجب أن تسرق من وقتنا وطاقتنا الإبداعية. باستخدام أدوات مثل n8n وبالاستعانة بالقدرات المذهلة للذكاء الاصطناعي، يمكننا تحويل هذه المهمة من عبء إلى عملية تلقائية تتم في الخلفية.
الفائدة لا تقتصر على توفير الوقت فقط، بل تمتد لتحسين التواصل مع الأطراف غير التقنية، إبراز قيمة عملنا بشكل أفضل، والأهم من ذلك، منحنا راحة البال للتركيز على ما نحبه حقًا: بناء وبرمجة أشياء عظيمة.
نصيحتي الأخيرة: لا تخافوا من التجربة. افتحوا n8n اليوم، وابدأوا ببناء سير عمل بسيط. قد تتفاجأون من حجم الوقت والجهد الذي يمكنكم توفيره. يلا، شدّوا حيلكم! 💪