n8n adalah platform otomatisasi alur kerja open source yang dapat di-host sendiri yang memungkinkan Anda menghubungkan API, database, dan alat SaaS melalui editor visual node tidak diperlukan infrastruktur backend. Untuk alur pekerjaan data makro, n8 n adalah yang paling cocok: tarik pembacaan indikator pada jadwal, filter oleh acara kalender rilis mendatang, dan push hasil ke Slack, Google Sheets, database atau webhook hilir semuanya dikonfigurasi secara visual dan berjalan 24/7 tanpa proses server khusus. Panduan ini berjalan melalui membangun alur Kerja otomatisasi FXMacroData lengkap di n8 N dari awal.
Apa yang akan Anda bangun
- Alur kerja yang dijadwalkan berjalan setiap pagi hari kerja dan mengambil indikator makro terbaru untuk pasangan mata uang
- Sebuah pipeline node HTTP Request memanggil terminal pengumuman FXMacroData dan menganalisis tanggapan JSON
- Cabang peringatan pra-kalender rilis mendeteksi peristiwa dampak tinggi yang akan datang dan mengirim peringatan dini ke Slack atau Discord
- Cabang log Google Sheets menambahkan setiap pembacaan baru ke spreadsheet untuk pelacakan sejarah
- Filter bersyarat hanya menembakkan tindakan hilir ketika nilai telah berubah sejak menjalankan terakhir
Persyaratan
- n8n contoh n8n.io akun cloud (kerja tingkat gratis) atau host sendiri melalui
npx n8n/ Docker - Kunci API FXMacroData daftar di /langganan; banyak indikator USD dapat diakses publik tanpa kunci
- URL webhook Slack atau Discord (opsional) untuk langkah pemberitahuan; Anda dapat melewatkan ini dan menggunakan cabang Google Sheets saja
- Koneksi Google Sheets OAuth (opsional) mengkonfigurasi melalui built-in Google n8n kredensial jika Anda ingin spreadsheet logging
- Langkah 1 -
Langkah 1 Mulai n8n dan buat alur kerja kosong
Cara tercepat untuk menjalankan N8N secara lokal adalah dengan npx. Jika Anda lebih suka Docker atau versi cloud, konfigurasi node identik skip ahead to creating the workflow.
# 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
Buka. http://localhost:5678 di browser Anda, buat akun, dan klik
+ Aliran kerja baru Anda akan melihat kanvas kosong ini adalah tempat pipeline tinggal.
Store your API key as an n8n credential so it is never embedded in node configurations. In n8n, go to Pengaturan → Kredensial → Tambahkan kredensial dan simpan kuncinya:
Name: FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY
Anda akan merujuk ke kredensial yang disimpan ini di node Permintaan HTTP pada langkah berikutnya.
- Langkah 2 -
Langkah 2 Tambahkan node Pemberhentian Jadwal
A Jadwal pemicu node menyalakan alur kerja pada interval yang ditentukan. Untuk alur pekerjaan data makro, pemicu harian 30 menit sebelum London terbuka (07:30 UTC) memastikan pembacaan baru tersedia sebelum sesi likuiditas tinggi pertama hari itu.
Klik + tombol pada kanvas dan mencari Jadwal pemicu. Konfigurasikan seperti berikut:
// Jadwal Pemicu node pengaturan
Interval pemicu: Custom (cron)
Ekspresi Cron: 30 7 * * 1-5
// Berjalan Senin-Jumat pukul 07:30 UTC
Untuk pengujian, beralih pemicu ke Manual sementara ini memungkinkan Anda menjalankan seluruh alur kerja dari kanvas dengan satu klik tanpa menunggu jadwal.
Tips: gunakan kalender rilis untuk memperbaiki jadwal Anda
Alih-alih jajak pendapat setiap hari, Anda bisa pre-pull rilis minggu ini dari Tanggal akhir rilis Senin pagi dan menggunakan N8N Jika node untuk melewatkan langkah mengambil pada hari tanpa pengumuman yang dijadwalkan. pola ini ditunjukkan dalam Langkah 5 di bawah ini.
- Langkah 3 -
Langkah 3 Mengkonfigurasi node Permintaan HTTP untuk FXMacroData
Tambahkan Permintaan HTTP node setelah Schedule Trigger (klik + pada konektor output pemicu dan mencari Permintaan HTTP) node ini membuat panggilan API ke FXMacroData dan mengembalikan tanggapan JSON langsung ke dalam alur kerja.
Konfigurasi node dengan pengaturan ini:
// HTTP Request node Fetch rate kebijakan EUR terbaru
Metode: GET
URL: Fxmacrodata.com/api/v1/anunciements/eur/policy_rate
Otentikasi: Tidak ada (kita lulus kunci sebagai param query di bawah)
Parameter kueri:
api_key = YOUR_API_KEY
Format tanggapan: JSON
N8n HTTP Request node memiliki khusus Parameter Kueri Tabel tambahkan satu baris:
Name: api_key
Value: {{ $credentials.fxmacrodataApiKey.value }}
(or paste your key directly for quick testing)
Klik Eksekusi node Anda harus melihat output yang mirip dengan:
{
"currency": "EUR",
"indicator": "policy_rate",
"date": "2025-06-12",
"val": 3.40,
"prior": 3.65,
"announcement_datetime": "2025-06-12T13:15:00Z"
}
- Apa? announcement_datetime field memberi Anda tingkat kedua presisi pada saat nilai ini diterbitkan secara resmi menggunakannya sebagai kunci deduplikasi sehingga alur kerja Anda tidak pernah double-alarm pada rilis yang sama.
Mengambil beberapa indikator dalam satu alur kerja
Untuk menarik beberapa indikator (misalnya suku bunga kebijakan, CPI, dan pengangguran untuk mata uang yang sama), tambahkan node Permintaan HTTP paralel setelah pemicu satu per titik akhir dan menggabungkan output mereka dengan Merger node diatur untuk Gabungkan modus sebelum langkah transformasi.
- Langkah 4 -
Langkah 4 Parse dan mengubah tanggapan dengan node kode
Tambahkan a Kode node setelah node HTTP Request untuk mengekstrak bidang yang Anda pedulikan dan memperkaya muatan. Node kode n8n menjalankan JavaScript dan memiliki akses penuh ke output node sebelumnya melalui $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}`
}
};
});
Ini menghasilkan objek bersih, diperkaya untuk setiap item. summary field siap untuk menempel langsung ke dalam pesan Slack atau baris spreadsheet.
- Langkah 5 -
Langkah 5 Tambahkan filter bersyarat dengan node IF
Anda hanya ingin menembakkan tindakan hilir ketika rilis benar-benar baru tidak jika API mengembalikan yang sama announcement_datetime Anda sudah memproses dalam run sebelumnya.
Jika node setelah node kode.
Gunakan n8n Data statis (dapat diakses melalui node kode $getWorkflowStaticData
(Helper) untuk bertahan terakhir kali terlihat announcement_datetime antara run:
// 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 } };
});
Lalu konfigurasi Jika node:
// Jika node hanya melanjutkan ketika rilis baru
Kondisi: {{ $json.isNew }} sama dengan true
// True branch → notify / log
// Cabang palsu → berhenti / NoOp
Hubungkan Tidak Op node ke cabang False sehingga alur kerja keluar bersih tanpa kesalahan pada hari-hari ketika tidak ada rilis baru telah dicetak.
- Langkah 6 -
Langkah 6 Kirim pemberitahuan ke Slack atau Discord
Hubungkan node IF Benar output ke a Perlahan node (atau sebuah Permintaan HTTP node yang menargetkan URL webhook Discord). Konfigurasi tubuh pesan untuk menggunakan bidang yang diperkaya dari node Code:
// Pengaturan Slack Node
Sumber: Pesan
Operasi: Kirimkan
Saluran: #makro-peringatan
Teks:
*Rilis makro baru*
{{ $json.summary }}
{{ $json.surprise }}
Dipublikasikan: {{ $ json.announcement_datetime }}
Untuk Discord, gunakan Permintaan HTTP node dengan metode POST dan URL webhook Discord, dengan body yang ditetapkan sebagai:
{
"content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}
Siap Jenis Isi Badan Untuk JSON dan node akan menangani serialisasi secara otomatis.
- Langkah 7 -
Langkah 7 Pembebasan log ke Google Sheets
Seiring dengan pemberitahuan Slack, tambahkan Google Sheets node untuk menyimpan log sejarah permanen. Sambungkan ke output cabang True yang sama dari node IF (n8n memungkinkan beberapa node untuk menerima output yang sama).
Mengkonfigurasi node Google Sheets:
// Pengaturan node Google Sheets
Sumber: Lembar dalam dokumen
Operasi: Tambahkan atau Perbarui Baris
Lembar perhitungan: (pilih Google Sheet Anda)
Lembar: macro_log
Kolom untuk memetakan:
pengumuman_waktu → {{ $ json.pengumuman_tanggal }}
mata uang → {{ $json.mata uang }}
indikator → {{ $ json.indicator }}
nilai → {{ $ json.value }}
sebelumnya → {{ $json.prior }}
arah → {{ $ json.direction }}
Anda harus mengatur kredensial Google OAuth di n8n di bawah Pengaturan → Kredensial → Google Sheets OAuth2 API ikuti panduan setup kredensial built-in n8n butuh waktu sekitar dua menit.
- Langkah 8 -
Langkah 8 Tambahkan cabang pra-peringatan kalender rilis
Pola yang kuat unik untuk FXMacroData menggunakan Tanggal akhir rilis Menembak. peringatan sebelumnya sebelum cetakan berdampak tinggi memberi tim Anda waktu untuk mempersiapkan posisi sebelum angka hit.
Tambahkan node HTTP Request kedua yang terhubung langsung ke Schedule Trigger (secara paralel dengan pengumuman pengambilan).
Method: GET
URL: https://fxmacrodata.com/api/v1/calendar/eur
Params: api_key=YOUR_API_KEY
Ikuti ini dengan node kode yang menyaring untuk peristiwa yang terjadi dalam 60 menit ke depan:
// 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}`
}
}));
});
Sambungkan output ke node Slack (atau Discord HTTP Request) yang mengirim alert lapangan ke Anda #macro-alerts Ketika tidak ada peristiwa yang harus dilakukan dalam satu jam, array yang disaring kosong dan n8n tidak menghasilkan output tidak ada tindakan yang diambil.
Menggunakan mode ekspresi untuk mata uang dinamis
Untuk membuat alur kerja generik di berbagai mata uang, mengganti hardcoded eur dalam URL dengan ekspresi n8n. Set node di bagian atas alur kerja Anda untuk menentukan currency variabel, lalu referensi di kedua node Permintaan HTTP:
https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY
Anda kemudian dapat menjalankan templat alur kerja yang sama untuk mana-mana 14 mata uang yang didukung dengan mengubah nilai variabel.
- Langkah 9 -
Langkah 9 Aktifkan dan pantau alur kerja
Setelah Anda telah menguji setiap node secara individual menggunakan Eksekusi node tombol, menjalankan seluruh alur kerja dari ujung ke ujung dengan mengklik Melakukan Alur Kerja Periksa log eksekusi untuk kesalahan Visual debugger n8n menyoroti node yang gagal dan menunjukkan input / output yang tepat pada langkah itu.
Untuk menempatkan alur kerja ke produksi, beralih ke Aktif beralih di sudut kanan atas. n8n sekarang akan menjalankan alur kerja secara otomatis pada jadwal cron yang Anda tentukan di Langkah 2.
Daftar Pemeriksaan Pemantauan
- ✅ ✅ Sejarah eksekusi terlihat di bilah sisi kiri di bawah Eksekusi; menunjukkan keberhasilan/kegagalan per run
- ✅ ✅ Alur kerja kesalahan mengkonfigurasi alur kerja penanganan kesalahan terpisah di Pengaturan → Alur Kerja Kesalahan untuk mendapatkan pemberitahuan jika node membuang pengecualian
- ✅ ✅ Coba lagi jika gagal mengaktifkan ini di pengaturan node Permintaan HTTP untuk mencoba ulang kesalahan jaringan sementara secara otomatis
- ✅ ✅ Pemangkasan data pelaksanaan mengatur jendela retensi (misalnya 30 hari) dalam pengaturan n8n untuk menghindari penggunaan disk tak terbatas pada instansi yang dihosting sendiri
- Langkah 10 -
Langkah 10 Memperluas ke indikator dan mata uang tambahan
Pipeline yang Anda bangun menargetkan satu indikator untuk satu mata uang. Memperluasnya ke set cakupan makro yang lebih luas adalah mudah karena percabangan visual n8n langsung memetakan struktur URL FXMacroData. Setiap titik akhir mengikuti pola yang sama:
https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
Untuk mengambil beberapa indikator dalam satu jalan alur kerja, tambahkan Pembagian dalam Batch node setelah pemicu dan memberi makan daftar { currency, indicator } Setiap iterasi memicu satu Permintaan HTTP. Pola di bawah ini mengambil tiga pembacaan EUR berurutan:
// 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 } }];
Kemudian tambahkan Pisah node untuk memperluas array menjadi item individu, dan menghubungkan item tersebut ke node Permintaan HTTP. Dalam URL Permintaan http, referensi bidang item saat ini:
URL: https://fxmacrodata.com/api/v1/announcements/{{ $json.currency }}/{{ $json.indicator }}
Params: api_key=YOUR_API_KEY
Pola templat tunggal ini membuat alur kerja tetap kompak terlepas dari berapa banyak indikator yang Anda lacak.
/api-data-docs sama
{currency}/{indicator} Struktur jalur berlaku di seluruh.
Mengimpor alur kerja lengkap sebagai JSON
n8n memungkinkan Anda mengekspor alur kerja apa pun sebagai file JSON dan membaginya. Setelah membuat alur pekerjaan Anda, klik
Menu → Unduh untuk mengekspor portabel .json rekan tim dapat mengimpornya langsung melalui + Aliran Kerja Baru → Impor dari file, tambahkan kredensial kunci API mereka sendiri, dan mengaktifkannya seluruh transfer pipa dalam hitungan detik.
- RINGKASAN -
Ringkasan
Anda sekarang memiliki pipa data makro otomatis yang berjalan di n8n yang:
- Pemicu pada jadwal cron hari kerja (atau sesuai permintaan)
- Mengambil indikator FXMacroData terbaru melalui HTTP Request dengan otentikasi query-parameter
- Parse dan memperkaya respon JSON dengan sinyal arah dalam node kode
- Deduplikasi terhadap yang terakhir terlihat.
announcement_datetimeuntuk mencegah peringatan ganda - Mengirim pemberitahuan Slack atau Discord ketika rilis baru dicetak
- Menambahkan setiap pembacaan baru ke log Google Sheets untuk analisis historis
- Kebakaran peringatan kalender lebih awal hingga satu jam sebelum acara berimpak tinggi dijadwalkan
From here, natural next steps include adding more currencies to the indicator list, connecting the Sheets log to a Looker Studio dashboard for visualisation, or integrating with a trading platform webhook to trigger order alerts directly on fresh releases. The same n8n HTTP Request pattern works for every FXMacroData endpoint — explore the dokumentasi API lengkap Untuk menemukan katalog indikator lengkap dan mulai membangun lapisan intelijen makro Anda sendiri.