n8n هي منصة أتمتة سير العمل مفتوحة المصدر ذاتية الاستضافة التي تتيح لك توصيل واجهات برمجة التطبيقات وقواعد البيانات وأدوات SaaS من خلال محرر عقدة مرئية لا تحتاج إلى بنية تحتية خلفية. بالنسبة لتدفقات عمل البيانة الكبرى ، فإن n8 n مناسبة بشكل طبيعي: سحب قراءات المؤشرات على جدول زمني ، وتصفية الأحداث التقويمية القادمة ، ودفع النتائج إلى Slack أو Google Sheets أو قاعدة بيانات أو أي شبكة ويب أدناه جميعها مثبتة بصريا وتعمل على مدار الساعة و24 ساعة دون عملية خادم مخصصة. هذا الدليل يمر عبر بناء سير عمل أتمتية FXMacroData كامل في n8 N من الصفر.
ما الذي ستبنيه
- سير العمل المجدول يتم تشغيلها كل صباح يوم أسبوعي وتحصل على أحدث مؤشرات الكلية لزوج العملات
- خط أنابيب عقدة طلب HTTP يدعو نقطة نهاية إعلانات FXMacroData ويقوم بتحليل استجابة JSON
- فرع التحذير المسبق من تقويم الإصدار يكتشف الأحداث القادمة ذات التأثير العالي ويرسل تحذيرًا مبكرًا إلى Slack أو Discord
- فرع تسجيل أوراق البيانات من جوجل يرفع كل قراءة جديدة إلى جدول بيانات لتتبع التاريخ
- مرشح مشروط فقط إطلاق الإجراءات أسفل التيار عندما تغيرت القيمة منذ آخر تشغيل
الشروط المسبقة
- في حالة n8n n8n.io حساب سحابة (عمل مستوى مجاني) أو استضافة ذاتية عبر
npx n8n- المرفأ - مفتاح FXMacroData API التسجيل في / اشترك؛ العديد من مؤشرات الدولار الأمريكي متاحة للجمهور دون مفتاح
- عنوان URL لـ Slack أو Discord (اختياري) لخطوات الإشعار؛ يمكنك تخطي هذه واستخدام فرع Google Sheets فقط
- اتصال Google Sheets OAuth (اختياري) تهيئة من خلال بيانات اعتماد Google المدمجة لـ n8n إذا كنت تريد تسجيل جدول بيانات
الخطوة الأولى
الخطوة 1 بدء n8n وإنشاء سير العمل فارغ
أسرع طريقة لتشغيل n8n محلياً هي npxإذا كنت تفضل دوكر أو النسخة السحابية، وتكوين العقدة هو نفسه تخطي إلى الأمام لإنشاء سير العمل.
# Local quick-start (Node.js 18+ required)
npx n8n
# Or with Docker
docker run -it --rm \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
n8nio/n8n
افتح http://localhost:5678 في متصفحك، انشاء حساب، وانقر على
+ سير العمل الجديد من شريط الجانب الأيسر. سترى قماش فارغ هذا هو المكان الذي يعيش فيه خط الأنابيب.
قم بتخزين مفتاح API الخاص بك كإعتمادات n8n حتى لا يتم تضمينها أبدًا في تكوينات العقد. في n8N ، انتقل إلى الإعدادات → بيانات الاعتماد → إضافة بيانات الائتمان → HTTP Header Auth و احتفظ بمفتاحك
Name: FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY
سوف تشير إلى هذه الشهادة المخزنة في عقدة طلب HTTP في الخطوة التالية.
الخطوة الثانية
الخطوة 2 إضافة عقدة إطلاق الجدول
أ إطلاق الجدول يطلق العقد سير العمل في فترة محددة. بالنسبة لتدفقات عمل البيانات الكبرى، فإن إطلاق يومي قبل 30 دقيقة من افتتاح لندن (07:30 بالتوقيت العالمي) يضمن توفر قراءات جديدة قبل أول جلسة عالية السيولة في اليوم.
انقر على + زر على القماش و ابحث عن إطلاق الجدول. قم بتهيئته على النحو التالي:
// جدولة محرك عقدة إعدادات
فترة التشغيل: مخصص (cron)
تعبير كرون: 30 7 * * 1-5
يدور من الإثنين إلى الجمعة الساعة 07:30 بالتوقيت العالمي
لاختبار، قم بتبديل الزناد إلى دليل مؤقتاً هذا يسمح لك بتشغيل سير العمل الكامل من القماش بنقرة واحدة دون انتظار الجدول الزمني.
نصيحة: استخدم جدول الإصدارات لتحسين جدولك
بدلاً من الاستطلاع كل يوم، يمكنك أن تحصل مسبقاً على الإصدارات القادمة لهذا الأسبوع من نقطة نهاية تقويم الإصدار في صباح الاثنين واستخدم جهاز N8N إذا عقدة لتجاوز خطوة البحث في الأيام التي لا توجد فيها إعلانات مقررة. يظهر هذا النمط في الخطوة 5 أدناه.
الخطوة الثالثة
الخطوة 3 تكوين عقدة طلب HTTP لـ FXMacroData
إضافة طلب HTTP عقدة بعد إطلاق الجدول (انقر على + على مرفق الخروج من الزناد والبحث عن طلب HTTP) ، هذه العقدة تقوم بدعوة API إلى FXMacroData وتعيد استجابة JSON مباشرة إلى سير العمل.
قم بتكوين العقدة بهذه الإعدادات:
// عقدة طلب HTTP احضر أحدث سعر سعر السياسة في اليورو
طريقة: GET
عنوان الموقع: في المقابل، فإن المعلومات التي تم توفيرها عن طريق الـ FxPro هي معلومات عن التداولات المختلفة.
التوثيق: لا يوجد (نمرر المفتاح كبارام للتساؤل أدناه)
معايير الاستفسار:
api_key = YOUR_API_KEY
شكل الرد: JSON
عقدة طلب HTTP لـ n8n لديها عقده مخصصه معايير الاستعلام الجدول إضافة سطر واحد:
Name: api_key
Value: {{ $credentials.fxmacrodataApiKey.value }}
(or paste your key directly for quick testing)
انقر تنفيذ عقدة لتحقق من الرد يجب أن ترى مخرجات مشابهة ل:
{
"currency": "EUR",
"indicator": "policy_rate",
"date": "2025-06-12",
"val": 3.40,
"prior": 3.65,
"announcement_datetime": "2025-06-12T13:15:00Z"
}
- ... announcement_datetime يمنحك هذا المجال دقة مستوى ثانٍ حول متى تم نشر هذه القيمة رسمياً استخدامه كمفتاح إزالة التكرار حتى لا يتم إرسال تنبيهات مزدوجة في سير العمل الخاص بك في نفس الإصدار.
استرداد مؤشرات متعددة في سير عمل واحد
لسحب العديد من المؤشرات (مثل سعر السعر السياسي، مؤشر أسعار المستهلك، والبطالة لنفس العملة) ، إضافة عقدة طلب HTTP المتوازية بعد الزناد واحدة لكل نقطة نهاية ودمج مخرجاتها مع دمج عقدة محددة على الجمع الوضع قبل خطوة التحويل.
الخطوة الرابعة
الخطوة 4 تحليل وتحويل الرد مع عقدة رمز
إضافة a الرمز عقدة بعد عقدات طلب HTTP لاستخراج الحقول التي تهتم بها وتخصيب الحمل. عقدت كود n8n تشغل جافا سكريبت ولها وصول كامل إلى مخرج العقدة السابقة عبر $input.all().
// Code node: parse FXMacroData announcement response
const items = $input.all();
return items.map(item => {
const d = item.json;
// Determine direction relative to prior value
const direction =
d.val > d.prior ? "↑ Hawkish signal" :
d.val < d.prior ? "↓ Dovish signal" : "→ Unchanged";
const surpriseText =
d.consensus != null
? `Consensus was ${d.consensus}; actual ${d.val > d.consensus ? "beat" : "missed"}.`
: "";
return {
json: {
currency: d.currency,
indicator: d.indicator,
value: d.val,
prior: d.prior,
direction,
surprise: surpriseText,
announcement_datetime: d.announcement_datetime,
summary: `${d.currency.toUpperCase()} ${d.indicator.replace(/_/g, " ")}: ` +
`${d.val} (prior ${d.prior}) — ${direction}`
}
};
});
هذا ينتج عن شيء نظيف ومثري لكل عنصر. summary المجال جاهز للصق مباشرة في رسالة سلاك أو صف جدول بيانات.
الخطوة الخامسة
الخطوة 5 إضافة مرشح مشروط مع عقدة IF
أنت فقط تريد إطلاق الإجراءات في الأسفل عندما يكون الإصدار جديدًا حقًا ليس إذا أعاد واجهة برمجة التطبيقات نفسها announcement_datetime لقد قمت بمعالجة في عملية سابقة.
إذا عقدة بعد عقدات الرمز
استخدم "ن" البيانات الثابتة (يمكن الوصول اليها من خلال عقدة الرمز $getWorkflowStaticData
مساعد) للاستمرار في آخر مرّة announcement_datetime بين الرحلات:
// Code node: deduplication guard — place before the IF node
const staticData = $getWorkflowStaticData("global");
return $input.all().map(item => {
const ts = item.json.announcement_datetime;
const isNew = ts !== staticData.lastSeen;
// Update state only if this is a new release
if (isNew) {
staticData.lastSeen = ts;
}
return { json: { ...item.json, isNew } };
});
ثمّ تكوين إذا العقدة:
// إذا العقدة فقط المضي قدما عندما الإصدار هو جديد
الحالة: {{ $json.isNew }} يساوي true
// فرع حقيقي → إشعار / سجل
// فرع كاذب → توقف / لا
أوصلي لا العقدة إلى فرع كاذب حتى يخرج سير العمل نظيفا دون أخطاء في الأيام التي لم يتم فيها طباعة إصدار جديد.
الخطوة السادسة
الخطوة 6 إرسال إشعارات إلى Slack أو Discord
قم بتوصيل عقدة إيف صحيح الخروج إلى ساكن العقدة (أو طلب HTTP تكوين رسالة البريد الإلكتروني من خلال استخدام الحقول المثرية من عقدة الرمز:
// إعدادات العقدة السلسة
المصدر: رسالة
العملية: ارسل
القناة: #تنبيهات كبيرة
النص:
*إصدار جديد للمكروات*
{ \ pos (192,220) } (مُختصر)
{ \ pos (192,220) } (مفاجأة)
نشرت: {{ $ json.announcement_datetime }}
لـ (ديسكورد) ، استخدم طلب HTTP عقدة مع طريقة POST و عنوان الويب لـ Discord، مع وضع الجسم على:
{
"content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}
- تمّ تعيينها نوع محتوى الجسم إلى JSON و العقدة سوف تتعامل مع التسلسل تلقائيا.
الخطوة السابعة
الخطوة 7 إصدارات السجلات إلى Google Sheets
بالتوازي مع إشعار سلاك، أضف صفحات جوجل عقدة للحفاظ على سجل تاريخي دائم. قم بتوصيله بنفس مخرج فرع True من عقدات IF (n8n يسمح للعقدات المتعددة باستلام نفس المخرج).
قم بتكوين عقدة Google Sheets:
// إعدادات العقدة في Google Sheets
المصدر: ورقة داخل الوثيقة
العملية: إضافة أو تحديث الصف
جدول بيانات: (اختر ورقة جوجل)
ورقة: macro_log
الأعمدة إلى الخريطة:
الإعلان_وقت الإعلام
العملة → {{ $json.currency }}
مؤشر → {{ $ json.indicator }}
قيمة → {{ $ json.value }}
قبل → {{ $json.prior }}
اتجاه → {{ $ json.direction }}
ستحتاج إلى إعداد بيانات اعتماد جوجل أوت في n8n تحت الإعدادات → بيانات الاعتماد → Google Sheets OAuth2 API قبل أن يتمكن هذا العقد من التحقق من هويته اتبع دليل إعداد بيانات الاعتماد المدمجة لـ n8n
الخطوة الثامنة
الخطوة 8 إضافة فرع تحذير سابق من تقويم الإصدار
نمط قوي فريد من نوعه لـ FXMacroData يستخدم نقطة نهاية تقويم الإصدار إطلاق النار تحذيرات مسبقة قبل ان تكون هناك طبعة ذات تأثير كبير مما يعطي فريقك الوقت لتحضير مواقعهم قبل ان يصل الرقم
إضافة عقدة طلب HTTP ثانية متصلة مباشرة إلى جهاز التخطيط (موازية لإصدار الإعلانات). قم بتهيئتها لسحب الإصدارات القادمة للأسبوع الحالي:
Method: GET
URL: https://fxmacrodata.com/api/v1/calendar/eur
Params: api_key=YOUR_API_KEY
اتبع هذا مع عقدة رمزية التي تصفح الأحداث التي تحدث في غضون الـ 60 دقيقة القادمة:
// Code node: filter calendar events due within the next hour
const nowMs = Date.now();
const oneHrMs = 60 * 60 * 1000;
return $input.all().flatMap(item => {
const events = Array.isArray(item.json) ? item.json : [item.json];
return events
.filter(ev => {
const evMs = new Date(ev.release_datetime).getTime();
return evMs > nowMs && evMs <= nowMs + oneHrMs;
})
.map(ev => ({
json: {
currency: ev.currency,
indicator: ev.indicator,
release_datetime: ev.release_datetime,
alert: `⏰ *Upcoming release in <1 hour*\n` +
`${ev.currency.toUpperCase()} ${ev.indicator.replace(/_/g, " ")}\n` +
`Scheduled: ${ev.release_datetime}`
}
}));
});
قم بتوصيل الناتج إلى عقدة سلاك (أو طلب HTTP Discord) التي ترسل alert الميدان إلى #macro-alerts عندما لا تكون هناك أحداث متوقعة خلال ساعة، فإن المصفوفة المصفحة فارغة و n8n ببساطة لا تنتج أي مخرج لا يتم اتخاذ أي إجراء.
استخدام وضع التعبير للعملة الديناميكية
لجعل سير العمل عامة عبر عملات متعددة، استبدال الكود الصلب eur في عنوان الويب مع تعبير n8n. مجموعة عقدة في أعلى سير العمل الخاص بك لتحديد currency المتغير، ثم الرجوع إليه في كلا عقدة طلب HTTP:
https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY
يمكنك بعد ذلك تشغيل نفس قالب سير العمل لأي من 14 عملة مدعومة ببساطة بتغيير قيمة المتغير
الخطوة 9
الخطوة 9 تفعيل ومراقبة سير العمل
بعد أن تختبر كل عقدة بشكل فردي باستخدام تنفيذ عقدة زر، تشغيل سير العمل الكامل من نهاية إلى نهاية عن طريق النقر تنفيذ سير العمل في شريط الأدوات. تحقق من سجل التنفيذ عن أي أخطاء يقوم جهاز التحليل البصري لـ n8n بتسليط الضوء على العقدة التي فشلت ويظهر المدخلات / المخرجات الدقيقة في تلك الخطوة.
لوضع سير العمل في الإنتاج، قم بتبديل نشط التبديل في الزاوية اليمنى العلوية. n8n الآن سوف تشغيل سير العمل تلقائيًا على جدول cron التي حددتها في الخطوة 2.
قائمة المراقبة
- ✅ ✅ تاريخ التنفيذ مرئية في الشريط الجانبي الأيسر تحت الإعدام؛ يظهر النجاح / الفشل لكل عملية
- ✅ ✅ سير العمل للخطأ تكوين سير عمل منفصل لمعالجة الأخطاء في الإعدادات → سير العمل الخطأ للحصول على إشعار إذا أي عقدة يلقي استثناء
- ✅ ✅ حاول مرة أخرى تمكين هذا في إعدادات عقدة طلب HTTP لإعادة محاولة أخطاء الشبكة العابرة تلقائيًا
- ✅ ✅ تقليم بيانات التنفيذ وضع نافذة الاحتفاظ (على سبيل المثال 30 يوما) في إعدادات n8n لتجنب استخدام القرص غير المحدود على الحالات المستضافة ذاتيا
الخطوة العاشرة
الخطوة 10 توسيع إلى مؤشرات وعملات إضافية
يستهدف خط الأنابيب الذي بنيته مؤشرًا واحدًا لعملة واحدة. تمديده إلى مجموعة تغطية ماكرو أوسع سهلًا لأن خرائط التفرع البصري لـ n8n مباشرة إلى هيكل عنوان URL FXMacroData. تتبع كل نقطة نهاية نفس النمط:
https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
للحصول على مؤشرات متعددة في سير عمل واحد، أضف تقسيم في مجموعات العقدة بعد الزناد وإطعامه قائمة من { currency, indicator } أزواج. كل تكرار يطلق طلب HTTP واحد. النمط أدناه يحضر ثلاث قراءات EUR في تسلسل:
// Set node: define the indicator list
// Add this as a "Set" node at the top, outputting a single item
// with a field named "indicators"
const indicators = [
{ currency: "eur", indicator: "policy_rate" },
{ currency: "eur", indicator: "inflation" },
{ currency: "eur", indicator: "unemployment" }
];
return [{ json: { indicators } }];
ثم أضف انشقاق في URL طلب HTTP، الرجوع إلى حقول العنصر الحالي:
URL: https://fxmacrodata.com/api/v1/announcements/{{ $json.currency }}/{{ $json.indicator }}
Params: api_key=YOUR_API_KEY
هذا النمط المكون من قالب واحد يبقي سير العمل متكاملًا بغض النظر عن عدد المؤشرات التي تتبعها. يمكنك استكشاف كتالوج المؤشير الكامل لأي عملة في
/api-data-docs /أبي بيانات نفس الشيء
{currency}/{indicator} هيكل المسار ينطبق في كل مكان.
استيراد سير العمل الكامل كـ JSON
n8n يسمح لك بتصدير أي سير عمل كملف JSON ومشاركته. بعد إنشاء سير العمل الخاص بك، انقر على
القائمة → تحميل لتصدير جهاز محمول .json يمكن لزملاء الفريق استيرادهم على الفور + سير العمل الجديد → استيراد من الملف، إضافة بيانات اعتماد مفتاح API الخاصة بهم، وتفعيل ذلك نقل خط الأنابيب بأكمله في ثوان.
- خلاصة المقال -
ملخص
لديك الآن خط بيانات ماكرو آلي بالكامل يعمل في n8n
- أجهزة التشغيل على جدول cron يوم الأسبوع (أو عند الطلب)
- يسترد مؤشر FXMacroData الأخير عبر طلب HTTP مع مصادقة معالم الاستعلام
- يصف ويمتد استجابة JSON بإشارات اتجاهية في عقدة كود
- يُنزع النسخ عن آخر شخص شوهد
announcement_datetimeلمنع التنبيهات المزدوجة - يرسل إشعارات Slack أو Discord عند طباعة إصدار جديد
- يضيف كل قراءة جديدة إلى سجلات Google Sheets للتحليل التاريخي
- الحرائق تنبيهات التقويم المسبقة حتى ساعة قبل الأحداث المقررة ذات الأثر العالي
من هنا، تتضمن الخطوات التالية الطبيعية إضافة المزيد من العملات إلى قائمة المؤشر، وربط سجل الورق إلى لوكر ستوديو لوحة التحكم للتصور، أو دمج مع منصة التداول webhook لتشغيل تنبيهات النظام مباشرة على الإصدارات الجديدة. نفس نمط طلب HTTP n8n يعمل لكل نقطة نهاية FXMacroData استكشاف وثائق API الكاملة لاكتشاف الكتالوج الكامل للمؤشرات والبدء في بناء طبقة الذكاء الكلي الخاصة بك.