📊 Log BTC/ETH Prices and USD Exchange Rates to Notion (Hourly)
📌 Overview
This workflow automatically logs live crypto prices (Bitcoin & Ethereum) and fiat exchange rates (USD→EUR / USD→NGN) into a Notion database every hour. Each entry becomes a new row in your Notion dashboard, letting you visualize currency and crypto trends side by side.
It’s perfect for traders, analysts, and anyone who wants a single source of truth in Notion without needing multiple apps open. With hourly updates, you’ll have a clean data history for building rollups, trend graphs, or financial dashboards.
⚙️ How it works
- Schedule Trigger — runs every hour (adjustable via cron).
- HTTP Request (ExchangeRate-API) — fetches USD-base FX rates (no API key required).
- HTTP Request (CoinGecko) — fetches BTC & ETH prices + 24h % change (no API key required).
- Merge — combines both payloads.
- Code (v2) — formats a Notion-ready JSON payload with the correct fields.
- Notion Node — creates a new page in your database with mapped properties.
Example Row in Notion:
Title: Crypto+FX — 2025-09-08 09:00
BTC: 112,417 | BTC_24h: +1.22%
ETH: 4,334.57 | ETH_24h: +1.33%
USD→EUR: 0.854 | USD→NGN: ₦1,524.54
🛠 Setup Guide
1) Create the Notion database
- In Notion, create a new database (Table view).
- Add these columns with matching property types:
Column |
Property Type |
Title |
Title |
BTC |
Number |
BTC_24h |
Number |
ETH |
Number |
ETH_24h |
Number |
USD_EUR |
Number |
USD_NGN |
Number |
2) Connect Notion in n8n
- In the Notion “Create Page” node, connect with your Notion OAuth2 credentials.
- On first use, you’ll be redirected to authorize n8n with your Notion workspace.
- Copy your Database ID (from the Notion URL) and paste it into the node.
3) Map the Code output
- The Code node outputs JSON fields:
BTC
, BTC_24h
, ETH
, ETH_24h
, USD_EUR
, USD_NGN
.
- In the Notion node, map each property:
BTC
→ {{$json.BTC}}
BTC_24h
→ {{$json.BTC_24h}}
ETH
→ {{$json.ETH}}
ETH_24h
→ {{$json.ETH_24h}}
USD_EUR
→ {{$json.USD_EUR}}
USD_NGN
→ {{$json.USD_NGN}}
4) Test
- Run the workflow once.
- Confirm that a new page is added to your Notion database with all values filled.
🎛 Customization
- Cadence: change the schedule to 10 minutes, 4 hours, or daily depending on your needs.
- Extra coins: add more IDs (e.g.,
solana
, bnb
) in the CoinGecko call and update the Code node.
- Extra FX pairs: expand from ExchangeRate-API (e.g., USD→GBP, USD→ZAR).
- Notion dashboards: use rollups, charts, and linked databases for trend visualization.
- Formatting: add emojis, colors, or sections in your Notion view for clarity.
🧩 Troubleshooting
- Page not created: verify Database ID and ensure the Notion API integration has access.
- Empty fields: check that property names in Notion exactly match those used in the Code node.
- Wrong data type: make sure properties are set as Number, not Text.
- Rate limits: CoinGecko and ExchangeRate-API are free but may rate-limit if called too often; keep cadence reasonable (hourly recommended).