Daily crypto portfolio snapshot in Google Sheets and Slack
Every weekday at 5pm ET, log your crypto holdings to a sheet and post a one-line value update in Slack.
Every weekday at 5pm ET, snapshot my crypto portfolio. Pure pipeline, no LLM reasoning needed.
Holdings live in a Google Sheet I'll connect. The spreadsheet has a 'Holdings' tab where column A is the CoinGecko coin ID (slugs like 'bitcoin', 'ethereum', 'solana') and column B is the number of units I own. The same spreadsheet has a 'History' tab with columns: date, coin_id, price_usd, units_held, position_value_usd, 24h_change_pct.
Step 1: Use Google Sheets Get Values to read the Holdings tab and pull the coin_id and units columns into a list.
Step 2: Use Crypto Data Get Crypto Prices to fetch the current USD price for the full list of coin_ids, including the 24-hour percent change. Send all coin IDs in a single call.
Step 3: Use Google Sheets Append Values to add one row per coin to the History tab. For each coin, write today's date, the coin_id, the current price in USD, the units held from the Holdings tab, the position value (price times units), and the 24-hour percent change.
Step 4: Compute today's total portfolio value by summing the position_value_usd for the rows just written. Read yesterday's snapshot from the History tab (the most recent prior date with rows for every coin) and sum those position_value_usd entries for yesterday's total. Then use Slack Send a Message to post a one-line summary to my chosen channel that shows today's total portfolio value, the dollar change versus yesterday, and the percent change. Format the message with mrkdwn so the total stands out and the change is signed (+ or -).
Trigger: cron, weekdays at 5pm America/New_York. Let me pick the spreadsheet, the History tab columns are fixed, and let me pick the Slack channel or DM at setup.
Additional information
What does this prompt do?
- Reads your coin list and units held from a Google Sheet you already own.
- Pulls live prices for every coin in your portfolio, including the 24-hour change.
- Appends one fresh row per coin to a running History tab so you build a clean price and position log.
- Posts a one-line Slack summary with total portfolio value, dollar change versus yesterday, and percent change.
What do I need to use this?
- A Google Sheet with a Holdings tab listing coin IDs (like bitcoin, ethereum, solana) and the units you own.
- A connected Google account with edit access to that spreadsheet.
- A connected Slack workspace and a channel or DM where the daily update should land.
How can I customize it?
- Change the run time, or have it run every day instead of weekdays.
- Swap the Slack channel, or send it as a DM instead.
- Add or remove coins by editing the Holdings tab, no workflow edit needed.
- Switch the price currency from USD to EUR, GBP, BTC, or anything else CoinGecko supports.
Frequently asked questions
Where do I find the coin IDs to put in my sheet?
What if a coin price comes back missing or zero?
Can I track prices in something other than USD?
How is the day-over-day change calculated?
Does this run on weekends?
Stop pasting crypto prices into your spreadsheet.
Connect Google Sheets, Slack, and your portfolio once, and Geni snapshots your holdings every weekday at 5pm.