n8n is a self-hostable, open-source workflow automation platform that lets you connect APIs, databases, and SaaS tools through a visual node editor — no backend infrastructure required. For macro data workflows, n8n is a natural fit: pull indicator readings on a schedule, filter by upcoming release calendar events, and push results to Slack, Google Sheets, a database, or any downstream webhook — all configured visually and running 24/7 without a dedicated server process. This guide walks through building a complete FXMacroData automation workflow in n8n from scratch.
Was du bauen wirst
- Ein geplantes Arbeitsablauf läuft jeden Wochentag morgens und holt die neuesten Makroindikatoren für ein Währungspaar ab
- Eine HTTP-Anfrage-Nodeleitung ruft den Endpunkt der Ankündigungen von FXMacroData an und analysiert die JSON-Antwort
- Ein Release-Kalender-Vorwarnzweig erkennt bevorstehende Ereignisse mit hoher Wirkung und sendet eine Frühwarnung an Slack oder Discord
- Ein Google-Blatt-Logging-Branch jede neue Messung an eine Tabelle für die historische Nachverfolgung anhängt
- Ein bedingter Filter nur nachgelagerte Aktionen auslösen, wenn sich ein Wert seit dem letzten Lauf geändert hat
Voraussetzungen
- n8n Fall Ich bin nicht hier . n8n.io Cloud-Konto (kostenlose Tier-Works) oder selbst gehostet über
npx n8n- Das ist ein Docker . - FXMacroData-API-Schlüssel melden Sie sich an /abonnieren; viele USD-Indikatoren sind öffentlich zugänglich ohne Schlüssel
- URL für Webhook-Diskord (optional) für Benachrichtigungsschritte; Sie können diese überspringen und nur den Google-Blatt-Branch verwenden
- OAuth-Verbindung zu Google Sheets (optional) über n8n's eingebaute Google-Anmeldeinformationen konfigurieren, wenn Sie eine Tabellenkalkulation wollen
- Schritt 1 -
Schritt 1 Start n8n und Erstellen eines leeren Workflows
Der schnellste Weg , um n8n lokal zu laufen , ist mit npx. Wenn Sie Docker oder die Cloud-Version bevorzugen, ist die Knotenkonfiguration identisch überspringen Sie den 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
- Mach auf . http://localhost:5678 in Ihrem Browser ein Konto erstellen und klicken Sie auf
+ Neuer Arbeitsfluss Sie werden eine leere Leinwand sehen hier wohnt die Pipeline.
Store your API key as an n8n credential so it is never embedded in node configurations. In n8n, go to Einstellungen → Anmeldeinformationen → Anmeldung hinzufügen → HTTP-Header-Auth Und bewahre deinen Schlüssel auf:
Name: FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY
Sie werden in dem nächsten Schritt auf diese gespeicherte Anmeldeinformationen im HTTP-Anfrageknoten verweisen.
- Schritt 2 -
Schritt 2 Hinzufügen eines Schedule Trigger-Knoten
- Das ist ein ... Zeitplan auslösen Für Makrodaten-Workflows sorgt ein täglicher Auslöser 30 Minuten vor der London Open (07:30 UTC) dafür, dass frische Messwerte vor der ersten Liquiditätssitzung des Tages verfügbar sind.
Klicken Sie auf + Schaltfläche auf der Leinwand und suchen nach Zeitplan auslösen. Konfigurieren Sie es wie folgt:
// Schedule Trigger Knoten-Einstellungen
Auslöserintervall: Benutzerdefiniert (cron)
Cron-Ausdruck: 30 7 * * 1-5
// läuft Mon-Fri um 07:30 UTC
Zum Testen schalten Sie den Auslöser auf Handbuch damit können Sie den gesamten Workflow mit einem einzigen Klick von der Leinwand ausführen, ohne auf den Zeitplan zu warten.
Tipp: Verwenden Sie den Kalender der Veröffentlichungen, um Ihren Zeitplan zu verfeinern
Anstatt jeden Tag zu wählen, können Sie die kommenden Veröffentlichungen dieser Woche im Voraus abrufen. Endpunkt des Release-Kalenders Am Montagmorgen und benutze ein N8N . Wenn Diese Art der Anzeige wird im folgenden Schritt 5 dargestellt.
- Schritt 3 -
Schritt 3 Konfigurieren des HTTP-Anforderungsknoten für FXMacroData
Fügen Sie ein HTTP-Anfrage Node nach dem Zeitplan-Trigger (klicken Sie auf die + Sie müssen die Ausgangssteckdose des Auslösers anschließen und nach HTTP-Anfrage) Dieser Knoten ruft die API zu FXMacroData auf und gibt die JSON-Antwort direkt in den Workflow zurück.
Konfiguration des Knotenpunktes mit diesen Einstellungen:
// HTTP-Anfrageknoten Holen Sie den neuesten EUR-Policy-Rate
Verfahren: GET
URL: https://fxmacrodata.com/api/v1/announcements/eur/policy_rate
Authentifizierung: Keine (wir geben den Schlüssel als Abfrageparam weiter unten)
Abfrageparameter:
Die Datenbank wird von der E-Mail-Adresse der Eingangsstelle des E-Mails abgerufen.
Antwortformat: JSON-Dateien
n8n's HTTP-Anfrage-Knoten hat eine dedizierte Abfrageparameter Tabelle eine Zeile hinzufügen:
Name: api_key
Value: {{ $credentials.fxmacrodataApiKey.value }}
(or paste your key directly for quick testing)
Klicken Sie Ausführen von Knoten Sie sollten eine Ausgabe ähnlich wie:
{
"currency": "EUR",
"indicator": "policy_rate",
"date": "2025-06-12",
"val": 3.40,
"prior": 3.65,
"announcement_datetime": "2025-06-12T13:15:00Z"
}
Die ... announcement_datetime als Deduplikationsschlüssel verwenden, damit Ihr Workflow nie doppelte Warnungen für die gleiche Version erhält.
Abrufen mehrerer Indikatoren in einem Workflow
Um mehrere Indikatoren (z. B. Kurs, KPI und Arbeitslosigkeit für die gleiche Währung) zu ziehen, fügen Sie nach dem Trigger parallele HTTP-Anfrageknoten hinzu einer pro Endpunkt und verschmelzen Sie ihre Ausgänge mit einem Verschmelzen Knoten auf Kombinieren Modus vor dem Transformationsschritt.
- Schritt 4 -
Schritt 4 Parsieren und Transformieren der Antwort mit einem Code-Knoten
Fügen Sie ein Code Node nach dem HTTP-Anfrage-Knoten, um die Felder zu extrahieren, die Ihnen wichtig sind und die Nutzlast zu bereichern. Code-Knot n8n läuft JavaScript und hat vollen Zugriff auf die Ausgabe des vorherigen Knoten über $input.all()- Ich weiß .
// 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}`
}
};
});
Dies erzeugt für jeden Gegenstand ein sauberes, angereichertes Objekt. summary Feld ist bereit, direkt in eine Slack-Nachricht oder eine Tabellenreihenfolge zu kleben.
- Schritt 5 -
Schritt 5 Hinzufügen eines bedingten Filters mit einem IF-Knoten
Sie wollen nur nachgelagerte Aktionen starten, wenn die Version wirklich neu ist nicht, wenn der API das gleiche zurückgibt announcement_datetime Sie haben es bereits in einem vorherigen Lauf bearbeitet.
Wenn Knoten nach dem Code-Knoten.
Verwenden Sie N8n. Statische Daten (über den Code-Knoten zugänglich) $getWorkflowStaticData
Der letzte gesehen . announcement_datetime zwischen den Läufen:
// 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 } };
});
Dann konfigurieren Sie die Wenn Knotenpunkt:
// IF-Knoten nur dann fortfahren, wenn die Veröffentlichung neu ist
Zustand: {{ $json.isNew }} ist gleich true
// Richtiger Zweig → Benachrichtigung / Protokoll
// Falscher Zweig → Stopp / Nein
Verbinden Sie einen Nein Node zum False-Zweig, so dass der Workflow an Tagen, an denen keine neue Version gedruckt wurde, sauber und fehlerfrei ausläuft.
- Schritt 6 -
Schritt 6 Benachrichtigungen an Slack oder Discord senden
Verbinden Sie den IF-Knoten. - Das stimmt. Ausgang auf a Schlaff Knotenpunkt (oder HTTP-Anfrage Node, der auf eine Discord-Webhook-URL abzielt). Konfigurieren Sie den Nachrichtenkörper so, dass er die angereicherten Felder des Code-Knoten verwendet:
// Einstellungen für Slack-Knoten
Quelle: Nachricht
Betrieb: Senden
Kanal: #Makro-Warnungen
Text:
*Neue Makro-Veröffentlichung*
Ich bin nicht derjenige, der das Problem hat.
Ich bin nicht sicher, ob ich das richtig finde.
Veröffentlicht: {{ $json.Ankündigung_Datumzeit }}
Für Discord verwenden Sie eine HTTP-Anfrage Knoten mit Methode POST und die Discord-Webhook-URL, mit dem Körper auf:
{
"content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}
Setzt . Körperinhalt - Ich bin hier . JSON-Dateien Die Angabe der Serialisierung erfolgt automatisch.
- Schritt 7 -
Schritt 7 Log-Veröffentlichungen in Google Sheets
Parallel zur Benachrichtigung in Slack fügen Sie Google-Blätter Sie können die Daten des Nodes mit dem gleichen True Branch-Ausgang des IF-Knoten verbinden (n8n erlaubt mehreren Knoten, den gleichen Ausgang zu empfangen).
Konfigurieren Sie den Google-Blatt-Knoten:
// Google Sheets Knoten-Einstellungen
Quelle: Blatt innerhalb des Dokuments
Betrieb: Zeile hinzufügen oder aktualisieren
Tabelle: (wählen Sie Ihre Google-Tabelle aus)
Blatt: - Das ist nicht wahr.
Spalten zur Abbildung:
Ankündigung_Datumzeit → {{ $json.Ankündigung _Datumzeiten }}
Währung → {{ $json.Währung }}
Anzeige → {{ $json.Anzeige }}
Wert → {{ $ json.value }}
Vorher → {{ $json.vorher }}
Richtung → {{ $ json.direction }}
Sie müssen Google OAuth-Zugriffsrechte unter n8n einrichten. Einstellungen → Anmeldeinformationen → Google Sheets OAuth2 API Bevor dieser Knoten sich authentifizieren kann, folgen Sie der eingebauten Anmeldeinformationen-Setup-Anleitung von n8n es dauert etwa zwei Minuten.
- Schritt 8 -
Schritt 8 Hinzufügen eines Veröffentlichungskalenderausschaltes
Ein leistungsfähiges Muster, das für FXMacroData einzigartig ist, verwendet die Endpunkt des Release-Kalenders Schießen . Vorwarnungen Vor einem hochenseitigen Druck das Ihrem Team Zeit gibt, Positionen vorzubereiten, bevor die Zahl trifft.
Fügen Sie einen zweiten HTTP-Anfrage-Knoten hinzu, der direkt mit dem Zeitplan-Trigger verbunden ist (parallel zur Anzeigeabgabe).
Method: GET
URL: https://fxmacrodata.com/api/v1/calendar/eur
Params: api_key=YOUR_API_KEY
Folgen Sie diesem mit einem Code Knoten , der für Ereignisse filtert , die innerhalb der nächsten 60 Minuten passieren:
// 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}`
}
}));
});
Verbinden Sie die Ausgabe mit einem Slack-Knoten (oder Discord-HTTP-Anfrage), der die alert Feld zu Ihrem #macro-alerts Wenn innerhalb einer Stunde keine Ereignisse fällig sind, ist das gefilterte Array leer und n8n erzeugt einfach keine Ausgabe keine Aktion wird durchgeführt.
Verwendung des Ausdrucksmodus für dynamische Währungen
Um den Workflow generisch für mehrere Währungen zu machen, ersetzen Sie die Hardcoded eur in der URL mit einem n8n Ausdruck. Ausgestattet Knoten an der Spitze Ihres Workflows, um eine currency Variable, dann verweisen Sie in beiden HTTP-Anfrage-Knoten:
https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY
Sie können dann die gleiche Workflow-Vorlage für alle 14 unterstützte Währungen Das ist ein einfacher Weg, um den Variablenwert zu ändern.
- Schritt 9 -
Schritt 9 Aktivieren und überwachen des Workflows
Sobald Sie jeden Knoten einzeln mit dem Ausführen von Knoten Schaltfläche, den gesamten Workflow von Ende zu Ende durchführen, indem Sie auf Ausführen des Workflows Überprüfen Sie das Ausführungsprotokoll auf Fehler n8n's visueller Debugger zeigt, welcher Knoten versagt hat und zeigt den genauen Eingang/Ausgang in diesem Schritt an.
Um den Arbeitsablauf in Produktion zu bringen, schalten Sie die Aktiv Schalten Sie in der oberen rechten Ecke. n8n wird nun den Workflow automatisch auf dem Cron-Zeitplan ausführen, den Sie in Schritt 2 definiert haben.
Kontrollliste für die Überwachung
- ✅ Ausführungsgeschichte in der linken Seitenleiste unter Hinrichtungen; zeigt Erfolg/Nicht-Erfolg pro Ausführung an
- ✅ Fehler-Arbeitsablauf einen separaten Fehlerbearbeitungs-Workflow in Einstellungen → Fehler-Arbeitsfluss um benachrichtigt zu werden, wenn ein Knoten eine Ausnahme auslöst
- ✅ Versuchen Sie es erneut, wenn es fehlschlägt. ermöglichen Sie dies in den Einstellungen von HTTP-Anfrageknoten, um automatisch vorübergehende Netzwerkfehler erneut zu versuchen
- ✅ Ausführungsdaten beschneiden ein Speicherfenster (z.B. 30 Tage) in n8n-Einstellungen festlegen, um unbegrenzte Festplattenverwendung bei selbst gehosteten Instanzen zu vermeiden
- Schritt 10 -
Schritt 10 Ausweitung auf weitere Indikatoren und Währungen
Die Pipeline, die Sie erstellt haben, zielt auf einen einzelnen Indikator für eine einzelne Währung ab. Sie auf einen breiteren Makrokabdeckungssatz auszudehnen ist einfach, da die visuellen Verzweigungen von n8n direkt auf die FXMacroData-URL-Struktur abbilden. Jeder Endpunkt folgt dem gleichen Muster:
https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
Um mehrere Indikatoren in einem Workflow-Lauf abzurufen, fügen Sie eine In Teilen aufgeteilt Node nach dem Auslöser und füttere es mit einer Liste von { currency, indicator } Die folgenden Daten werden in einer Reihe von drei EUR-Werten abgelesen:
// 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 } }];
Dann fügen Sie ein Aufspalten Node, um das Array in einzelne Elemente zu erweitern und diese Elemente mit dem HTTP-Anfrageknoten zu verbinden.
URL: https://fxmacrodata.com/api/v1/announcements/{{ $json.currency }}/{{ $json.indicator }}
Params: api_key=YOUR_API_KEY
Dieses Muster mit einer einzigen Vorlage sorgt dafür, dass der Workflow kompakter bleibt, unabhängig davon, wie viele Indikatoren Sie verfolgen.
/api-daten-docs das gleiche
{currency}/{indicator} Die Pfadstruktur gilt überall.
Import des vollständigen Workflows als JSON
n8n ermöglicht es Ihnen, jeden Workflow als JSON-Datei zu exportieren und zu teilen.
Menü → Herunterladen Ich habe eine Handy exportiert . .json Teamkollegen können es sofort über + Neuer Workflow → Import aus Datei, fügen Sie Ihre eigene API-Schlüssel-Zugriffsnummer hinzu, und aktivieren Sie es die gesamte Pipeline Transfers in Sekunden.
- - - Zusammenfassung
Zusammenfassung
Sie haben jetzt eine voll automatisierte Makrodatenleitung in n8n laufen, die:
- Auslöser für einen Cron-Zeitplan (oder auf Anfrage)
- Holt den neuesten FXMacroData-Indikator über HTTP-Anfrage mit Abfrageparameter-Authentifizierung ab
- Parsiert und bereichert die JSON-Antwort mit Richtungssignalen in einem Code-Knoten
- Deduplikate gegen die letzte gesehen .
announcement_datetimeum doppelte Warnungen zu verhindern - Sendet Benachrichtigungen für Slack oder Discord, wenn eine neue Version gedruckt wird
- Fügt jede neue Messung zu einem Google-Blatt-Log für die historische Analyse hinzu
- Brände: Kalendervorwarnungen bis zu einer Stunde vor geplanten Ereignissen mit hoher Wirkung
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 vollständige API-Dokumentation Sie können die vollständige Indikatorenkatalog entdecken und mit dem Aufbau Ihrer eigenen Makro-Intelligenz-Schicht beginnen.