Post FX rate change commentary to Slack with Frankfurter and Claude
Ready for 3.0What this workflow does
This workflow has 17 nodes and runs on a schedule (every 6 hours). It uses only n8n's built-in nodes. It also calls api.frankfurter.dev and api.anthropic.com over HTTP.
How it runs
Trigger: On a schedule (every 6 hours).
- Set: config (Edit Fields (Set)): sets 4 fields: baseCurrency, targetCurrency, thresholdPercent…
- Fetch exchange rate (HTTP Request): calls api.frankfurter.dev
- Rate fetched OK? (If): checks a condition and branches into true / false
- Check for significant move (Code): runs custom JavaScript code
- Error: rate fetch failed (Code): runs custom JavaScript code
- Move significant? (If): checks a condition and branches into true / false
- Build Claude prompt (Code): runs custom JavaScript code
- Call Claude (Anthropic) API (HTTP Request): calls api.anthropic.com (POST)
- Claude call succeeded? (If): checks a condition and branches into true / false
- Build Slack message (Code): runs custom JavaScript code
…plus 4 more steps. See the full node list below.
HTTP calls to: api.frankfurter.dev, api.anthropic.com
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 (6)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - Edit Fields (Set)
n8n-nodes-base.set - HTTP Request
n8n-nodes-base.httpRequest - If
n8n-nodes-base.if - Code
n8n-nodes-base.code - No Operation, do nothing
n8n-nodes-base.noOp
From the author
Quick overview On a schedule, this workflow checks an exchange rate via the free Frankfurter API, compares it to the last checked rate, and — if it moved beyond a threshold you set — asks Claude to write a short factual note and posts it to Slack. How it…