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.
建設する
- 予定されたワークフロー 毎週朝,通貨ペアの最新のマクロ指標を表示します.
- HTTP リクエストノードパイプライン FXMacroData 発表エンドポイントを呼び出し,JSON 応答を解析します
- リリースカレンダー前警告支部 迫り来る高影響のイベントを検出し,SlackやDiscordに早期警告を送信します
- Google Sheets のログイン部門 履歴を記録するためのスプレッドシートに新しい読み取りを添付します
- 条件付きフィルター 値が最後の実行から変更されたときにのみ下流アクションを起動します
条件
ステップ 1
ステップ 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 ブラウザでアカウントを作成して クリックします
+ 新しいワークフロー 管路が住んでいる場所です. 管道が移動する場所です
n8n のノード構成に埋め込まれないように,n8n 認証として API キーを保存します. 設定 → 認証 → 証明を追加 → HTTP ヘッダ Auth 鍵を保存して
Name: FXMacroData API Key
Header Name: (leave blank — we use query params)
Value: YOUR_FXMACRODATA_API_KEY
次のステップで HTTP リクエストノードでこの保存された認証を参照します.
ステップ2
ステップ 2 スケジュールトリガーノードを追加
ほら スケジュールトリガー ノードが定義された間隔でワークフローを起動します.マクロデータワークフロウでは,ロンドンのオープン (07:30 UTC) 30分前に毎日のトリガーが,日の最初の高流動性セッションの前に新しい読み取りが利用可能であることを保証します.
押す + キャンバスでボタンを押して検索します スケジュールトリガー設定は次のとおりです:
// スケジュールトリガー ノード設定
触発間隔: カスタム (cron)
クロンの表現: 30 7 * * 1-5
// Runs Mon–Fri at 07:30 UTC
テストのために,トリガーを 切換します. ガイドブック スケジュールを待たずにワンクリックでキャンバスからフルワークフローを実行できます. スケジュールを待たなくても,
提示: リリース カレンダー を 使い,スケジュール を 調整 する
投票する代わりに,今週のリリースを リリースカレンダーエンドポイント 午前中にN8Nを使います 仮に 予定された発表がない日に取得ステップをスキップするノード.このパターンは,以下のステップ5で示されています.
ステップ3
ステップ 3 FXMacroData の HTTP リクエスト ノード を 設定
追加する HTTP リクエスト プログラムトリガーの後ろのノード (クリックします + 引き金から出力接続をクリックして HTTP リクエスト) このノードは,FXMacroDataに API コールを行い,JSON 応答をワークフローに直接返します.
ノードを設定する:
// HTTP リクエストノード 最新のEUR政策レートを取得
方法: GET
URL: ファイル Fxmacrodata.com/api/v1/announcements/eur/policy_rate について
認証: 無 (下記でキーをクエリパラームとして渡す)
問い合わせパラメータ:
api_key = YOUR_API_KEY について
応答形式: JSON
N8nのHTTPリクエストノードは専用なノードを持っています 問い合わせパラメータ 表 一行追加:
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 復元キーとして使用して,同じリリースでワークフローにダブルアラートが出ないようにします.
Fetching multiple indicators in one workflow
To pull several indicators (e.g. policy rate, CPI, and unemployment for the same currency), add parallel HTTP Request nodes after the trigger — one per endpoint — and merge their outputs with a 合併 ポイントは 組み合わせる 変換ステップの前にモード.
ステップ4
ステップ 4 コードノードで応答を解析し変換する
追加する コード 処理する Node は,n8n のコードノードで JavaScript を実行し,前回のノードの出力に完全にアクセスできます. $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 プレスプレッドシート行またはSlackメッセージに直接貼る準備ができました.
ステップ5
ステップ 5 条件フィルタをIFノードで追加する
リリースが本当に新しいときだけ下流アクションを起動したい. APIが同じ返信を送る場合ではなく. announcement_datetime 前の実行で処理したものです.
仮に コードノードの後ろのノードです.
N8nを使う 静的データ コードノードでアクセスできます. $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 } };
});
設定して 仮に 結節:
// IFノード リリースが新しいときにのみ実行
条件: 変数 x は,x に等しいです. true
// 真のブランチ → 通知 / ログ
偽の枝 → 停止 / ノーオップ
接続する ノーオップ ニューリリースが印刷されていない日にエラーなしでクリーンに終了します.
ステップ6
ステップ 6 通知をSlackまたはDiscordに送信する
接続する 本当 輸出する 緩やか ネットワーク (または HTTP リクエスト メッセージボディをコードノードから拡張されたフィールドを使用するように設定します:
// スラックノード設定
資源: メッセージ
操作: 送る
チャンネル: #マクロアラート
テキスト:
*新しいマクロリリース*
ショートカット
驚きました
公開: {{ $json.announcement_datetime }}
議論の場合は, HTTP リクエスト 方法のノード POST 身体を以下に設定します.
{
"content": "📊 **New macro release**\n{{ $json.summary }}\n{{ $json.surprise }}\nPublished: {{ $json.announcement_datetime }}"
}
セット 身体の種類 やってる JSON 自動で処理します. ネットワークは,
ステップ7
ステップ7 ログのリリース
追加する Googleシート 永続的な履歴ログを保持するノード.IFノードの同じ True ブランチ出力に接続します (n8nは複数のノードが同じ出力を受信できるようにします).
Google Sheets のノードを設定する:
// Google Sheets のノード設定
資源: 文書内の表
操作: 行を追加または更新する
スプレッドシート: (Googleシートを選択)
紙: macro_log は
列をマップする:
発表_日付時間 → {{ $json.発表_時刻時間 }}
通貨 → {{ $json.currency }}
指示 → {{ $json.indicator }}
値 → {{ $json.value }}
前の → {{ $json.prior }}
方向 → {{ $json.direction }}
Google OAuth クレジットカードを n8n で設定する必要があります. 設定 → 認証 → Google Sheets OAuth2 API before this node can authenticate. Follow n8n's built-in credential setup guide — it takes about two minutes.
ステップ8
ステップ8 リリースカレンダー前警告分支を追加
FXMacroDataに特有の強力なパターンは, リリースカレンダーエンドポイント 撃つ 予告 チームに位置を準備する時間を与えます 番号がヒットする前に
Add a second HTTP Request node connected directly to the Schedule Trigger (in parallel with the announcements fetch). Configure it to pull upcoming releases for the current week:
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}`
}
}));
});
送信するSlackノード (または Discord HTTP リクエスト) に出力を接続します alert フィールドへ #macro-alerts フィルタリングされた配列は空になり,n8nは単に出力しない. 行動が取られない.
動的通貨の表現モードを使用する
硬式コードの代わりに 硬いコードの交換をします eur URLに n8n の表現を入力します. セット 定義する作業流の上のノードです currency 参照してください. 変数,そしてそれを参照してください
https://fxmacrodata.com/api/v1/announcements/{{ $vars.currency }}/policy_rate?api_key=YOUR_API_KEY
作業流程のテンプレートを実行できます. 14 サポートされる通貨 変数値を変更するだけで
ステップ9
ステップ9 ワークフローをアクティベートし,監視する
単一のノードをテストした後に ノードを実行する クリックして,すべてのワークフローを終了します. ワークフローを実行する 実行ログにエラーをチェックします. n8nのビジュアルデバガーでは,どのノードが失敗したか強調し,そのステップの正確な入力/出力を表示します.
作業流を生産に投入するには, 切り替える 活動 n8nはステップ2で定義した cron スケジュールで自動的にワークフローを実行します.
監視チェックリスト
- ✅ 実行履歴 左サイドバーで表示される 処刑■ 実行ごとに成功/失敗を示します
- ✅ エラーワークフロー 誤り処理の作業流程を設定する 設定 → エラー ワークフロー 異例を投げ出す場合の通知を得る
- ✅ 失敗したら再試してください. HTTP リクエストノード設定でこれを有効にすると,自動的に一時的なネットワークエラーを再試します
- ✅ 実行データ 剪定 n8n設定で自己ホストインスタンスの無制限ディスク使用を避けるため,保持窓 (例えば30日) を設定します.
ステップ10
ステップ10 追加指標と通貨に拡大
作成したパイプラインは単一の通貨の単一の指標をターゲットとしています. n8nの視覚分岐がFXMacroData URL構造に直接マップされるため,より広いマクロカバーセットに拡張することは簡単です.各エンドポイントは同じパターンに従います:
https://fxmacrodata.com/api/v1/announcements/{currency}/{indicator}?api_key=YOUR_API_KEY
To fetch multiple indicators in one workflow run, add a 分割して リストを入力します. { currency, indicator } pairs. Each iteration fires one
HTTP Request. The pattern below fetches three EUR readings in sequence:
// 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 } }];
じゃあ 追加する 引き裂かれ 列を個々の項目に拡張するノード,およびそれらの項目を HTTP リクエストノードに接続します. HTTP リキエスト URL で,現在の項目のフィールドを参照してください:
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 ファイルとしてエクスポートして共有できます. ワークフlow を作成した後,
メニュー → ダウンロード 携帯機を輸出する .json チームメイトは ファイルを即座に 輸入できます + 新しいワークフロー → ファイルからインポート, add their own API key
credential, and activate it — the entire pipeline transfers in seconds.
── 結論 ──
概要
完全に自動化されたマクロデータパイプラインが n8n で実行されています.
- 週日 cron スケジュール (または要求に応じて) のトリガー
- 最新のFXMacroData指標を HTTP リクエストでクエリパラメータ認証で取得する
- コードノード内の方向信号でJSON応答を解析し,豊かにする
- 復元したものです
announcement_datetime双重警報を防ぐために - 新しいリリースが印刷されたときに Slack または Discord 通知を送信する
- 履歴解析のためにGoogle Sheets ログに新しい読み取りをすべて追加します
- Fires advance calendar alerts up to an hour before scheduled high-impact events
ここから,自然な次のステップは,指標リストにより多くの通貨を追加し,表示のためにLooker Studioのダッシュボードにシートログを接続し,または新しいリリースで直接注文アラートを起動するために取引プラットフォームのwebhookと統合することを含む.同じn8n HTTP リクエストパターンはすべてのFXMacroDataエンドポイントで動作します. 完全なAPIドキュメント 完全な指標カタログを発見し,独自のマクロインテリジェンス層を構築し始める.