Fetch reliable FX exchange rates with Frankfurter and open.er-api
Ready for 3.0What this workflow does
This workflow has 24 nodes and runs manually, when you click “Execute workflow” (plus 1 other trigger). It uses only n8n's built-in nodes. It also calls api.frankfurter.dev over HTTP.
How it runs
Trigger: Manually, when you click “Execute workflow” (plus 1 other trigger).
- Set Currencies (Edit Fields (Set)): sets 3 fields: trim, baseCurrency, currencies
- Validate & Normalize Inputs (Code): runs custom JavaScript code
- If: checks a condition and branches into true / false
- Initialize FX State + Static Rates (Code): runs custom JavaScript code
- Stop and Error: stops the run with an error
- Initialize Coverage Tracking (Code): runs custom JavaScript code
- Frankfurter (HTTP Request): calls api.frankfurter.dev
- If: checks a condition and branches into true / false
- Normalize Frankfurter (Code): runs custom JavaScript code
- Handle Wrong Base (Code): runs custom JavaScript code
…plus 11 more steps. See the full node list below.
HTTP calls to: api.frankfurter.dev
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (8)
- Edit Fields (Set)
n8n-nodes-base.set - If
n8n-nodes-base.if - Stop and Error
n8n-nodes-base.stopAndError - HTTP Request
n8n-nodes-base.httpRequest - Code
n8n-nodes-base.code - Execute Workflow Trigger
n8n-nodes-base.executeWorkflowTrigger - Manual Trigger
n8n-nodes-base.manualTrigger - No Operation, do nothing
n8n-nodes-base.noOp
From the author
This workflow fetches foreign exchange (FX) rates using multiple public APIs. It validates all inputs, queries providers sequentially, and merges results into a single enforced output schema. The workflow is designed to guarantee complete coverage for the…