Weekly crypto portfolio review in Slack
Every Monday at 8am, get a written week-over-week review of your personal crypto holdings in Slack, with P&L, top movers, and what to watch next week.
Every Monday at 8am in my timezone, send me a written weekly performance review of my personal crypto portfolio in Slack. Build this as an agent workflow with a cron trigger.
My holdings live in a Notion database. Each row is one position, with three properties: the CoinGecko coin id (for example 'bitcoin', 'ethereum', 'solana'), the quantity I hold, and the average cost per coin (cost basis). The agent should let me pick which Notion data source to read from and which Slack channel to post to as setup inputs.
Each run, the agent should:
1. Query the Notion data source to pull every holdings row. Skip any row that is missing a coin id or a quantity rather than erroring out, and remember which rows were skipped so it can mention them at the bottom of the report.
2. Look up current USD prices and 24h price change for every valid coin in one batched call using CoinGecko's Coins Markets endpoint (or Simple Price as a fallback for any coins not returned).
3. For each coin, get the price exactly seven days ago using CoinGecko's Market Chart Range with a one-day window centered on the timestamp from 7 days before now, so it can compute one-week P&L per position and for the portfolio overall.
4. Compute total portfolio value now, total portfolio value seven days ago, the week-over-week change in both dollars and percent, and the per-position week change in dollars and percent. Also compute each position's percent of total book.
5. Identify the top three winners and top three losers for the week. For any position whose weekly move is sharp (roughly +/-15% or more), call CoinGecko's Get Coin by ID to pull project context and write a one-line plain-English attribution for what likely drove the move. Do not invent news. If there is no clear catalyst, say so.
6. Flag concentration risk if any single holding is more than 30% of total book value.
7. Call CoinGecko's Global Crypto Data and use BTC dominance and the trend in total crypto market cap to write a one-line 'what to watch next week' note.
Then post the review to the configured Slack channel as a single message. Use Slack mrkdwn formatting (not standard Markdown): *bold* for section headers, a fenced code block for the positions table so columns line up, and emoji where useful (🟢 for winners, 🔴 for losers, ⚠️ for concentration risk). The message should have these sections in order:
- Headline: total portfolio value and week-over-week change in dollars and percent.
- Positions table: coin, quantity, current price, current value, % of book, 1w change %.
- Top movers: 3 winners and 3 losers with one-line attribution each.
- Concentration: only included if anything is over 30% of book.
- What to watch next week: one line based on global market data.
- Footer: any skipped Notion rows so I can fix them.
Tone: concise, analytical, no hype, no financial advice, no emojis in the body copy beyond the section markers above.
Additional information
What does this prompt do?
- Pulls every position from your Notion holdings database and prices it with this morning's market data and the price exactly seven days ago.
- Calculates your total portfolio value, week-over-week change in dollars and percent, and per-position P&L so you can see at a glance who pulled the book up or down.
- Writes a narrative review covering your top three winners and losers, why they likely moved, any single holding above 30% of the book, and a one-line read on the broader market.
- Posts the whole thing to a Slack channel you choose, formatted with section headers and a clean table of positions, so it lives in your weekly routine instead of a spreadsheet.
What do I need to use this?
- A Notion workspace with a database of your holdings (one row per position, with a CoinGecko coin id, a quantity, and a cost basis).
- A free CoinGecko account for the market data lookups.
- A Slack workspace and a channel you want the weekly review posted to.
How can I customize it?
- Change the schedule. Daily, monthly, or any cron you prefer instead of Monday at 8am.
- Pick a different Slack channel, or send it as a direct message instead.
- Tweak the rules the agent watches for. Concentration threshold, number of winners and losers to call out, whether to include a stablecoin allocation note, or a custom 'what to watch' angle.
Frequently asked questions
Do I need a paid CoinGecko plan?
What does my Notion database need to look like?
What happens if a row is missing a coin id or quantity?
Will the review actually try to explain why things moved?
Can I run this for more than one portfolio?
Stop hand-totaling your crypto book every Sunday night.
Connect Notion, CoinGecko, and Slack once, and Geni delivers a written weekly review of your holdings every Monday at 8am.