شرح n8n للمبتدئين: بناء Workflow عملي من Telegram إلى Google Sheets
سنبني في هذا الدليل Workflow واحدًا من البداية إلى النهاية: ترسل فكرة مقال إلى Telegram، يصنفها نموذج AI، يحفظها n8n داخل Google Sheets، ثم يرسل لك رسالة تؤكد نجاح العملية.
يمكن قراءة عشرات الشروحات عن Trigger وNode وAI Agent من دون أن تعرف في النهاية ماذا تكتب داخل كل حقل. لذلك هذا المقال مبني حول مثال واحد فقط، مع Credentials والـExpressions وربط الأعمدة وطريقة الاختبار.
ما الذي سنبنيه؟
المهمة
نرسل إلى البوت: «كيفية تحسين سرعة WordPress للمبتدئين بدون إضافات كثيرة».
يقوم AI بتصنيفها ضمن: ووردبريس، استضافة، أدوات الذكاء الاصطناعي، برومبتات، أو أخرى.
النتيجة النهائية
- حفظ نص الفكرة.
- حفظ التصنيف.
- إضافة حالة «فكرة جديدة».
- تسجيل وقت الوصول.
- إرسال تأكيد إلى Telegram.
قبل فتح n8n: جهز Google Sheet
أنشئ ملف Google Sheets جديدًا، ثم أنشئ Sheet باسم: Ideas.
ضع في الصف الأول أربعة أعمدة بهذه الأسماء:
| idea | category | status | created_at |
|---|---|---|---|
| نص فكرة المقال | التصنيف الذي يعيده AI | فكرة جديدة | تاريخ ووقت وصول الرسالة |
استخدام أسماء أعمدة قصيرة وواضحة يجعل Mapping داخل n8n أسهل من البداية.
Credentials التي نحتاجها
في هذا المثال نحتاج ثلاثة اتصالات فقط. لا تضع المفاتيح داخل Prompt أو داخل نص العقد. استخدم نظام Credentials في n8n.
Bot Token
أنشئ Bot عبر BotFather، ثم أضف الـToken داخل Telegram Credential في n8n.
OpenAI API
أنشئ OpenAI Credential داخل n8n وأدخل API Key في المكان المخصص له.
Google Sheets
اربط حساب Google عبر Credential المناسبة ثم اسمح لـn8n بالوصول إلى ملف Sheets الذي ستستخدمه.
إذا التقطت صورًا لهذا الدليل، تأكد أن Bot Token وAPI Key وبيانات OAuth غير ظاهرة في الصورة.
Node 1: إعداد Telegram Trigger
أضف Telegram Trigger إلى Workflow. هذه العقدة هي التي تبدأ التنفيذ عندما تصل رسالة جديدة إلى البوت.
شغّل Test على العقدة، ثم أرسل إلى البوت رسالة تجريبية مثل:
كيفية تحسين سرعة WordPress للمبتدئين بدون إضافات كثيرة
بعد وصول الرسالة، يجب أن ترى داخل Output بيانات Telegram، ومن أهمها نص الرسالة وChat ID.
Node 2: تجهيز الحقول التي سنستخدمها
لا نحتاج إلى تمرير كل JSON الذي يأتي من Telegram. ننشئ عقدة Edit Fields ونحتفظ فقط بالأشياء التي نحتاجها.
سمِّ العقدة: Prepare Fields.
أضف الحقول التالية:
{{ $json.message.text }}
{{ $json.message.chat.id }}
فكرة جديدة
{{ $now.toISO() }}
شغّل هذه العقدة وحدها. بدل JSON Telegram الكبير، يجب أن يصبح لديك Output بسيط قريب من:
{
"idea": "كيفية تحسين سرعة WordPress للمبتدئين بدون إضافات كثيرة",
"chat_id": 123456789,
"status": "فكرة جديدة",
"created_at": "2026-09-20T12:00:00.000Z"
}
Node 3: تصنيف الفكرة بالذكاء الاصطناعي
هنا فقط ندخل AI إلى Workflow. المهمة محددة جدًا: نريد اسم تصنيف واحد، وليس مقالًا أو شرحًا طويلًا.
أضف Basic LLM Chain وسمِّها: Classify Idea.
اربط بها OpenAI Chat Model من مدخل Chat Model، واختر OpenAI Credential التي أنشأتها.
استخدم Prompt مثل التالي:
أنت تصنف أفكار مقالات موقع تقني عربي.
التصنيفات المسموحة فقط هي:
ووردبريس
استضافة
أدوات الذكاء الاصطناعي
برومبتات
أخرى
فكرة المقال:
{{ $('Prepare Fields').item.json.idea }}
أعد اسم تصنيف واحد فقط من القائمة السابقة.
لا تضف شرحًا.
لا تضف علامات ترقيم.
لا تنشئ تصنيفًا جديدًا.لأن الخطوة التالية تحتاج قيمة قابلة للحفظ، وليس إجابة إبداعية. إذا كان الناتج: «ووردبريس» فمن السهل وضعه في عمود category.
إذا كان خيار Temperature متاحًا في إعداد النموذج، يمكنك إبقاؤه منخفضًا لأننا نريد نتيجة مستقرة وليست كتابة إبداعية.
اختبر AI قبل ربط Google Sheets
شغّل عقدة Classify Idea وحدها. بالنسبة إلى الفكرة:
كيفية تحسين سرعة WordPress للمبتدئين بدون إضافات كثيرة
الناتج الذي نريده هو قيمة قصيرة مثل:
قد يختلف اسم حقل النص الذي يظهر في Output بحسب العقدة أو إصدار n8n. بعد الاختبار، حدد الحقل الذي يحتوي فعلًا على كلمة «ووردبريس» واستخدمه عند Mapping.
text.
إذا ظهر لديك بهذا الاسم،
يمكنك استخدام
{{ $json.text }}
في الخطوة التالية.
Node 4: حفظ البيانات في Google Sheets
أضف Google Sheets Node واختر Credential المرتبطة بحساب Google.
الآن Map الأعمدة يدويًا:
| عمود Google Sheets | القيمة داخل n8n |
|---|---|
| idea |
{{ $('Prepare Fields').item.json.idea }}
|
| category |
{{ $('Classify Idea').item.json.text }}
|
| status |
{{ $('Prepare Fields').item.json.status }}
|
| created_at |
{{ $('Prepare Fields').item.json.created_at }}
|
إذا كان ناتج عقدة AI عندك لا يسمى
text،
لا تنسخ التعبير السابق بشكل أعمى.
نفّذ العقدة أولًا،
ثم اسحب حقل الناتج الصحيح من Output إلى عمود category.
Node 5: إرسال رسالة تأكيد إلى Telegram
أضف Telegram Node عادية، وليس Telegram Trigger.
{{ $('Prepare Fields').item.json.chat_id }}
تم حفظ الفكرة ✅
الفكرة:
{{ $('Prepare Fields').item.json.idea }}
التصنيف:
{{ $('Classify Idea').item.json.text }}
شكل Workflow النهائي
اختبار Workflow من البداية إلى النهاية
قبل تفعيل Workflow، نفذ اختبارًا كاملًا ببيانات غير حساسة.
أرسل إلى Bot:
كيفية تحسين سرعة WordPress للمبتدئين بدون إضافات كثيرة
عند نجاح Workflow، تحقق من ثلاث نقاط.
category = ووردبريس
status = فكرة جديدة
created_at = تاريخ ووقت التنفيذ
التصنيف: ووردبريس
هذه هي النتيجة التي يجب أن تتحقق منها أثناء الاختبار. لا تعتمد على ظهور علامة نجاح في n8n فقط؛ افتح Google Sheets وتأكد أن الصف أضيف فعلًا، ثم تحقق من وصول رسالة Telegram.
أين يحدث Mapping بالضبط؟
Mapping هو الجزء الذي كان يسبب الالتباس في كثير من الشروحات العامة. كل خدمة تعيد بيانات، لكن العقدة التالية تحتاج إلى معرفة أي حقل تأخذ.
| القيمة | مصدرها | أين نستخدمها؟ |
|---|---|---|
| idea | Telegram message.text | AI + Google Sheets |
| chat_id | Telegram message.chat.id | رسالة التأكيد |
| category | ناتج Basic LLM Chain | Google Sheets + رسالة التأكيد |
| status | قيمة ثابتة | Google Sheets |
| created_at | $now | Google Sheets |
ماذا تفعل إذا لم يعمل Workflow؟
راجع Bot Token، ثم تأكد أن Workflow في وضع Test أو Active حسب الطريقة التي تستخدمها، وأنك تراسل البوت الصحيح.
افتح Output الخاصة بـTelegram Trigger. ربما تختلف بنية البيانات التي استقبلتها، لذلك تحقق أن مسار message.text موجود فعلًا.
شدد Prompt: «أعد اسم التصنيف فقط». ويمكن أيضًا استخدام مخرجات منظمة إذا احتاج Workflow إلى قواعد أشد.
راجع Credential، الملف والـSheet المختارة، ثم تأكد أن أسماء الأعمدة تطابق Mapping الذي أعددته.
لا تفترض أن حقل AI اسمه text. افتح Output الفعلية للعقدة وحدد الحقل الذي يحتوي التصنيف، ثم اربطه بالعمود.
راجع Chat ID، وتأكد أن Telegram Node تستخدم نفس Credential وأن عملية Send Message تعمل وحدها أولًا.
اختبر كل Node وحدها قبل تشغيل الكل
من الأخطاء الشائعة بناء خمس عقد ثم الضغط على Execute ومحاولة معرفة أين وقع الخطأ.
- اختبر Telegram Trigger واحصل على رسالة حقيقية.
- اختبر Prepare Fields وتأكد من idea وchat_id.
- اختبر Classify Idea وتأكد أن الناتج تصنيف واحد.
- اختبر Google Sheets وتأكد من إضافة صف.
- اختبر Telegram Send Message.
- بعد ذلك نفذ Workflow كاملًا.
لماذا استخدمنا AI في خطوة واحدة فقط؟
لا يوجد سبب لاستخدام AI لنقل نص Telegram أو كتابة التاريخ أو إضافة صف في Sheets. هذه عمليات واضحة ومحددة.
استخدمناه فقط في الجزء الذي يحتاج إلى تفسير نص: تصنيف فكرة المقال.
هل نحتاج AI Agent لهذا المثال؟
لا.
المسار معروف مسبقًا: استقبال → تجهيز → تصنيف → حفظ → تأكيد.
إضافة AI Agent هنا ستزيد التعقيد من دون فائدة واضحة للمبتدئ.
إذا كنت تعرف مسبقًا كل خطوة سيقوم بها النظام، ابدأ بـWorkflow عادي. استخدم Agent عندما تكون هناك حاجة حقيقية لنموذج يختار بين أدوات أو مسارات مختلفة.
Credentials والأمان
هذا Workflow يتعامل مع ثلاثة حسابات حقيقية، لذلك Credentials ليست مجرد إعداد جانبي.
- لا تضع Telegram Bot Token داخل Edit Fields.
- لا تضع OpenAI API Key داخل Prompt.
- لا تنشر صورًا تظهر Credentials.
- امنح Google الحساب والصلاحيات التي يحتاجها Workflow فقط.
- إذا حذفت Credential أو انتهت صلاحيتها، راجع Executions لمعرفة مكان الفشل.
Cloud أم Self-hosted؟
يمكن تشغيل n8n عبر الخدمة المستضافة، كما توجد خيارات للاستضافة الذاتية.
بالنسبة إلى المبتدئ، لا تجعل إدارة الخادم هي أول مشكلة تتعلمها إذا كان هدفك الأساسي فهم Workflows.
ابدأ بالطريقة المناسبة لقدرتك التقنية، ثم انتقل إلى Self-hosted فقط عندما تكون لديك أسباب واضحة لذلك وتفهم مسؤولية التحديثات والنسخ الاحتياطي والأمان.
ماذا تتعلم بعد نجاح هذا Workflow؟
بعد أن يعمل المثال السابق من البداية إلى النهاية، يمكنك التوسع تدريجيًا.
- إضافة Filter لمنع الرسائل الفارغة.
- منع حفظ الفكرة نفسها مرتين.
- إضافة تصنيف فرعي.
- إرسال تنبيه إذا فشل Google Sheets.
- استخدام Structured Output عند الحاجة إلى عدة حقول من AI.
- استخدام Webhook بدل Telegram عندما تحتاج إلى استقبال بيانات من موقعك.
- تعلم HTTP Request عندما لا توجد Node جاهزة لخدمة معينة.
هل n8n يحتاج إلى البرمجة؟
هذا المثال لا يحتاج إلى كتابة تطبيق كامل. معظم العمل يتم من خلال Nodes وCredentials وExpressions.
لكن عندما تتقدم، ستفيدك معرفة JSON وAPIs وWebhooks وطريقة قراءة البيانات بين العقد.
والأهم من كتابة الكود هو أن تفهم: ما البيانات التي تدخل إلى كل Node وما الذي تخرجه.
الخلاصة
تعلم n8n لا يبدأ بإنشاء Agent ضخم أو Workflow يحتوي على عشرات العقد.
في هذا المثال بدأنا برسالة Telegram واحدة، استخرجنا منها الحقول التي نحتاجها، استخدمنا AI في مهمة واحدة محددة، حفظنا النتيجة في Google Sheets، ثم أرسلنا تأكيدًا.
إذا استطعت تنفيذ هذا Workflow وفهمت Mapping بين عقده، فأنت تعلمت أهم فكرة تحتاجها لبناء أتمتة أكثر تعقيدًا لاحقًا.
ابنِ شيئًا يمكنك اختباره
Workflow من خمس Nodes يعمل وتفهم بياناته أفضل من Workflow من أربعين Node لا تعرف أين يفشل.


