مشروع: أتمتة نشر مجدول بـn8n لقناة تيليغرام
3–4 أيام شغل مركز، صفر تكلفة، ومخرَج بيرافقك بكل تقديم: سير عمل n8n حقيقي يقرأ جدول محتوى ويرسل المنشور المستحق تلقائياً لقناة تيليغرام بتوقيت ثابت — بيثبت إنك بتعرف تبني أتمتة تشتغل لحالها لا مجرد إنك «شفت الواجهة».
ابدأ خطوات التنفيذ ارجع لخارطة المسارليش هالمشروع بالذات؟
لأنه أبسط سيناريو يضم العناصر الأربعة اللي رح تحتاجها بكل مشروع أتمتة لاحق: مُشغّل يبدأ العمل، مصدر بيانات تقرأ منه، شرط يقرر شو المستحق الآن، وإجراء ينفّذ النتيجة. النشر اليدوي اليومي — تفتح الجدول، تنسخ النص، تفتح تيليغرام، تلصق وترسل — مهمة ملّة ومكررة بالضبط من النوع اللي تستاهل الأتمتة، وبنفس الوقت بسيطة كفاية تخليك تركز على فهم منطق n8n بدل التوهان بتعقيد ربط أنظمة كتيرة من أول مشروع.
وفيه سبب أعمق لترتيبه أول مشروع بمسار الأتمتة: هو بيعلّمك أخطر مفهوم بكل سير عمل آلي — منع التكرار (Idempotency). أي أتمتة نشر بلا فحص «هل نُشر هذا من قبل؟» رح تعيد نشر نفس المحتوى كل ما تشتغل بالخطأ أو تُعاد تشغيلها، وهاد بالضبط النوع من الأخطاء اللي بيكشف الفرق بين مين بنى أتمتة فعلاً ومين بس وصل نودين ببعض وصلّى تشتغل.
بصراحة كمان: هالمشروع اختبار صبرك الحقيقي مع أدوات جديدة. أول مرة تفتح فيها واجهة n8n رح تحس إنها كتير عقد وأسهم وخيارات — وهاد طبيعي تماماً. المشروع مصمم يوصلك خطوة خطوة لأول سير عمل يشتغل فعلاً بلا ما يطلب منك حفظ كل الواجهة دفعة وحدة.
خطوات التنفيذ الكاملة
المدة الواقعية: 3–4 أيام بمعدل 2–3 ساعات شغل مركز يومياً. لا تستعجل خطوة الاختبار — هي يلي بتفرق بين أتمتة حقيقية وتجربة نص خالصة.
الخطوة 1: أنشئ بوت تيليغرام وقناة تجريبية (نصف ساعة)
افتح محادثة مع BotFather على تيليغرام واطلب /newbot، واتبع التعليمات لتسمية بوتك والحصول على Token — احفظه بمكان آمن مؤقتاً، هالتوكن هو مفتاح الوصول لبوتك ولازم يبقى سرياً لاحقاً. بعدها أنشئ قناة تيليغرام جديدة خاصة بك (عامة أو خاصة، ما يهم بمرحلة التمرين) وضِف البوت إليها كمشرف (Admin) بصلاحية إرسال الرسائل. هالقناة والبوت ملكك أنت شخصياً — بيئة تمرين حقيقية مئة بالمئة بلا أي التزام تجاه عميل.
الخطوة 2: جهّز جدول محتوى بأعمدة واضحة (ساعة)
افتح Google Sheets وابنِ جدولاً بأربعة أعمدة: التاريخ (متى المفروض يُنشر)، النص (محتوى المنشور)، الحالة (فارغة أو «منشور»)، وملاحظات (اختياري). املأ خمسة إلى سبعة صفوف بمحتوى وهمي متنوع الطول — بعضه سطر واحد وبعضه فقرة، لأن أتمتتك لازم تتحمل الاثنين. هالجدول هو «قاعدة البيانات» البسيطة يلي رح يقرأ منها سير العمل كل يوم.
الخطوة 3: نصّب n8n وابنِ أول سير عمل فارغ (ساعة إلى ساعتين)
إذا كانت هالتجربة أولى، ابدأ بأبسط طريق: تشغيل n8n محلياً على جهازك (عبر Docker أو npm حسب توثيق n8n الرسمي على docs.n8n.io) للتمرن، وأجّل شراء خادم افتراضي (VPS) لحين تنتقل لمشروع حقيقي لعميل يحتاج تشغيلاً مستمراً 24 ساعة. افتح لوحة n8n وأنشئ سير عمل جديداً فارغاً وسمّه بوضوح: «نشر مجدول — قناة التمرين».
الخطوة 4: ابنِ المُشغّل الزمني (Schedule Trigger) (نصف ساعة)
أضف عقدة Schedule Trigger كأول عقدة بسير العمل، واضبطها لتعمل مرة يومياً بوقت ثابت (مثلاً كل يوم الساعة 9 صباحاً). هاد المُشغّل هو اللي بيستبدل «تذكيرك اليومي» بفتح الجدول ونسخ المحتوى يدوياً — من هلق وصاعد، n8n هو يلي رح يتذكر بدلك.
الخطوة 5: اقرأ الجدول وفلتر الصفوف المستحقة (ساعتان)
أضف عقدة Google Sheets (Read) تجلب كل صفوف الجدول، ثم عقدة Filter تُبقي فقط الصفوف اللي تاريخها يطابق اليوم الحالي وحالتها لسا فارغة (غير منشورة). هون بالضبط بتطبق منطق «الشرط» يلي بتعلمته: مو كل الصفوف بتستاهل النشر اليوم، بس الصفوف يلي تحقق الشرطين معاً.
الخطوة 6: أرسل لتيليغرام وحدّث الحالة لمنع التكرار (ساعتان)
أضف عقدة HTTP Request (أو عقدة Telegram الجاهزة إذا توفرت) ترسل نص المنشور لقناتك عبر Bot API، مستخدمة الـToken المحفوظ بنظام Credentials المشفر لا كنص ظاهر بالعقدة. مباشرة بعدها أضف عقدة Google Sheets (Update) تكتب كلمة «منشور» بعمود الحالة لنفس الصف. هالخطوة الأخيرة هي «منع التكرار» — بدونها، لو اشتغل سير العمل مرتين بالخطأ بنفس اليوم، رح ينشر نفس المحتوى مرتين.
الخطوة 7: أضف معالجة خطأ بسيطة (ساعة)
ماذا لو فشل الاتصال بتيليغرام لحظة التنفيذ؟ أضف مساراً بديلاً (عبر عقدة IF تفحص نجاح الإرسال، أو سير عمل معالجة أخطاء منفصل بسيط) يرسل لك أنت تنبيهاً بأي وسيلة أخرى إن فشل الإرسال، بدل أن يختفي الفشل بصمت وتكتشفه بعد يوم أن المنشور ما وصل.
الخطوة 8: اختبر ثلاثة أيام متتالية وصدّر سير العمل (يوم إلى يومين انتظار)
اترك سير العمل يعمل تلقائياً لثلاثة أيام متتالية بمحتوى حقيقي الشكل (سطور طويلة، رموز خاصة، أسطر متعددة) وراقب النتيجة كل يوم: هل نُشر الصف الصحيح؟ هل تحدثت حالته؟ هل توقف أي شيء بصمت؟ بعد التأكد من الاستقرار، صدّر سير العمل كملف JSON من قائمة n8n واحفظه — هاد الملف هو المخرَج التقني النهائي يلي بيثبت إنك بنيت شيئاً حقيقياً لا فقط شرحته.
معايير التقييم الذاتي — قيّم حالك بصدق
لا تعتبر المشروع خالصاً قبل ما تحقق كل بند. التساهل هون بيطلع ثمنه بأول مشروع عميل حقيقي:
- الجدول يحوي عمود حالة فعلياً يمنع النشر المكرر: اختبرت هذا بتشغيل سير العمل يدوياً مرتين بنفس اليوم وتأكدت أنه لم ينشر نفس الصف مرتين.
- المُشغّل الزمني يعمل بالتوقيت الصحيح المتفق عليه: راقبته يعمل بلا تدخل يدوي منك لثلاثة أيام متتالية على الأقل.
- وجود معالجة خطأ فعلية: جربت قطع الإنترنت أو تعطيل التوكن مؤقتاً وتأكدت أن سير العمل لا يفشل صامتاً.
- كل عقدة مسماة بوضوح لا الاسم الافتراضي: أي شخص يفتح سير العمل يفهم وظيفة كل عقدة من اسمها مباشرة.
- الـToken محفوظ بنظام Credentials المشفر حصراً: لا يظهر كنص صريح بأي عقدة أو ملف مشارك.
- اختبرته بمحتوى واقعي فوضوي: نصوص طويلة وقصيرة، أسطر متعددة، رموز خاصة — لا أمثلة مثالية مرتبة فقط.
- ملف JSON مُصدَّر وموثق بصفحة قصيرة: تشرح ماذا يفعل سير العمل وكيف يُشغَّل لمن يستلمه بعدك.
- بإمكانك شرح كل عقدة من الذاكرة الآن: إذا سألك أحد «شو بتعمل هالعقدة بالضبط؟» بتجاوب بثقة بلا حاجة للنظر بالتوثيق.
كيف تعرضه بمعرض أعمالك؟
نقطة صدق أولاً: بمسار الأتمتة، «معرض الأعمال» مو لقطات شاشة جميلة لواجهة أداة — هو قصة مشكلة محلولة يفهمها عميل غير تقني بثلاث جمل. أساسيات بناء دليل ملموس بلا خبرة سابقة بتلاقيها بدليل معرض أعمال بلا خبرة — اقرأه بعقلية «كيف أشرح مشروع تقني بلغة يفهمها عميل».
سطر العرض المقترح: «بنيت أتمتة بـn8n بتقرأ جدول محتوى وترسل المنشور المستحق تلقائياً لقناة تيليغرام بتوقيت ثابت، مع منع تكرار ومعالجة أخطاء» + رابط ملف JSON أو لقطة شاشة لسير العمل بأسماء عقد واضحة. وبرسالة التقديم لأي عميل يسأل عن أتمتة نشر أو تذكيرات مجدولة، اربط المشروع مباشرة: «هذا نموذج مصغر لما بنيته — نفس المنطق ينطبق على حالتك بتعديل بسيط».
وهالمشروع أول قطعة من ثلاث: مشروع ربط نموذج الطلبات بجدول وإشعار تيليغرام بيضيف برهان التعامل مع بيانات واردة لحظياً (Webhook) لا مجرد قراءة جدول بجدول زمني، ومشروع لوحة تجميع الفرص من RSS بيضيف برهان معالجة مصادر متعددة وفلترة وتكرار على نطاق أوسع. الثلاثة مع بعض بيغطوا أغلب ما يسأل عنه عميل أتمتة حقيقي قبل ما يوظفك.
الأخطاء القاتلة — لا تقع فيها
نشر بلا فحص تكرار حقيقي
إذا سير عملك ما بيتحقق فعلياً من حالة الصف قبل النشر، أي إعادة تشغيل — قصدية أو بالخطأ — رح تعيد نشر نفس المحتوى. اختبر هذا صراحة بتشغيل سير العمل مرتين متتاليتين وتأكد من النتيجة بعينك.
تجاهل معالجة الأخطاء لأن «التجربة نجحت»
نجاح الاختبار بظروف مثالية لا يعني استقرار سير العمل بظروف حقيقية — انقطاع إنترنت، تعطل مؤقت بتيليغرام. أضف معالجة الفشل قبل التسليم دائماً، لا بعد أول شكوى.
كتابة توكن البوت كنص ظاهر بالعقدة
يبدو أسرع لحظياً لكنه خطأ أمني يفتح باب تسريب لو صُدّر سير العمل أو شُورك بالخطأ. استخدم نظام Credentials المشفر من اليوم الأول، حتى بمشروع تدريبي.
الاكتفاء باختبار محتوى «مثالي» قصير
محتوى مرتب بسطر واحد لا يكشف مشاكل حقيقية. اختبر بنصوص طويلة، أسطر متعددة، ورموز خاصة — هذا ما ستواجهه فعلياً مع بيانات عميل حقيقي لاحقاً.
أسئلة بتخطر ببالك
ما عندي خادم (VPS) — هل لازم أشتري واحداً قبل ما أبلّش؟
لا إطلاقاً بهالمرحلة. شغّل n8n محلياً على جهازك للتمرن وبناء هالمشروع بالذات — الخادم يصير ضرورياً فقط لما تحتاج سير عمل يشتغل 24 ساعة بلا اعتماد على جهازك الشخصي، وهاد الاحتياج بيظهر عادة مع أول عميل حقيقي لا مع مشروع تدريبي. حينها ابحث عن خادم افتراضي منخفض التكلفة حسب توثيق n8n الرسمي.
ليش قناة تيليغرام تحديداً مو منصة تانية أشهر؟
لأن بناء بوت تيليغرام مجاني بالكامل وفوري عبر BotFather بلا مراجعة أو موافقة حساب، وواجهته البرمجية (API) موثقة ومفتوحة وسهلة الربط بـn8n — بيئة تعلم مثالية بلا احتكاكات إدارية تبطئك عن الوصول لجوهر الدرس: منطق المُشغّل والشرط والإجراء نفسه، القابل للتطبيق لاحقاً على أي منصة تانية يطلبها عميل حقيقي.
خلصت؟ هي خطوتك الجاية
صدّرت أول سير عمل حقيقي بملف JSON موثق؟ انتقل مباشرة للمشروع الثاني — يضيف مهارة استقبال البيانات لحظياً بدل قراءتها بجدول زمني فقط.
المشروع التالي: ربط نموذج الطلبات وإشعار تيليغرام خارطة مسار الأتمتة والنو-كود
ولما تكمل المشاريع الثلاثة وتجهز ملف أعمالك — دليل أول عميل فريلانس بيفيدك بجزئه عن التقديم الأول وكسب الثقة.