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.

Deterministic Code
Crypto DataGoogle SheetsSlackFinancePersonal ProductivityDaily DigestsNotifications & Alerts

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?
Use the CoinGecko slug, not the ticker. Bitcoin is bitcoin, Ethereum is ethereum, Solana is solana. You can look up any coin's slug on its CoinGecko page (it's the last part of the URL).
What if a coin price comes back missing or zero?
The workflow still logs the row with whatever price came back, so your history stays continuous. The Slack summary uses the prices that did return, so a single missing coin doesn't break the day-over-day total.
Can I track prices in something other than USD?
Yes. The price step accepts any fiat or crypto currency CoinGecko supports, so you can switch the whole snapshot to EUR, GBP, JPY, BTC, or several at once.
How is the day-over-day change calculated?
After the new rows are appended, the workflow sums today's position values and compares against the same sum from the most recent prior snapshot in the History tab. You get both the dollar change and the percent change in one line.
Does this run on weekends?
Out of the box it runs Monday through Friday at 5pm ET, since crypto markets are 24/7 but most people only want a weekday journal. You can switch it to every day in one click.

Stop pasting crypto prices into your spreadsheet.

Connect Google Sheets, Slack, and your portfolio once, and Geni snapshots your holdings every weekday at 5pm.