You hold a bit of BTC and ETH and you'd like a passive ambient awareness of price — not a trading dashboard, not a notification every time the price ticks, just one quiet check per morning. This template fires at 9 AM daily, hits CoinGecko's free public price endpoint, and pops a desktop notification: "BTC $43,210 · ETH $2,415". No API key, no account, no third-party app installed. Useful for hobbyist holders, finance-curious non-traders, or anyone who wants to skip opening yet another coin-watching tab in the morning.
How this workflow works
Three blocks. Lean and predictable.
schedule_trigger— Cron mode,cron: "0 9 * * *"(every day at 9:00 local time). Fires automatically whenever Chrome is running at that minute.http_request— AGETagainsthttps://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd. This is CoinGecko's free public endpoint — no API key, no rate-limit on the simple endpoint at reasonable usage.responseType: "json"parses the response, which is shaped like{"bitcoin": {"usd": 43210}, "ethereum": {"usd": 2415}}. Result available as$('GET CoinGecko prices').body.notification— Chrome native notification. Title:"Crypto morning check". Message interpolates the two prices:"BTC ${{$('GET CoinGecko prices').body.bitcoin.usd}} · ETH ${{$('GET CoinGecko prices').body.ethereum.usd}}". The dot-path syntax dives into the nested response object.
Notifications appear in your OS notification corner (top-right on macOS, bottom-right on Windows). They auto-dismiss after the system's default timeout but remain in the notification centre.
Customising it for your case
Three changes most holders will want.
- Add more coins. Edit the
idsquery param in the URL:?ids=bitcoin,ethereum,solana,monero,cardano&vs_currencies=usd. Then extend the notification message to interpolate the new fields:... · SOL ${{$('GET CoinGecko prices').body.solana.usd}}. CoinGecko's coin IDs are at coingecko.com (sometimes the slug isn't obvious —ethisethereum,btcisbitcoin). - Change the currency. Swap
vs_currencies=usdtovs_currencies=eur,gbp,jpy, etc. Then the path becomesbody.bitcoin.eurand so on. You can request multiple currencies too:vs_currencies=usd,eurand pick whichever in the notification. - Alert only on big moves. Add a
if_thenblock between fetch and notify, comparing today's price against yesterday's. For yesterday's price, useset_variableblock writing to a persistent variable, and only notify when the delta exceeds 5%.
Common gotchas
Three caveats. First: CoinGecko's free API has soft rate limits — typically 10-30 calls per minute. Daily once-a-day usage is nowhere near the limit, but if you scale to "every minute" you'll start seeing 429 responses. Second: CoinGecko occasionally has brief 503 outages (their infra is busy during volatile market hours). Add failOnHttpError: false to the request block to avoid the whole workflow halting on a transient error — better to get a "BTC $undefined" notification than no notification at all, since it tells you the check ran. Third: schedule_trigger only fires while Chrome is running. If your laptop is closed at 9 AM, the cron is missed; when Chrome wakes, the next scheduled fire is tomorrow.
FAQ
Do I need a CoinGecko API key? No. The simple/price endpoint is part of the public/free tier and works without any header. Paid CoinGecko tiers exist but you don't need them for daily price checks.
Can I run this hourly? Yes — change cron to 0 * * * *. That's 24 calls per day, well under CoinGecko's free-tier limit. Going below hourly starts to feel intrusive; the notification model is best for ambient awareness, not active trading.
What if I want to track a specific token not on CoinGecko? Switch endpoints. Etherscan, Binance, and Coinbase all have public price endpoints with similar shapes; you'd update the URL and the response-path interpolation. Automa and Browserflow handle this identically — the http_request pattern is universal.
Does the notification work when my screen is locked? Yes, OS notifications surface when you unlock — Chrome buffers them via the platform notification API.