مقدمة
في عالم الأتمتة الحديث، خصوصًا مع أدوات قوية زي n8n، فهم كيفية التعامل مع البيانات هو مفتاح النجاح. جزء كبير من التعامل ده بيعتمد على مفهوم المتغيرات. المقالة دي هتاخدك في رحلة كاملة عشان تفهم إيه هي متغيرات في N8N بالظبط، وإزاي تستخدمها بفاعلية عشان تبني ورك فلوز (workflows) ذكية ومرنة. سواء كنت لسه بتبدأ أو عايز تحسن من استخدامك لـ n8n، فالمعلومات هنا هتساعدك.
يعني إيه متغيرات في N8N وليه هي مهمة أصلاً؟
المتغيرات في N8N هي ببساطة أماكن بتخزن فيها بيانات مؤقتة أو دائمة تقدر تستخدمها وتعيد استخدامها في أي جزء من الورك فلو بتاعك. تقدر تعتبرها زي “صناديق” بتحط فيها معلومات معينة (نص، أرقام، كائنات JSON) وبعدين تنادي عليها تاني في خطوات تانية عشان تستخدمها أو تعدل عليها.
أهميتها بتكمن في إنها بتخلي الورك فلوز بتاعتك ديناميكية وقابلة للتكيف. بدل ما تكتب نفس القيمة مليون مرة، بتخزنها في متغير وتستخدمه، وده بيوفر وقت ومجهود كبير وبيقلل احتمالية الأخطاء. كمان بتخلي الورك فلوز بتاعتك أسهل في الصيانة والتعديل، لأنك لو عايز تغير قيمة معينة، بتغيرها في مكان واحد بس.
إزاي تستخدم التعبيرات عشان توصل لبيانات المتغيرات؟
عشان توصل لأي بيانات مخزنة في متغيرات داخل n8n، لازم تستخدم التعبيرات (expressions). التعبيرات دي هي زي لغة برمجة بسيطة جوه n8n بتسمحلك تستخرج قيم معينة من البيانات اللي بتمر في الورك فلو، سواء كانت من مخرجات عقدة سابقة، أو من متغيرات أنت اللي عاملها. ببساطة، لما بتشوف أي حقل محتاج قيمة، تقدر تكتب فيه تعبير بدل القيمة الثابتة، والتعبير ده هيجيب القيمة اللي أنت عايزها ديناميكيًا.
على سبيل المثال، لو عندك متغير اسمه userName وعايز تعرض قيمته، ممكن تستخدم تعبير زي {{$json.userName}}. الـ $json هنا بيشير للبيانات اللي مرت من العقدة اللي قبلها، أو ممكن يشير لمتغيرات أنت عملتها. الغلطة الشائعة إن المبتدئين بيحاولوا يكتبوا اسم المتغير مباشرة بدون التعبير، وده مش هيشتغل. لازم دايمًا تستخدم الأقواس المزدوجة {{ }} عشان n8n يفهم إن دي expression مش مجرد نص عادي.
خطوات إنشاء متغير جديد باستخدام عقدة Set
عقدة الـ Set هي الأداة الأساسية اللي بنستخدمها عشان ننشئ أو نعدل على المتغيرات في n8n. خطوات استخدامها بسيطة وواضحة:

- ضيف عقدة Set: ابحث عن “Set” في قائمة العقد (nodes) وضيفها للورك فلو بتاعك.
- وصلها بالعقدة اللي قبلها: خليها تستقبل البيانات من العقدة اللي أنت عايز تاخد منها معلومات أو بعد خطوة معينة في الورك فلو.
- حدد اسم المتغير وقيمته: في إعدادات عقدة Set، هتلاقي خيارات عشان تضيف “Property”. هنا بتكتب اسم المتغير اللي أنت عايزه (مثلاً
userEmail). - اختار نوع القيمة: ممكن تكون القيمة دي ثابتة (String، Number، Boolean) أو تكون تعبير (Expression) بيجيب بيانات من عقدة سابقة، زي
{{$json.email}}لو الإيميل جاي من مدخلات سابقة. - شغل العقدة: بعد ما تظبط الإعدادات، شغل العقدة (execute node) عشان تشوف البيانات الجديدة والمتغير اللي عملته ظهر في مخرجاتها.
امتى تستخدم متغيرات البيئة لحفظ بياناتك المهمة؟
متغيرات البيئة (Environment Variables) هي نوع خاص من المتغيرات اللي مش بتخزن قيمتها جوه الورك فلو نفسه، لكن بتخزنها على مستوى الـ n8n instance اللي شغال عليها. دي بتكون مفيدة جدًا عشان تخزن بيانات حساسة أو متكررة الاستخدام زي مفاتيح الـ API (API Keys)، أسماء المستخدمين (usernames)، أو كلمات المرور (passwords). ليه نستخدمها؟
- الأمان: بتمنع ظهور البيانات الحساسة دي في الورك فلو بتاعك مباشرة، وبتحميها لو الورك فلو اتشارك أو اتعرض للخطر.
- المرونة: لو عندك كذا ورك فلو بيستخدم نفس مفتاح الـ API، بدل ما تكتبه في كل ورك فلو، بتخزنه في متغير بيئة واحد وتستخدمه في كله. لو المفتاح اتغير، بتغيره في مكان واحد بس.
- سهولة النشر: لما بتنقل الورك فلو بين بيئات مختلفة (تطوير، اختبار، إنتاج)، تقدر تغير قيمة المتغيرات دي بسهولة بدون ما تعدل على الورك فلو نفسه.
عشان تستخدم متغيرات البيئة في n8n، بتكتبها في ملفات إعدادات الـ n8n (عادةً ملف .env) وبعدين تستدعيها في الورك فلو بتاعك باستخدام تعبير زي {{$env.API_KEY}}.
أمثلة عملية على استخدام المتغيرات في الورك فلو
المتغيرات هي روح الأتمتة في n8n. خلينا نشوف أمثلة بسيطة عشان نوضح الفكرة:
- معالجة بيانات فورمة (Form Data): لو عندك ورك فلو بيستقبل بيانات من فورمة على موقعك، ممكن تستخدم عقدة Set عشان تاخد حقل “الاسم” وتخزنه في متغير اسمه
userName، وحقل “الإيميل” في متغيرuserEmail. بعدين في خطوات لاحقة، زي إرسال إيميل ترحيبي، تستخدم المتغيرات دي بدل ما ترجع للبيانات الأصلية المعقدة:مرحباً {{ $json.userName }}، إيميلك هو: {{ $json.userEmail }}. - فلترة البيانات ديناميكيًا: تخيل إنك بتجيب بيانات منتجات من API، وعايز تعمل فلترة على حسب سعر معين بيحدده المستخدم. ممكن تخزن السعر ده في متغير (مثلاً
minPrice) وبعدين تستخدمه في تعبير جوه عقدة If أو Filter عشان تعدي المنتجات اللي سعرها أعلى من{{$json.minPrice}}. - إرسال رسائل مخصصة: لو بتستخدم n8n عشان تبعت رسائل واتساب أو إيميلات، ممكن تجمع اسم العميل، والمنتج اللي اشتراه، وتفاصيل الطلب في متغيرات منفصلة. بعدين، تستخدم المتغيرات دي عشان تبني رسالة مخصصة لكل عميل، ده بيخلي التواصل شخصي أكتر بكتير.
عشان تتعمق أكتر وتتقن بناء ورك فلوز قوية ومتقدمة باستخدام n8n والذكاء الاصطناعي، ممكن تستكشف كورسات الأتمتة بالذكاء الاصطناعي المتاحة في AIMENTOR.PRO اللي هتفتحلك أبواب كتير في المجال ده.
الأسئلة الشائعة
{{ $json.yourVariable }} أو {{ $env.YOUR_ENV_VAR }}). كمان، استخدم أسماء متغيرات واضحة ومعبرة، واختبر الورك فلو بتاعك خطوة بخطوة عشان تشوف القيم اللي بتمر صح ولا لأ.ملخص المقالة
المتغيرات في N8N هي عمود فقري لأي ورك فلو فعال وذكي. فهمها واستخدامها صح بيخليك تبني أنظمة أتمتة قوية، مرنة، وسهلة الصيانة. اتعلمنا إزاي نستخدم عقدة Set عشان ننشئها، وإزاي التعبيرات بتساعدنا نوصل لقيمها، وإزاي متغيرات البيئة بتحمي بياناتنا الحساسة وتخلي ورك فلوز أكتر قابلية للتوسع. مع التطبيق والممارسة، هتبقى ماهر في استخدام متغيرات في N8N عشان تطلق العنان لإمكانيات الأتمتة عندك.
اتعلم الأتمتة بالذكاء الاصطناعي باستخدام n8n
كورس عملي كامل من الصفر، تبني فيه أول نظام أتمتة بإيدك — مساعد إيميلات ذكي يقرأ الرسائل ويصنّفها ويرد عليها تلقائيًا. من غير أي خلفية برمجية.
- 26 درسًا عملي في 6 أقسام
- مشروع نهائي كامل تقدر تستخدمه في شغلك
- شرح بالعامية المصرية خطوة بخطوة
