n8n est une plateforme d'automatisation de flux de travail open source auto-hébergée qui vous permet de connecter des API, des bases de données et des outils SaaS via un éditeur de nœud visuel aucune infrastructure de backend n'est requise. Pour les flux de données macro, n8 n est un ajustement naturel: tirer les lectures d'indicateurs sur un calendrier, filtrer par les événements du calendrier de sortie à venir, et pousser les résultats vers Slack, Google Sheets, une base de données ou tout autre webhook en aval tous configurés visuellement et fonctionnant 24 heures sur 24 et 7 jours sur 7 sans un processus de serveur dédié. Ce guide vous guide dans la construction d'un flux de workflow d'automatisation FXMacroData complet dans n8
Ce que vous allez construire
- Un flux de travail planifié s'exécute tous les matins de semaine et récupère les derniers indicateurs macro pour une paire de devises
- Une pipeline de nœuds de requête HTTP appelle le point de terminaison des annonces FXMacroData et analyse la réponse JSON
- Une branche de pré-alerte de calendrier de sortie détecte les événements à fort impact à venir et envoie un avertissement précoce à Slack ou Discord
- Une branche de journalisation Google Sheets ajoute chaque nouvelle lecture à une feuille de calcul pour le suivi historique
- Filtre conditionnel ne déclenche des actions en aval que lorsqu'une valeur a changé depuis la dernière course
Pré-requis
- n8n cas Je suis désolé . n8n.io compte cloud (travaux de niveau gratuit) ou auto-hébergé via
npx n8n- Le docker . - Clé de l'API FXMacroData inscrivez-vous à / souscrivez; de nombreux indicateurs en USD sont accessibles au public sans clé
- URL du webhook Slack ou Discord (facultatif) pour les étapes de notification; vous pouvez les ignorer et utiliser uniquement la branche Google Sheets
- Connexion OAuth à Google Sheets (facultatif) configurer via les identifiants Google intégrés de n8n si vous voulez enregistrer des feuilles de calcul
- Passe 1 - Passez à la première étape
Étape 1 Démarrer n8n et créer un flux de travail vide
Le moyen le plus rapide de faire fonctionner n8n localement est avec npx. Si vous préférez Docker ou la version cloud, la configuration des nœuds est identique passez à la création du flux de travail.
# 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
Ouvrez . http://localhost:5678 dans votre navigateur, créez un compte, et cliquez
+ Nouveau flux de travail Vous verrez une toile vierge c'est là que vit le pipeline.
Enregistrez votre clé API comme une accréditation n8n pour qu'elle ne soit jamais intégrée dans les configurations de nœuds. Paramètres → Credentials → Ajouter des informations d'identification → HTTP Header Auth et gardez votre clé:
Name: FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY
Vous allez faire référence à cette accréditation stockée dans le nœud de demande HTTP à l'étape suivante.
- Passe 2 - Je suis désolé
Étape 2 Ajouter un nœud de déclenchement de la planification
Je suis un homme . Déclencheur de calendrier Pour les flux de travail de données macro, un déclenchement quotidien 30 minutes avant l'ouverture de Londres (07:30 UTC) garantit que de nouvelles lectures sont disponibles avant la première session de haute liquidité de la journée.
Cliquez sur le + Le bouton sur la toile et recherchez Déclencheur de calendrier. Configurez-le comme suit:
// Planifier le déclencheur les paramètres de nœud
Intervalle de déclenchement: Personnalisé (cron)
Expression Cron: 30 7 * * 1-5
// Retour le lundi/vendredi à 07:30 UTC
Pour tester, passez la détente à Le manuel temporairement cela vous permet d'exécuter le flux de travail complet à partir de la toile en un seul clic sans attendre le calendrier.
Conseil: utilisez le calendrier de sortie pour affiner votre emploi du temps
Au lieu de faire des sondages tous les jours, vous pouvez pré-obtenir les prochaines sorties de cette semaine à partir de la point final du calendrier de sortie Le lundi matin et utilisez un n8n . Si Le modèle est montré à l'étape 5 ci-dessous.
- Pas 3 - Je suis désolé
Étape 3 Configurez le nœud de demande HTTP pour FXMacroData
Ajoutez un Demande HTTP nœud après le déclencheur de l' agenda (cliquez sur le + sur le connecteur de sortie de la gâchette et recherche Demande HTTP) Ce nœud fait l'appel API à FXMacroData et renvoie la réponse JSON directement dans le flux de travail.
Configurez le nœud avec ces paramètres:
// Nœud de demande HTTP Récupérer le dernier taux de l'euro
Méthode: GET
Le nom de l'adresse: Les taux de change sont les taux de référence de la banque centrale.
Autentification: Aucun (nous passons la clé comme paramètre de requête ci-dessous)
Paramètres de requête:
Le code est le même que celui de la clé de l'application.
Format de réponse: JSON
Le n8n HTTP Request node a un nœud dédié Paramètres de requête tableau ajouter une ligne:
Name: api_key
Value: {{ $credentials.fxmacrodataApiKey.value }}
(or paste your key directly for quick testing)
Cliquez Exécuter le nœud Vous devriez voir une sortie similaire à:
{
"currency": "EUR",
"indicator": "policy_rate",
"date": "2025-06-12",
"val": 3.40,
"prior": 3.65,
"announcement_datetime": "2025-06-12T13:15:00Z"
}
Le announcement_datetime Le champ de dédoublement vous donne une précision de deuxième niveau sur le moment où cette valeur a été publiée officiellement utilisez-la comme clé de déduplication afin que votre flux de travail ne fasse jamais de doubles alertes sur la même version.
Récupération de plusieurs indicateurs dans un flux de travail
Pour extraire plusieurs indicateurs (par exemple, taux directeur, IPC et chômage pour la même monnaie), ajoutez des nœuds de requête HTTP parallèles après le déclencheur un par point final et fusionnez leurs sorties avec un Fusion Le nœud est mis à Combinez mode avant l'étape de transformation.
- Passe 4 - Passez à la première étape
Étape 4 Analyser et transformer la réponse avec un nœud de code
Ajoutez un Code de désignation node après le nœud de demande HTTP pour extraire les champs qui vous intéressent et enrichir la charge utile. n8n's Code node exécute JavaScript et a un accès complet à la sortie du nœuds précédents via $input.all()Je suis désolé .
// 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}`
}
};
});
Cela produit un objet propre et enrichi pour chaque article. summary Le champ est prêt à être collé directement dans un message Slack ou une ligne de feuille de calcul.
- Passe 5 - Je suis désolé
Étape 5 Ajouter un filtre conditionnel avec un nœud IF
Vous ne voulez lancer des actions en aval que lorsque la version est vraiment nouvelle pas si l'API renvoie la même announcement_datetime Vous avez déjà traité dans une précédente course.
Si nœud après le nœuds de code.
Utilisez les n8n. Données statiques (accessible par le biais du nœud de code $getWorkflowStaticData
Pour persévérer dans la dernière vue . announcement_datetime entre les courses:
// 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 } };
});
Alors configurez le Si Nœud:
// Si le nœud ne procède que lorsque la version est nouvelle
Condition: {{ $json.isNew }} est égal à true
// Branche vraie → notification / journal
// Fausse branche → arrêt / Non Op
Connectez un Non Op le nœud à la branche False afin que le flux de travail se termine sans erreur les jours où aucune nouvelle version n'a été imprimée.
- Pas 6 - Je suis désolé
Étape 6 Envoyer des notifications à Slack ou Discord
Connectez le nœud IF. C' est vrai. la sortie à un Laissez tomber nœud (ou un Demande HTTP le nœud ciblant une URL de webhook Discord). Configurez le corps du message pour utiliser les champs enrichis du nœuds Code:
// Paramètres de la fonction de la barre de défilement
Ressource: Message de la police
Opération: Envoyez
- Le canal: #macro-alertes
Le texte:
*Nouvelle version de macro*
Je suis désolé.
Je suis désolé.
Publié: {{ $json.annonce_date_heure }}
Pour Discord, utilisez un Demande HTTP nœud avec méthode POST et l'URL du webhook Discord, avec le corps réglé sur:
{
"content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}
Je suis prêt . Type de contenu du corps Je suis là . JSON et le nœud gérera la sérialisation automatiquement.
- Pas 7 - Je suis désolé
Étape 7 Sorties de journaux dans Google Sheets
Parallèlement à la notification Slack, ajoutez un Google Sheets est une plateforme connectez-le à la même sortie True branch du nœud IF (n8n permet à plusieurs nœuds de recevoir la même Sortie).
Configurez le nœud de feuilles de calcul:
// paramètres de nœud de feuilles Google
Ressource: Fiche dans le document
Opération: Ajouter ou mettre à jour la ligne
Fiche de calcul: (sélectionnez votre feuille Google)
Fiche: Le code de l'application
Colonnes à cartographier:
annonce_datetime → {{ $json.annonce_datetime }}
La monnaie est la monnaie
Indicateur → {{ $json.indicateur }}
valeur → {{ $json.value }}
Je suis désolé.
direction → {{ $json.direction }}
Vous devrez configurer les identifiants Google OAuth dans n8n sous Paramètres → Authentifications → API OAuth2 de feuilles de calcul Google Suivez le guide de configuration des identifiants intégrés de n8n cela prend environ deux minutes.
- Passe 8 - Je suis désolé
Étape 8 Ajouter une branche de pré-alerte du calendrier de sortie
Un modèle puissant unique à FXMacroData utilise le point final du calendrier de sortie Pour tirer . Avertissements préalables Avant une impression à fort impact donnant à votre équipe le temps de préparer les positions avant que le nombre ne frappe.
Ajouter un deuxième nœud de demande HTTP connecté directement au déclencheur de calendrier (en parallèle avec la récupération des annonces).
Method: GET
URL: https://fxmacrodata.com/api/v1/calendar/eur
Params: api_key=YOUR_API_KEY
Suivez ceci avec un code qui filtre les événements qui se produisent dans les 60 prochaines minutes:
// 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}`
}
}));
});
Connectez la sortie à un nœud Slack (ou à une demande HTTP Discord) qui envoie le alert Le champ à votre #macro-alerts Lorsque aucun événement n'est prévu dans l'heure, le tableau filtré est vide et n8n ne produit tout simplement aucune sortie aucune action n' est prise.
Utilisation du mode d'expression pour la devise dynamique
Pour rendre le flux de travail générique dans plusieurs devises, remplacer le code dur eur dans l'URL avec une expression n8n. - Je suis prêt. le nœud en haut de votre flux de travail pour définir un currency variable, puis faire référence à elle dans les deux nœuds de demande HTTP:
https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY
Vous pouvez ensuite exécuter le même modèle de flux de travail pour n' importe lequel des 14 monnaies prises en charge En modifiant simplement la valeur de la variable.
- Pas 9 - Je suis désolé .
Étape 9 Activation et suivi du flux de travail
Une fois que vous avez testé chaque nœud individuellement en utilisant le Exécuter le nœud Le bouton, exécutez le flux de travail complet de bout en bout en cliquant Exécuter le flux de travail Vérifiez le journal d'exécution pour toutes les erreurs le débogueur visuel de n8n met en évidence le nœud qui a échoué et affiche l'entrée/sortie exacte à cette étape.
Pour mettre le flux de travail en production, activez le Activité N8n va maintenant exécuter le flux de travail automatiquement sur le calendrier cron que vous avez défini à l'étape 2.
Liste de contrôle de surveillance
- ✅ ✅ Historique des exécutions visible dans la barre latérale gauche sous Exécutions; montre le succès/échec par course
- ✅ ✅ Flux de travail d'erreur configurer un flux de travail de traitement des erreurs distinct dans Paramètres → Flux de travail d'erreur pour être averti si un nœud lance une exception
- ✅ ✅ Réessayez si vous échouez. activer ce dans les paramètres de nœud de demande HTTP pour réessayer automatiquement les erreurs de réseau transitoires
- ✅ ✅ Élagage des données d'exécution définir une fenêtre de conservation (par exemple 30 jours) dans les paramètres n8n pour éviter une utilisation illimitée du disque sur les instances auto-hébergées
- Passe 10 - Je suis désolé
Étape 10 Extension à d'autres indicateurs et monnaies
Le pipeline que vous avez construit vise un seul indicateur pour une seule monnaie. L'étendre à un ensemble de macro couverture plus large est simple car les cartes de ramification visuelle de n8n directement à la structure d'URL FXMacroData. Chaque point final suit le même schéma:
https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
Pour récupérer plusieurs indicateurs dans une exécution de flux de travail, ajoutez un Divisé en lots Le nœud après le déclencheur et le nourrir d'une liste de { currency, indicator } Chaque itération déclenche une requête HTTP. Le schéma ci-dessous rapporte trois lectures EUR en séquence:
// 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 } }];
Alors ajoutez un Ils se séparent le nœud pour étendre le tableau en éléments individuels, et connecter ces éléments au nœuds de requête HTTP. Dans l'URL de requêtes HTTP, référencer les champs de l'élément actuel:
URL: https://fxmacrodata.com/api/v1/announcements/{{ $json.currency }}/{{ $json.indicator }}
Params: api_key=YOUR_API_KEY
Ce modèle unique permet de maintenir le flux de travail compact, quel que soit le nombre d'indicateurs que vous suivez.
/api-data-docs Il est temps de le faire. la même
{currency}/{indicator} La structure du chemin s'applique partout.
Importer le flux de travail complet sous forme de JSON
n8n vous permet d'exporter n'importe quel flux de travail sous forme de fichier JSON et de le partager.
Menu → Télécharger Pour exporter un portable .json Les membres de l'équipe peuvent l'importer instantanément via + Nouveau flux de travail → Importer à partir du fichier, ajouter leur propre clé API, et l'activer l'ensemble des transferts pipeline en quelques secondes.
- Résumé final
Résumé
Vous avez maintenant un pipeline de données macro entièrement automatisé en cours d' exécution en n8n qui:
- Déclencheurs sur un calendrier cron en semaine (ou à la demande)
- Obtient le dernier indicateur FXMacroData via HTTP Request avec authentification par paramètre de requête
- Parse et enrichit la réponse JSON avec des signaux directionnels dans un nœud de code
- Dédupliqué par rapport à la dernière vue .
announcement_datetimepour éviter les doubles alertes - Envoyer des notifications Slack ou Discord lorsqu'une nouvelle version est imprimée
- Ajouter chaque nouvelle lecture à un journal de feuilles Google pour l'analyse historique
- Les incendies prévoient les alertes du calendrier jusqu'à une heure avant les événements à fort impact prévus.
À partir de là, les prochaines étapes naturelles comprennent l'ajout de plus de devises à la liste des indicateurs, la connexion du journal des feuilles à un tableau de bord Looker Studio pour la visualisation, ou l'intégration avec un webhook de plateforme de trading pour déclencher des alertes d'ordre directement sur les nouvelles versions. la documentation complète de l'API Pour découvrir le catalogue complet des indicateurs et commencer à construire votre propre couche de macro-intelligence.