Weekly investor update deck, refreshed from a KPI sheet
Every Friday afternoon, copy your investor template, fill it with this week's KPIs from Google Sheets, and post the new deck in Slack.
Build me a deterministic code workflow that refreshes our weekly investor-update deck every Friday at 4pm local time so I can review it over the weekend and ship it Monday morning.
Trigger: cron, every Friday at 16:00 in my local time zone.
Step 1. Google Sheets Get Values from the 'Weekly KPIs' range on our metrics spreadsheet to pull this week's numbers: revenue, MRR, new logos, churn, runway months, and the headline narrative cell. Then do another Get Values on the prior-week range so we have last week's numbers for deltas. The spreadsheet ID and both A1 ranges should be configurable inputs.
Step 2. Google Drive Copy File to clone the master investor-update template (configurable Drive file ID) into our 'Investor Updates' Drive folder (configurable parent folder ID). Name the new file 'Investor Update, week ending {YYYY-MM-DD}' where the date is the upcoming Sunday.
Step 3. Google Slides ReplaceAllText on the new presentation to swap these tokens with the sheet values: {{week_ending}}, {{revenue}}, {{mrr}}, {{mrr_delta}}, {{new_logos}}, {{churn}}, {{runway_months}}, {{narrative}}. Compute {{mrr_delta}} as the signed percent change between this week's and last week's MRR and format it like '+4.2%' or '-1.8%'.
Step 4. Google Slides ReplaceAllShapesWithSheetsChart to embed the live trend charts from the same spreadsheet. The template has placeholder shapes containing chart tokens (for example {{chart_mrr}}, {{chart_revenue}}, {{chart_logos}}); for each one, embed the matching Sheets chart by ID so the deck stays linked to the source and refreshes on open.
Step 5. Slack Send a Message to our founders' private channel (configurable channel ID) with the new deck link and the headline metrics inline: week ending date, MRR with delta, new logos, runway months, and the narrative one-liner. Keep the message short and skimmable.
Every value that varies between teams (spreadsheet ID, the two A1 ranges, template file ID, parent folder ID, Slack channel ID, time zone) should be a top-level workflow input so I can reuse this without editing code. If a token has no matching value in the sheet, leave it blank rather than failing the whole run, and log which tokens were missing in the Slack message so I know what to fix.
Additional information
What does this prompt do?
- Pulls this week's numbers and last week's comparison from a Google Sheets KPI tab every Friday afternoon.
- Copies your master investor-update template in Google Drive and names the new file with the week-ending date.
- Fills the slides with revenue, MRR, MRR change, new logos, churn, runway, and your headline narrative, and embeds the live trend charts from the same sheet.
- Posts the new deck link in your founders' Slack channel with the headline numbers inline so weekend review is one click away.
What do I need to use this?
- A Google account with edit access to the KPI spreadsheet, the master template deck, and the destination Drive folder.
- A master Google Slides deck with placeholder tokens like {{mrr}}, {{new_logos}}, and {{narrative}}, plus shapes for charts like {{chart_mrr}}.
- A Google Sheets tab with named ranges for this week's KPIs and the prior week's KPIs, plus the chart IDs you want embedded.
- A Slack workspace and the channel ID where the founders want the new deck posted.
How can I customize it?
- Change the schedule. Move the run from Friday at 4pm to any cadence, like Sunday evening or the first of the month.
- Swap the metrics. Add or remove tokens like ARR, burn, cash balance, or pipeline coverage by editing the sheet and the matching placeholders in the template.
- Pick a different audience. Point the Slack step at a board channel, a leadership DM, or send it by email instead.
- Use a different template per investor. Branch on a sheet value to pick the right master deck for seed investors versus the board.
Frequently asked questions
Do the charts in the deck stay linked to the source spreadsheet?
Will it overwrite my master template?
What happens if a KPI cell is empty that week?
Can I run this on a different day or time zone?
Does this work if our investor deck lives in PowerPoint instead of Google Slides?
Stop rebuilding the investor deck from scratch every week.
Connect Google Sheets, Google Drive, Google Slides, and Slack once, and a fresh deck lands every Friday at 4pm with this week's numbers already filled in.